@@ -7,6 +7,7 @@ MESSAGE(" omc is " ${OMC_DEBUG})
77
88ADD_SUBDIRECTORY (libf2c)
99ADD_SUBDIRECTORY (sendData)
10+ ADD_SUBDIRECTORY (ModelicaExternalC)
1011
1112# -------------------------------------------------------------
1213# MACRO definitions
@@ -42,7 +43,10 @@ MACRO(BUILDMODEL model dir Flags CSRC)
4243 SET (OMC_CODE ${CMAKE_CURRENT_BINARY_DIR} /${model} .cpp
4344 ${CMAKE_CURRENT_BINARY_DIR} /${model} _functions.cpp
4445 ${CMAKE_CURRENT_BINARY_DIR} /${model} _init.txt)
45- SET (OMC_OUTPUT ${CMAKE_CURRENT_BINARY_DIR} /${model} .cpp ${CMAKE_CURRENT_BINARY_DIR} /${model} _functions.cpp ${CMAKE_CURRENT_BINARY_DIR} /${model} _functions.h)
46+ SET (OMC_OUTPUT ${CMAKE_CURRENT_BINARY_DIR} /${model} .cpp
47+ ${CMAKE_CURRENT_BINARY_DIR} /${model} _functions.cpp
48+ ${CMAKE_CURRENT_BINARY_DIR} /${model} _functions.h
49+ ${CMAKE_CURRENT_BINARY_DIR} /${model} _records.c)
4650
4751 # custom command fuer openmodelicacompiler
4852 ADD_CUSTOM_COMMAND (OUTPUT ${OMC_OUTPUT}
@@ -54,7 +58,7 @@ MACRO(BUILDMODEL model dir Flags CSRC)
5458 ADD_CUSTOM_TARGET (${model} codegen ALL DEPENDS ${OMC_OUTPUT} )
5559
5660 ADD_EXECUTABLE (${model} ${OMC_OUTPUT} ${CSRC} )
57- TARGET_LINK_LIBRARIES (${model} sim c_runtime f2c sendData)
61+ TARGET_LINK_LIBRARIES (${model} sim c_runtime f2c sendData ModelicaExternalC )
5862
5963 # Dependencies
6064 ADD_DEPENDENCIES (${model} ${model} codegen)
@@ -66,6 +70,50 @@ MACRO(BUILDMODEL model dir Flags CSRC)
6670#ENDFOREACH(model ${model_sources})
6771ENDMACRO (BUILDMODEL)
6872
73+ # MACRO BUILDMODEL
74+ MACRO (BUILDMODELFMU model dir Flags CSRC)
75+
76+ INCLUDE_DIRECTORIES (${OMCTRUNCHOME} /c_runtime)
77+
78+ SET (OMC_MODELNAME ${model} )
79+ SET (OMC_MODELDIR ${dir} )
80+ # generate model.mos
81+ FIND_FILE (MOSFILE_IN model_fmu.in PATHS ${OMCTRUNCHOME} /c_runtime)
82+ CONFIGURE_FILE (${MOSFILE_IN} ${dir} /${model} .mos)
83+
84+ # Variablen fuer openmodelica2sarturis
85+ SET (OMC_CODE ${CMAKE_CURRENT_BINARY_DIR} /${model} .cpp
86+ ${CMAKE_CURRENT_BINARY_DIR} /${model} _functions.cpp
87+ ${CMAKE_CURRENT_BINARY_DIR} /${model} _init.txt)
88+ SET (OMC_OUTPUT ${CMAKE_CURRENT_BINARY_DIR} /${model} .cpp
89+ ${CMAKE_CURRENT_BINARY_DIR} /${model} _FMU.cpp
90+ ${CMAKE_CURRENT_BINARY_DIR} /${model} _functions.cpp
91+ ${CMAKE_CURRENT_BINARY_DIR} /${model} _functions.h
92+ ${CMAKE_CURRENT_BINARY_DIR} /${model} _records.c)
93+ # custom command fuer openmodelicacompiler
94+ ADD_CUSTOM_COMMAND (OUTPUT ${OMC_OUTPUT}
95+ COMMAND ${OMC_DEBUG} ${Flags} ${dir} /${model} .mos
96+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
97+ COMMENT "Erzeuge Code fuer ${model} with ${OMC_DEBUG} " )
98+ # target fuer OM_OUTPUT
99+ ADD_CUSTOM_TARGET (${model} codegen ALL DEPENDS ${OMC_OUTPUT} )
100+
101+ SET (OMC_FMU_CODE ${OMCTRUNCHOME} /c_runtime/fmu_model_interface.h
102+ ${OMCTRUNCHOME} /c_runtime/fmiModelFunctions.h
103+ ${OMCTRUNCHOME} /c_runtime/fmiModelTypes.h)
104+
105+ ADD_LIBRARY (${model} ${OMC_OUTPUT} ${CSRC} ${OMC_FMU_CODE} )
106+ TARGET_LINK_LIBRARIES (${model} sim c_runtime f2c sendData ModelicaExternalC)
107+
108+ # Dependencies
109+ ADD_DEPENDENCIES (${model} ${model} codegen)
110+
111+ IF (MODELS_INSTALL)
112+ INSTALL (TARGETS ${model} ARCHIVE DESTINATION ${MODELS_INSTALL_PATH} )
113+ INSTALL (FILES ${CMAKE_CURRENT_BINARY_DIR} /${model} _init.txt DESTINATION ${MODELS_INSTALL_PATH} )
114+ ENDIF (MODELS_INSTALL)
115+ #ENDFOREACH(model ${model_sources})
116+ ENDMACRO (BUILDMODELFMU)
69117
70118
71119# Check if example files are to be exported
@@ -137,7 +185,7 @@ if(WIN32)
137185#add_definitions(/MT)
138186endif (WIN32 )
139187ADD_LIBRARY (sim ${sim_sources} ${sim_headers} )
140- TARGET_LINK_LIBRARIES (sim c_runtime f2c)
188+ TARGET_LINK_LIBRARIES (sim c_runtime f2c ModelicaExternalC )
141189
142190# Install
143191INSTALL (TARGETS c_runtime sim
0 commit comments