eclipse-ecal / ecal

📦 eCAL - enhanced Communication Abstraction Layer. A high performance publish-subscribe, client-server cross-plattform middleware.
https://ecal.io
Apache License 2.0
845 stars 175 forks source link

set_target_properties called with incorrect number of arguments #276

Closed yurivict closed 3 years ago

yurivict commented 3 years ago

Describe the bug


===>  Performing out-of-source build
/bin/mkdir -p /disk-samsung/freebsd-ports/devel/ecal/work/.build
-- Module Path: /disk-samsung/freebsd-ports/devel/ecal/work/ecal-5.8.8/cmake;/disk-samsung/freebsd-ports/devel/ecal/work/ecal-5.8.8/cmake/Modules
-- Prefix Path: 
-- Content of the message: 
-- Version of this git repo: 10-eol-87636-gb552cfb67dd2-dirty
-- GCC detected - Adding flags
CMake Error at cmake/helper_functions/ecal_add_functions.cmake:143 (set_target_properties):
  set_target_properties called with incorrect number of arguments.
Call Stack (most recent call first):
  cmake/helper_functions/ecal_add_functions.cmake:157 (ecal_add_static_library)
  contrib/ecalproto/CMakeLists.txt:40 (ecal_add_library)

CMake Error at cmake/helper_functions/ecal_add_functions.cmake:143 (set_target_properties):
  set_target_properties called with incorrect number of arguments.
Call Stack (most recent call first):
  ecal/pb/CMakeLists.txt:43 (ecal_add_static_library)

CMake Error at ecal/core/CMakeLists.txt:19 (project):
  VERSION ".." format invalid.

To Reproduce cmake arguments:

-DCMAKE_C_COMPILER:STRING="cc"  -DCMAKE_CXX_COMPILER:STRING="c++"  -DCMAKE_C_FLAGS:STRING="-O2 -pipe -fno-omit-frame-pointer  -fstack-protector-strong -fno-strict-aliasing "  -DCMAKE_C_FLAGS_DEBUG:STRING="-O2 -pipe -fno-omit-frame-pointer  -fstack-protector-strong -fno-strict-aliasing "  -DCMAKE_C_FLAGS_RELEASE:STRING="-O2 -pipe -fno-omit-frame-pointer  -fstack-protector-strong -fno-strict-aliasing "  -DCMAKE_CXX_FLAGS:STRING="-O2 -pipe -fno-omit-frame-pointer -fstack-protector-strong -fno-strict-aliasing -fno-omit-frame-pointer  "  -DCMAKE_CXX_FLAGS_DEBUG:STRING="-O2 -pipe -fno-omit-frame-pointer -fstack-protector-strong -fno-strict-aliasing -fno-omit-frame-pointer  "  -DCMAKE_CXX_FLAGS_RELEASE:STRING="-O2 -pipe -fno-omit-frame-pointer -fstack-protector-strong -fno-strict-aliasing -fno-omit-frame-pointer  "  -DCMAKE_EXE_LINKER_FLAGS:STRING=" -fstack-protector-strong "  -DCMAKE_MODULE_LINKER_FLAGS:STRING=" -fstack-protector-strong "  -DCMAKE_SHARED_LINKER_FLAGS:STRING=" -fstack-protector-strong "  -DCMAKE_INSTALL_PREFIX:PATH="/usr/local"  -DCMAKE_BUILD_TYPE:STRING="Release"  -DTHREADS_HAVE_PTHREAD_ARG:BOOL=YES  -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=YES  -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DBUILD_SAMPLES:BOOL=OFF -DECAL_THIRDPARTY_BUILD_PROTOBUF:BOOL=OFF -DECAL_THIRDPARTY_BUILD_SPDLOG:BOOL=OFF -DECAL_THIRDPARTY_BUILD_TINYXML2:BOOL=OFF -DECAL_THIRDPARTY_BUILD_FINEFTP:BOOL=OFF -DECAL_THIRDPARTY_BUILD_TERMCOLOR:BOOL=OFF -DECAL_THIRDPARTY_BUILD_CURL:BOOL=OFF -DECAL_THIRDPARTY_BUILD_GTEST:BOOL=OFF -DECAL_THIRDPARTY_BUILD_HDF5:BOOL=OFF -DCPACK_PACK_WITH_INNOSETUP:BOOL=OFF -GNinja

cmake-3.20.2

FlorianReimold commented 3 years ago

I tried your cmake arguements and they work fine on Ubuntu 20.04 with eCAL Master. I only activated building spdlog, tinyxml, fineftp and termcolor from submodules, as they are not present as installed packages on my OS.

florian@florian-ubuntu20:~/Projects/ecal-build$ cmake ../ecal/ecal-githubcom/ecal -DCMAKE_C_COMPILER:STRING="cc"  -DCMAKE_CXX_COMPILER:STRING="c++"  -DCMAKE_C_FLAGS:STRING="-O2 -pipe -fno-omit-frame-pointer  -fstack-protector-strong -fno-strict-aliasing "  -DCMAKE_C_FLAGS_DEBUG:STRING="-O2 -pipe -fno-omit-frame-pointer  -fstack-protector-strong -fno-strict-aliasing "  -DCMAKE_C_FLAGS_RELEASE:STRING="-O2 -pipe -fno-omit-frame-pointer  -fstack-protector-strong -fno-strict-aliasing "  -DCMAKE_CXX_FLAGS:STRING="-O2 -pipe -fno-omit-frame-pointer -fstack-protector-strong -fno-strict-aliasing -fno-omit-frame-pointer  "  -DCMAKE_CXX_FLAGS_DEBUG:STRING="-O2 -pipe -fno-omit-frame-pointer -fstack-protector-strong -fno-strict-aliasing -fno-omit-frame-pointer  "  -DCMAKE_CXX_FLAGS_RELEASE:STRING="-O2 -pipe -fno-omit-frame-pointer -fstack-protector-strong -fno-strict-aliasing -fno-omit-frame-pointer  "  -DCMAKE_EXE_LINKER_FLAGS:STRING=" -fstack-protector-strong "  -DCMAKE_MODULE_LINKER_FLAGS:STRING=" -fstack-protector-strong "  -DCMAKE_SHARED_LINKER_FLAGS:STRING=" -fstack-protector-strong "  -DCMAKE_INSTALL_PREFIX:PATH="/usr/local"  -DCMAKE_BUILD_TYPE:STRING="Release"  -DTHREADS_HAVE_PTHREAD_ARG:BOOL=YES  -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=YES  -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DBUILD_SAMPLES:BOOL=OFF -DECAL_THIRDPARTY_BUILD_PROTOBUF:BOOL=OFF -DECAL_THIRDPARTY_BUILD_SPDLOG:BOOL=ON -DECAL_THIRDPARTY_BUILD_TINYXML2:BOOL=ON -DECAL_THIRDPARTY_BUILD_FINEFTP:BOOL=ON -DECAL_THIRDPARTY_BUILD_TERMCOLOR:BOOL=ON -DECAL_THIRDPARTY_BUILD_CURL:BOOL=OFF -DECAL_THIRDPARTY_BUILD_GTEST:BOOL=OFF -DECAL_THIRDPARTY_BUILD_HDF5:BOOL=OFF -DCPACK_PACK_WITH_INNOSETUP:BOOL=OFF -GNinja
-- Module Path: /home/florian/Projects/ecal/ecal-githubcom/ecal/cmake;/home/florian/Projects/ecal/ecal-githubcom/ecal/cmake/Modules
-- Prefix Path: 
-- Build spdlog: 1.6.0
-- Build type: Release
CMake Deprecation Warning at thirdparty/tinyxml2/CMakeLists.txt:11 (cmake_policy):
  The OLD behavior for policy CMP0063 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.

-- Content of the message: 
-- Version of this git repo: v5.8.4-40-gb160392e-dirty
-- GCC detected - Adding flags
-- HDF5: Using hdf5 compiler wrapper to determine C configuration
-- Found CURL: /usr/lib/x86_64-linux-gnu/libcurl.so (found version "7.68.0")  
-- Configuring done
-- Generating done
-- Build files have been written to: /home/florian/Projects/ecal-build

Are you trying to cmake on a freebsd system? The output you pasted contains some paths that mention freebsd. FreeBSD isn't really a supported plattform and I personally have never tested it, even though I know that one can make eCAL work on freebsd.

yurivict commented 3 years ago

Yes, I am trying to build on FreeBSD.

What cmake version do you use?

hannemn commented 3 years ago

Hello @yurivict,

I had brought ecal to build experimentally on freebsd about 2 years ago. Maybe something has changed in the meantime in some of our build scripts. On which freebsd version do you want to build ecal? I will try to reproduce your issue on version 13.

Regarding cmake version: Everything greater than 3.13 should work fine.

yurivict commented 3 years ago

I'm on FreeBSD 13.

hannemn commented 3 years ago

I think your cmake issue comes from the fact that you try to build ecal from a tarball and not from a cloned git repository. Since we retrieve version information for the build in cmake via git describe, you have to specifiy the version number manually with e.g. -DECAL_BUILD_VERSION="5.8.9" when you try to build from tarball. Btw, I added serveral fixes with #292 for freebsd and was able to build the SDK and all command line applications/samples with following options:

cmake .. -DCMAKE_C_COMPILER:STRING="cc" -DCMAKE_CXX_COMPILER:STRING="c++" -DCMAKE_C_FLAGS:STRING="-O2 -pipe -fno-omit-frame-pointer -fstack-protector-strong -fno-strict-aliasing " -DCMAKE_C_FLAGS_DEBUG:STRING="-O2 -pipe -fno-omit-frame-pointer -fstack-protector-strong -fno-strict-aliasing " -DCMAKE_C_FLAGS_RELEASE:STRING="-O2 -pipe -fno-omit-frame-pointer -fstack-protector-strong -fno-strict-aliasing " -DCMAKE_CXX_FLAGS:STRING="-O2 -pipe -fno-omit-frame-pointer -fstack-protector-strong -fno-strict-aliasing -fno-omit-frame-pointer " -DCMAKE_CXX_FLAGS_DEBUG:STRING="-O2 -pipe -fno-omit-frame-pointer -fstack-protector-strong -fno-strict-aliasing -fno-omit-frame-pointer " -DCMAKE_CXX_FLAGS_RELEASE:STRING="-O2 -pipe -fno-omit-frame-pointer -fstack-protector-strong -fno-strict-aliasing -fno-omit-frame-pointer " -DCMAKE_EXE_LINKER_FLAGS:STRING=" -fstack-protector-strong " -DCMAKE_MODULE_LINKER_FLAGS:STRING=" -fstack-protector-strong " -DCMAKE_SHARED_LINKER_FLAGS:STRING=" -fstack-protector-strong " -DCMAKE_INSTALL_PREFIX:PATH="/usr/local" -DCMAKE_BUILD_TYPE:STRING="Release" -DTHREADS_HAVE_PTHREAD_ARG:BOOL=YES -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=YES -DHAS_HDF5=ON -DHAS_QT5=OFF -DHAS_CURL=ON -DBUILD_APPS=ON -DBUILD_SAMPLES=ON -DBUILD_TIME=OFF -DECAL_THIRDPARTY_BUILD_SPDLOG=OFF -DECAL_THIRDPARTY_BUILD_TINYXML2=OFF -DECAL_THIRDPARTY_BUILD_FINEFTP=ON -DECAL_THIRDPARTY_BUILD_TERMCOLOR=OFF

Protobuf, tinyxml2, hdf5, curl, termcolor and spdlog can be used from the port tree (maybe also tclap and asio). All other dependencies have to be downloaded as submodule, since they are not available as port in freebsd so far.

FlorianReimold commented 3 years ago

Closed due to inactivity. eCAL can be built on BSD.