diff --git a/support/cmake/module_definition.cmake b/support/cmake/module_definition.cmake index 0ce121737d..7297179580 100644 --- a/support/cmake/module_definition.cmake +++ b/support/cmake/module_definition.cmake @@ -41,8 +41,14 @@ function (create_new_module module_name output_library_name) # Add the module files to the list of sources add_module_files() + set(library_mode STATIC) + if (${library_name}_LIBRARY_MODE) + set(library_mode ${${library_name}_LIBRARY_MODE}) + message(STATUS "\t Overwritten library mode: ${library_mode}") + endif () + # Create the library - add_library(${library_name} STATIC ${sources}) + add_library(${library_name} ${library_mode} ${sources}) # Set compile settings that are common to all modules set_common_compile_settings(${library_name}) @@ -154,6 +160,7 @@ function (handle_dependencies target_name module_name) # Handle OpenSpace dependencies foreach (dep ${OPENSPACE_DEPENDENCIES}) create_library_name(${dep} dep_library) + message(STATUS "Link: ${target_name} <- ${dep_library}") target_link_libraries(${target_name} ${dep_library}) get_property( @@ -171,6 +178,7 @@ function (handle_dependencies target_name module_name) target_include_directories(${target_name} PUBLIC ${${dep_upper}_INCLUDE_DIR} ${${dep_upper}_INCLUDE_DIRS} ) + message(STATUS "Link: ${target_name} <- ${${dep_upper}_LIBRARIES}") target_link_libraries(${target_name} ${${dep_upper}_LIBRARIES}) endforeach () endif () diff --git a/support/cmake/support_macros.cmake b/support/cmake/support_macros.cmake index b997b88fa6..d547d25cca 100644 --- a/support/cmake/support_macros.cmake +++ b/support/cmake/support_macros.cmake @@ -438,7 +438,12 @@ function (handle_internal_modules) endif () endforeach() - target_link_libraries(libOpenSpace ${libraryName}) + # Only link libOpenSpace against the library if it has been set STATIC + get_target_property(libType ${libraryName} TYPE) + if (NOT ${libType} STREQUAL "SHARED_LIBRARY") + target_link_libraries(libOpenSpace ${libraryName}) + endif() + create_define_name(${module} defineName) target_compile_definitions(libOpenSpace PUBLIC "${defineName}")