diff --git a/CMakeLists.txt b/CMakeLists.txt index 351fe6c3f..64d5bb384 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -27,7 +27,8 @@ endif (POLICY CMP0077) list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake - ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules) + # Removed project specific Module overrides +) project(eCAL) set(ECAL_PROJECT_ROOT "${CMAKE_CURRENT_LIST_DIR}") @@ -212,11 +213,13 @@ foreach (dep IN LISTS possible_subprojects) endif () endforeach() +if(NOT DISABLE_FIND_PACKAGE_OVERLOAD) macro(find_package) if(NOT "${ARGV0}" IN_LIST as_subproject) _find_package(${ARGV}) endif() endmacro() +endif() # if a package does need to be build, include the cmake file with build instructions foreach (dep IN LISTS possible_subprojects) @@ -232,7 +235,6 @@ if(MSVC) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS_OLD}") endif() -find_package(CMakeFunctions REQUIRED) git_revision_information(DEFAULT ${ECAL_BUILD_VERSION}) set(eCAL_VERSION_MAJOR ${GIT_REVISION_MAJOR}) @@ -330,7 +332,9 @@ add_subdirectory(ecal/core) # custom libs # -------------------------------------------------------- add_subdirectory(lib/ThreadingUtils) -add_subdirectory(lib/CustomTclap) +# Removed due to only being used by the apps, which are disabled, and for +# publicly linking tclap::tclap which doesn't exist outside of eCAL +# add_subdirectory(lib/CustomTclap) add_subdirectory(lib/ecal_utils) if(HAS_QT5) @@ -549,7 +553,9 @@ endif() # -------------------------------------------------------- # create package # -------------------------------------------------------- +if(CPACK_PACK_WITH_INNOSETUP) include(cpack/cpack_variables.cmake) +endif() message(STATUS "Build Options:") message(STATUS "--------------------------------------------------------------------------------") diff --git a/contrib/ecalhdf5/CMakeLists.txt b/contrib/ecalhdf5/CMakeLists.txt index 080c40e28..c167bacd4 100644 --- a/contrib/ecalhdf5/CMakeLists.txt +++ b/contrib/ecalhdf5/CMakeLists.txt @@ -58,7 +58,12 @@ set(ecalhdf5_header_base include/ecalhdf5/eh5_types.h ) +if (WIN32) +# This library, ecal::hdf5 does not export any symbols on Windows. Must be static +ecal_add_static_library(${PROJECT_NAME} ${ecalhdf5_src} ${ecalhdf5_header_base}) +else() ecal_add_library(${PROJECT_NAME} ${ecalhdf5_src} ${ecalhdf5_header_base}) +endif() add_library(eCAL::${PROJECT_NAME} ALIAS ${PROJECT_NAME}) target_include_directories(${PROJECT_NAME} diff --git a/contrib/ecalproto/CMakeLists.txt b/contrib/ecalproto/CMakeLists.txt index 04f1a1b9a..58df32705 100644 --- a/contrib/ecalproto/CMakeLists.txt +++ b/contrib/ecalproto/CMakeLists.txt @@ -37,7 +37,12 @@ set(ecal_protobuf_header include/ecal/protobuf/ecal_proto_visitor.h ) +if (WIN32) +# This library, ecal::proto does not export any symbols on Windows. Must be static +ecal_add_static_library(${PROJECT_NAME} ${ecal_protobuf_src} ${ecal_protobuf_header}) +else() ecal_add_library(${PROJECT_NAME} ${ecal_protobuf_src} ${ecal_protobuf_header}) +endif() add_library(eCAL::${PROJECT_NAME} ALIAS ${PROJECT_NAME}) target_include_directories(${PROJECT_NAME} PUBLIC $ diff --git a/ecal/core/CMakeLists.txt b/ecal/core/CMakeLists.txt index 5c2b6e33d..3c7d57189 100644 --- a/ecal/core/CMakeLists.txt +++ b/ecal/core/CMakeLists.txt @@ -20,8 +20,6 @@ project(core VERSION ${eCAL_VERSION_STRING}) find_package(Threads REQUIRED) find_package(asio REQUIRED) -find_package(tclap REQUIRED) -find_package(simpleini REQUIRED) find_package(tcp_pubsub REQUIRED) if (ECAL_NPCAP_SUPPORT) find_package(udpcap REQUIRED) @@ -492,14 +490,20 @@ target_link_libraries(${PROJECT_NAME} $<$:wsock32> $<$:socket> asio::asio - tclap::tclap - simpleini::simpleini eCAL::core_pb Threads::Threads eCAL::ecal-utils tcp_pubsub::tcp_pubsub ) +# tclap is header only and only used for implementation +find_path(TCLAP_INCLUDE_DIRS "tclap/Arg.h") +target_include_directories(${PROJECT_NAME} PRIVATE ${TCLAP_INCLUDE_DIRS}) + +# simpleini is header only and only used for implementation +find_path(SIMPLEINI_INCLUDE_DIRS "ConvertUTF.c") +target_include_directories(${PROJECT_NAME} PRIVATE ${SIMPLEINI_INCLUDE_DIRS}) + set_property(TARGET ${PROJECT_NAME} PROPERTY FOLDER ecal/core) set_property(TARGET ${PROJECT_NAME}_c PROPERTY FOLDER ecal/core) diff --git a/thirdparty/cmake_functions/CMakeLists.txt b/thirdparty/cmake_functions/CMakeLists.txt index b3e93261a..3ba185a97 100644 --- a/thirdparty/cmake_functions/CMakeLists.txt +++ b/thirdparty/cmake_functions/CMakeLists.txt @@ -40,4 +40,6 @@ foreach (f ${file_list}) install( FILES ${f} DESTINATION "${cmake_functions_install_cmake_dir}/${dir}" ) endforeach() +if(CPACK_PACK_WITH_INNOSETUP) include(cmake/cpack_variables.cmake) +endif() diff --git a/thirdparty/cmake_functions/cmake_functions.cmake b/thirdparty/cmake_functions/cmake_functions.cmake index 0c3659e5c..127eb14e6 100644 --- a/thirdparty/cmake_functions/cmake_functions.cmake +++ b/thirdparty/cmake_functions/cmake_functions.cmake @@ -5,23 +5,12 @@ set (file_list_include target_definitions/targets_protobuf.cmake ) -if(WIN32) - list(APPEND file_list_include - qt/qt_msvc_path.cmake - qt/qt_windeployqt.cmake - ) -endif() set(file_list_no_include protoc_functions/protoc_generate_cpp.cmake protoc_functions/protoc_generate_python.cmake ) -if(WIN32) - list(APPEND file_list_no_include - qt/qt_windeployqt_threadsafe_cmake.bat.in - ) -endif() # Set list of all files to be installed by CMake Script. set(file_list