@@ -18,10 +18,24 @@ function(generateFMU modelIdentifier)
1818 # Expect the user to provide modelIdentifier as an OBJECT library.
1919 # We will build per-version shared libraries from those object files.
2020 set (COMMON_OBJECTS "$<TARGET_OBJECTS :fmu4cpp_base >" )
21+ target_include_directories (${modelIdentifier} PUBLIC "${PROJECT_SOURCE_DIR} /export/include" )
2122
2223
2324 foreach (fmiVersion IN LISTS FMU_FMI_VERSIONS)
2425
26+ # versioned shared library target built from object libraries
27+ set (versionTarget "${modelIdentifier} _${fmiVersion} " )
28+
29+ set (FMU4CPP_MODEL_IDENTIFIER "${versionTarget} " )
30+ set (model_identifier_src "${generatedSourcesDir} /fmu4cpp/model_identifier_${versionTarget} .cpp" )
31+ configure_file (
32+ "${PROJECT_SOURCE_DIR} /export/src/fmu4cpp/model_identifier.cpp.in"
33+ "${model_identifier_src} "
34+ @ONLY
35+ )
36+
37+ set (VERSION_OBJECTS "${model_identifier_src} " )
38+
2539 set (TARGET_PLATFORM)
2640 if (fmiVersion STREQUAL "fmi2" )
2741
@@ -39,7 +53,7 @@ function(generateFMU modelIdentifier)
3953 set (TARGET_PLATFORM linux ${BITNESS} )
4054 endif ()
4155
42- set ( VERSION_OBJECTS "$<TARGET_OBJECTS :fmu4cpp_fmi2 >" )
56+ list ( APPEND VERSION_OBJECTS "$<TARGET_OBJECTS :fmu4cpp_fmi2 >" )
4357 set (VERSION_DEFS FMI2)
4458
4559 elseif (fmiVersion STREQUAL "fmi3" )
@@ -57,7 +71,7 @@ function(generateFMU modelIdentifier)
5771 set (TARGET_PLATFORM ${TARGET_PLATFORM} -linux )
5872 endif ()
5973
60- set ( VERSION_OBJECTS "$<TARGET_OBJECTS :fmu4cpp_fmi3 >" )
74+ list ( APPEND VERSION_OBJECTS "$<TARGET_OBJECTS :fmu4cpp_fmi3 >" )
6175 set (VERSION_DEFS FMI3)
6276
6377 else ()
@@ -70,18 +84,13 @@ function(generateFMU modelIdentifier)
7084 set (binaryOutputDir "${modelOutputDir} /binaries/${TARGET_PLATFORM} " )
7185
7286
73- # versioned shared library target built from object libraries
74- set (versionTarget "${modelIdentifier} _${fmiVersion} " )
7587 add_library (${versionTarget} SHARED
7688 ${COMMON_OBJECTS}
7789 "$<TARGET_OBJECTS :${modelIdentifier} >"
7890 ${VERSION_OBJECTS}
7991 )
80-
81-
92+ target_include_directories (${versionTarget} PRIVATE "${PROJECT_SOURCE_DIR} /export/include" )
8293 target_compile_definitions (${versionTarget} PRIVATE ${VERSION_DEFS} )
83- target_compile_definitions (${modelIdentifier} PUBLIC FMU4CPP_MODEL_IDENTIFIER= \"${versionTarget} \" )
84- target_include_directories(${modelIdentifier} PUBLIC " ${PROJECT_SOURCE_DIR} /export/include ")
8594
8695
8796 if (WIN32 )
@@ -100,27 +109,24 @@ function(generateFMU modelIdentifier)
100109 # Generate modelDescription.xml
101110 add_custom_command (TARGET ${versionTarget} POST_BUILD
102111 WORKING_DIRECTORY "${fmuOutputDir} "
103- COMMAND ${CMAKE_COMMAND} -E echo " Generating modelDescription.xml for ${versionTarget} "
104- COMMAND descriptionGenerator ${modelIdentifier} " ${binaryOutputDir} /$<TARGET_FILE_NAME:${versionTarget}> "
105- VERBATIM
106- )
112+ COMMAND ${CMAKE_COMMAND} -E echo "[generateFMU-${fmiVersion} ] Generating modelDescription.xml for model '${modelIdentifier} '"
113+ COMMAND descriptionGenerator ${modelIdentifier} "${binaryOutputDir} /$<TARGET_FILE_NAME :${versionTarget} >" )
107114
108115 if (FMU_RESOURCE_FOLDER STREQUAL "" )
109116 add_custom_command (TARGET ${versionTarget} POST_BUILD
110117 WORKING_DIRECTORY "${modelOutputDir} "
111118 COMMAND ${CMAKE_COMMAND} -E tar "c" "${modelIdentifier} .fmu" --format=zip
112119 "${modelOutputDir} /binaries"
113- " ${modelOutputDir} /modelDescription.xml "
114- VERBATIM)
120+ "${modelOutputDir} /modelDescription.xml" )
115121
116122 else ()
117- message(" [generateFMU-${fmiVersion}] Using resourceFolder=${FMU_RESOURCE_FOLDER} for model with identifier= '${modelIdentifier}'")
123+ message ("[generateFMU-${fmiVersion} ] Using resourceFolder=${FMU_RESOURCE_FOLDER} for model '${modelIdentifier} '" )
118124
119125 file (COPY "${FMU_RESOURCE_FOLDER} /" DESTINATION "${modelOutputDir} /resources" )
120126
121127 add_custom_command (TARGET ${versionTarget} POST_BUILD
122128 WORKING_DIRECTORY "${modelOutputDir} "
123- COMMAND ${CMAKE_COMMAND} -E echo " Packaging ${modelIdentifier} .fmu in ${modelOutputDir} "
129+ COMMAND ${CMAKE_COMMAND} -E echo "[generateFMU- ${fmiVersion} ] Packaging ${modelIdentifier} .fmu in ${modelOutputDir} "
124130 COMMAND ${CMAKE_COMMAND} -E tar "c" "${modelIdentifier} .fmu" --format=zip
125131 "resources"
126132 "${modelOutputDir} /binaries"
0 commit comments