@@ -74,7 +74,7 @@ import CodegenCFunctions.*;
7474 // adpro: write the main .c file last! Make on windows doesn't seem to realize that
7575 // the .c file is newer than the .o file if we have succesive simulate commands
7676 // for the same model (i.e. see testsuite/linearize/simextfunction.mos).
77- let _ = generateSimulationFiles(simCode,guid,fileNamePrefix)
77+ let _ = generateSimulationFiles(simCode,guid,fileNamePrefix,false )
7878
7979 // If ParModelica generate the kernels file too.
8080 if acceptParModelicaGrammar() then
@@ -153,7 +153,7 @@ end translateInitFile;
153153 end match
154154end simulationHeaderFile;
155155
156- /* public */ template generateSimulationFiles(SimCode simCode, String guid, String modelNamePrefix)
156+ /* public */ template generateSimulationFiles(SimCode simCode, String guid, String modelNamePrefix, Boolean isModelExchangeFMU )
157157 "Generates code in different C files for the simulation target.
158158 To make the compilation faster we split the simulation files into several
159159 used in Compiler/Template/CodegenFMU.tpl"
@@ -195,7 +195,7 @@ end simulationHeaderFile;
195195 // synchronous
196196 let()= textFileConvertLines(simulationFile_syn(simCode,guid), '<%fileNamePrefix%>_15syn.c')
197197 // main file
198- let()= textFileConvertLines(simulationFile(simCode,guid), '<%fileNamePrefix%>.c')
198+ let()= textFileConvertLines(simulationFile(simCode,guid,isModelExchangeFMU ), '<%fileNamePrefix%>.c')
199199 ""
200200 end match
201201end generateSimulationFiles;
@@ -810,7 +810,7 @@ template simulationFile_lnz(SimCode simCode, String guid)
810810 end match
811811end simulationFile_lnz;
812812
813- template simulationFile(SimCode simCode, String guid)
813+ template simulationFile(SimCode simCode, String guid, Boolean isModelExchangeFMU )
814814 "Generates code for main C file for simulation target."
815815::=
816816 match simCode
@@ -842,12 +842,16 @@ template simulationFile(SimCode simCode, String guid)
842842 /* Main Simulation File */
843843 <%simulationFileHeader(simCode)%>
844844
845+ <% if boolNot(isModelExchangeFMU) then
846+ <<
845847 #define prefixedName_performSimulation <%symbolName(modelNamePrefixStr,"performSimulation")%>
846848 #define prefixedName_updateContinuousSystem <%symbolName(modelNamePrefixStr,"updateContinuousSystem")%>
847849 #include <simulation /solver /perform_simulation.c >
848850
849851 #define prefixedName_performQSSSimulation <%symbolName(modelNamePrefixStr,"performQSSSimulation")%>
850852 #include <simulation /solver /perform_qss_simulation.c >
853+ >>
854+ %>
851855
852856 /* dummy VARINFO and FILEINFO */
853857 const FILE_INFO dummyFILE_INFO = omc_dummyFileInfo;
@@ -874,9 +878,9 @@ template simulationFile(SimCode simCode, String guid)
874878 #include " <%simCode.fileNamePrefix%>_13opt.h"
875879
876880 struct OpenModelicaGeneratedFunctionCallbacks <% symbolName(modelNamePrefixStr," callback" )%> = {
877- (int (*)(DATA *, threadData_t *, void *)) <% symbolName(modelNamePrefixStr," performSimulation" )%> ,
878- (int (*)(DATA *, threadData_t *, void *)) <% symbolName(modelNamePrefixStr," performQSSSimulation" )%> ,
879- <% symbolName(modelNamePrefixStr," updateContinuousSystem" )%> ,
881+ <% if isModelExchangeFMU then " NULL " else ' (int (*)(DATA *, threadData_t *, void *)) <%symbolName(modelNamePrefixStr,"performSimulation")%> ' %> ,
882+ <% if isModelExchangeFMU then " NULL " else ' (int (*)(DATA *, threadData_t *, void *)) <%symbolName(modelNamePrefixStr,"performQSSSimulation")%> ' %> ,
883+ <% if isModelExchangeFMU then " NULL " else ' <% symbolName(modelNamePrefixStr,"updateContinuousSystem")%> ' %> ,
880884 <% symbolName(modelNamePrefixStr," callExternalObjectConstructors" )%> ,
881885 <% symbolName(modelNamePrefixStr," callExternalObjectDestructors" )%> ,
882886 <% symbolName(modelNamePrefixStr," initialNonLinearSystem" )%> ,
0 commit comments