diff --git a/cmake/FairMQLib.cmake b/cmake/FairMQLib.cmake index f3c8bdf4..b93c8d54 100644 --- a/cmake/FairMQLib.cmake +++ b/cmake/FairMQLib.cmake @@ -123,8 +123,14 @@ macro(set_fairmq_defaults) endif() set(CMAKE_CXX_EXTENSIONS OFF) + if(NOT BUILD_SHARED_LIBS) + set(BUILD_SHARED_LIBS ON CACHE BOOL "Whether to build shared libraries or static archives") + endif() + # Set -fPIC as default for all library types - set(CMAKE_POSITION_INDEPENDENT_CODE ON) + if(NOT CMAKE_POSITION_INDEPENDENT_CODE) + set(CMAKE_POSITION_INDEPENDENT_CODE ON) + endif() # Generate compile_commands.json file (https://clang.llvm.org/docs/JSONCompilationDatabase.html) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) diff --git a/fairmq/CMakeLists.txt b/fairmq/CMakeLists.txt index 1df780e1..fb8aabde 100644 --- a/fairmq/CMakeLists.txt +++ b/fairmq/CMakeLists.txt @@ -195,7 +195,7 @@ if(FAST_BUILD) else() set(_target FairMQ) endif() -add_library(${_target} SHARED +add_library(${_target} ${FAIRMQ_SOURCE_FILES} ${FAIRMQ_PUBLIC_HEADER_FILES} # for IDE integration ${FAIRMQ_PRIVATE_HEADER_FILES} # for IDE integration @@ -237,7 +237,7 @@ target_link_libraries(${_target} PUBLIC # libFairMQ AND consumers of libFairMQ link aginst public dependencies Threads::Threads dl - rt + $<$:rt> Boost::boost Boost::program_options Boost::thread @@ -301,7 +301,7 @@ target_link_libraries(runConfigExample FairMQ) add_executable(fairmq-shmmonitor shmem/Monitor.cxx shmem/Monitor.h shmem/runMonitor.cxx) target_link_libraries(fairmq-shmmonitor PUBLIC Threads::Threads - rt + $<$:rt> Boost::boost Boost::date_time Boost::program_options @@ -332,6 +332,7 @@ install( EXPORT ${PROJECT_EXPORT_SET} RUNTIME DESTINATION ${PROJECT_INSTALL_BINDIR} LIBRARY DESTINATION ${PROJECT_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${PROJECT_INSTALL_LIBDIR} ) # preserve relative path and prepend fairmq