From f211e23ed516c56888fb5b9acb5cc27c733b4237 Mon Sep 17 00:00:00 2001 From: Lars Ivar Hatledal Date: Sun, 2 Jul 2023 19:37:22 +0200 Subject: [PATCH] Use Object libraries --- src/CMakeLists.txt | 57 ++++++++++++++++++++++++++---------- tool/proxyfmu/CMakeLists.txt | 8 ++++- 2 files changed, 49 insertions(+), 16 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index c8760c4..c9f01a5 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -88,25 +88,11 @@ set(sources "ecos/listeners/csv_writer.cpp" "ecos/listeners/simulation_listener.cpp" - "ecos/logger/logger.cpp" - "ecos/ssp/ssp.cpp" "ecos/ssp/ssp_loader.cpp" "ecos/structure/simulation_structure.cpp" - "ecos/util/temp_dir.cpp" - "ecos/util/unzipper.cpp" - "ecos/util/uuid.cpp" - - "fmilibcpp/fmu.cpp" - "fmilibcpp/fmi1/fmi1_fmu.cpp" - "fmilibcpp/fmi1/fmi1_slave.cpp" - "fmilibcpp/fmi1/fmi1_model_description.cpp" - "fmilibcpp/fmi2/fmi2_fmu.cpp" - "fmilibcpp/fmi2/fmi2_slave.cpp" - "fmilibcpp/fmi2/fmi2_model_description.cpp" - "proxyfmu/proxy_fmu.cpp" "proxyfmu/proxy_slave.cpp" @@ -120,8 +106,46 @@ configure_file( @ONLY ) +add_library(logger OBJECT "ecos/logger/logger.cpp") +set_target_properties(logger PROPERTIES POSITION_INDEPENDENT_CODE ON) +target_include_directories(logger PUBLIC "${PROJECT_SOURCE_DIR}/include") +target_link_libraries(logger + PUBLIC + fmt::fmt + PRIVATE + spdlog::spdlog +) + +add_library(util OBJECT + "ecos/util/temp_dir.cpp" + "ecos/util/unzipper.cpp" + "ecos/util/uuid.cpp" +) +set_target_properties(util PROPERTIES POSITION_INDEPENDENT_CODE ON) +target_link_libraries(util PRIVATE libzip::zip) +target_include_directories(util + PRIVATE + "${PROJECT_SOURCE_DIR}/include" + "${PROJECT_SOURCE_DIR}/src") + +add_library(fmilibcpp OBJECT + "fmilibcpp/fmu.cpp" + "fmilibcpp/fmi1/fmi1_fmu.cpp" + "fmilibcpp/fmi1/fmi1_slave.cpp" + "fmilibcpp/fmi1/fmi1_model_description.cpp" + "fmilibcpp/fmi2/fmi2_fmu.cpp" + "fmilibcpp/fmi2/fmi2_slave.cpp" + "fmilibcpp/fmi2/fmi2_model_description.cpp" +) +set_target_properties(fmilibcpp PROPERTIES POSITION_INDEPENDENT_CODE ON) +target_link_libraries(fmilibcpp PRIVATE unofficial::fmilib::fmilib) +target_include_directories(fmilibcpp + PRIVATE + "${PROJECT_SOURCE_DIR}/include" + "${PROJECT_SOURCE_DIR}/src") + add_library(libecos ${publicHeadersFull} ${privateHeaders} ${sources} ${generatedFiles}) -set_property(TARGET libecos PROPERTY POSITION_INDEPENDENT_CODE ON) +set_target_properties(libecos PROPERTIES POSITION_INDEPENDENT_CODE ON) target_compile_features(libecos PUBLIC "cxx_std_17") target_include_directories(libecos PUBLIC @@ -141,6 +165,9 @@ target_link_libraries(libecos thrift::thrift pugixml::pugixml unofficial::fmilib::fmilib + "$" + "$" + "$" "$" ) if (UNIX) diff --git a/tool/proxyfmu/CMakeLists.txt b/tool/proxyfmu/CMakeLists.txt index b0d4e15..0271d6c 100644 --- a/tool/proxyfmu/CMakeLists.txt +++ b/tool/proxyfmu/CMakeLists.txt @@ -17,9 +17,15 @@ target_include_directories(proxyfmu "${generatedSourcesDir}") target_link_libraries(proxyfmu PRIVATE - libecos + fmt::fmt + libzip::zip CLI11::CLI11 + spdlog::spdlog thrift::thrift + unofficial::fmilib::fmilib + "$" + "$" + "$" "$" ) if (UNIX)