Skip to content

Commit

Permalink
added precompiled header for msvc in cpp runtime cmakefile and cpp te…
Browse files Browse the repository at this point in the history
…mplate

git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@20512 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
  • Loading branch information
niklwors committed May 9, 2014
1 parent 45f69f4 commit 23477a0
Show file tree
Hide file tree
Showing 37 changed files with 204 additions and 229 deletions.
105 changes: 80 additions & 25 deletions Compiler/Template/CodegenCpp.tpl
Expand Up @@ -233,7 +233,6 @@ case SIMCODE(modelInfo=MODELINFO(__)) then
else
<<
#include "DataExchange/Policies/TextfileWriter.h"
#include "System/IWriteOutput.h"
typedef HistoryImpl<TextFileWriter,<%numAlgvars(modelInfo)%>+<%numInOutvars(modelInfo)%>+<%numAliasvars(modelInfo)%>+<%numStatevars(modelInfo)%>,<%numDerivativevars(modelInfo)%>,0> HistoryImplType;

>>%>
Expand Down Expand Up @@ -335,6 +334,14 @@ case SIMCODE(modelInfo=MODELINFO(__)) then
<<
#pragma once
#include "Modelica.h"
#include <System/IMixedSystem.h>
#include <SimulationSettings/IGlobalSettings.h>
#include <System/IAlgLoopSolverFactory.h>
#include <System/IMixedSystem.h>
#include <System/IAlgLoop.h>
#include <Solver/IAlgLoopSolver.h>
#include <System/IAlgLoopSolverFactory.h>
#include <SimController/ISimData.h>
#include "OMCpp<%fileNamePrefix%>Extension.h"


Expand All @@ -356,6 +363,14 @@ match simCode
case SIMCODE(modelInfo = MODELINFO(__)) then
<<
#include "Modelica.h"
#include <System/IMixedSystem.h>
#include <SimulationSettings/IGlobalSettings.h>
#include <System/IAlgLoopSolverFactory.h>
#include <System/IMixedSystem.h>
#include <System/IAlgLoop.h>
#include <Solver/IAlgLoopSolver.h>
#include <System/IAlgLoopSolverFactory.h>
#include <SimController/ISimData.h>
#include "OMCpp<%fileNamePrefix%>Initialize.h"
<%lastIdentOfPath(modelInfo.name)%>Initialize::<%lastIdentOfPath(modelInfo.name)%>Initialize(IGlobalSettings* globalSettings,boost::shared_ptr<IAlgLoopSolverFactory> nonlinsolverfactory,boost::shared_ptr<ISimData> simData)
: <%lastIdentOfPath(modelInfo.name)%>(globalSettings,nonlinsolverfactory,simData)
Expand All @@ -382,6 +397,14 @@ match simCode
case SIMCODE(modelInfo = MODELINFO(__)) then
<<
#include "Modelica.h"
#include <System/IMixedSystem.h>
#include <SimulationSettings/IGlobalSettings.h>
#include <System/IAlgLoopSolverFactory.h>
#include <System/IMixedSystem.h>
#include <System/IAlgLoop.h>
#include <Solver/IAlgLoopSolver.h>
#include <System/IAlgLoopSolverFactory.h>
#include <SimController/ISimData.h>
#include "OMCpp<%fileNamePrefix%>Jacobian.h"
<%lastIdentOfPath(modelInfo.name)%>Jacobian::<%lastIdentOfPath(modelInfo.name)%>Jacobian(IGlobalSettings* globalSettings,boost::shared_ptr<IAlgLoopSolverFactory> nonlinsolverfactory,boost::shared_ptr<ISimData> simData)
: <%lastIdentOfPath(modelInfo.name)%>(globalSettings,nonlinsolverfactory,simData)
Expand All @@ -407,6 +430,14 @@ match simCode
case SIMCODE(modelInfo = MODELINFO(__)) then
<<
#include "Modelica.h"
#include <System/IMixedSystem.h>
#include <SimulationSettings/IGlobalSettings.h>
#include <System/IAlgLoopSolverFactory.h>
#include <System/IMixedSystem.h>
#include <System/IAlgLoop.h>
#include <Solver/IAlgLoopSolver.h>
#include <System/IAlgLoopSolverFactory.h>
#include <SimController/ISimData.h>
#include "OMCpp<%fileNamePrefix%>StateSelection.h"
<%lastIdentOfPath(modelInfo.name)%>StateSelection::<%lastIdentOfPath(modelInfo.name)%>StateSelection(IGlobalSettings* globalSettings,boost::shared_ptr<IAlgLoopSolverFactory> nonlinsolverfactory,boost::shared_ptr<ISimData> simData)
: <%lastIdentOfPath(modelInfo.name)%>(globalSettings,nonlinsolverfactory,simData)
Expand Down Expand Up @@ -435,6 +466,14 @@ match simCode
case SIMCODE(modelInfo = MODELINFO(__)) then
<<
#include "Modelica.h"
#include <System/IMixedSystem.h>
#include <SimulationSettings/IGlobalSettings.h>
#include <System/IAlgLoopSolverFactory.h>
#include <System/IMixedSystem.h>
#include <System/IAlgLoop.h>
#include <Solver/IAlgLoopSolver.h>
#include <System/IAlgLoopSolverFactory.h>
#include <SimController/ISimData.h>
#include "OMCpp<%fileNamePrefix%>WriteOutput.h"

<%lastIdentOfPath(modelInfo.name)%>WriteOutput::<%lastIdentOfPath(modelInfo.name)%>WriteOutput(IGlobalSettings* globalSettings,boost::shared_ptr<IAlgLoopSolverFactory> nonlinsolverfactory,boost::shared_ptr<ISimData> simData)
Expand Down Expand Up @@ -479,6 +518,14 @@ case SIMCODE(modelInfo = MODELINFO(__)) then

<<
#include "Modelica.h"
#include <System/IMixedSystem.h>
#include <SimulationSettings/IGlobalSettings.h>
#include <System/IAlgLoopSolverFactory.h>
#include <System/IMixedSystem.h>
#include <System/IAlgLoop.h>
#include <Solver/IAlgLoopSolver.h>
#include <System/IAlgLoopSolverFactory.h>
#include <SimController/ISimData.h>
#include "OMCpp<%fileNamePrefix%>Extension.h"
<%lastIdentOfPath(modelInfo.name)%>Extension::<%lastIdentOfPath(modelInfo.name)%>Extension(IGlobalSettings* globalSettings,boost::shared_ptr<IAlgLoopSolverFactory> nonlinsolverfactory,boost::shared_ptr<ISimData> simData)
: <%lastIdentOfPath(modelInfo.name)%>(globalSettings,nonlinsolverfactory,simData)
Expand Down Expand Up @@ -1048,19 +1095,8 @@ case SIMCODE(modelInfo=MODELINFO(__), makefileParams=MAKEFILE_PARAMS(__)) then
#ifndef BOOST_ALL_DYN_LINK
#define BOOST_ALL_DYN_LINK
#endif
#include <boost/shared_ptr.hpp>
#include <boost/weak_ptr.hpp>
#include <boost/numeric/ublas/vector.hpp>
#include <boost/numeric/ublas/matrix.hpp>
#include <string>
#include <vector>
#include <map>
using std::string;
using std::vector;
using std::map;
namespace ublas = boost::numeric::ublas;
#include <SimCoreFactory/Policies/FactoryConfig.h>
#include <SimController/ISimController.h>
#include "Modelica.h"
#include <SimCoreFactory/Policies/FactoryConfig.h>
#if defined(_MSC_VER) || defined(__MINGW32__)
#include <tchar.h>
int _tmain(int argc, const _TCHAR* argv[])
Expand Down Expand Up @@ -1161,7 +1197,7 @@ case SIMCODE(modelInfo=MODELINFO(__)) then
#include "Math/Functions.h"
#include "Math/Utility.h"
#include "LibrariesConfig.h"
#include "boost/tuple/tuple.hpp"

/*****************************************************************************
*
* Simulation code for FunctionCall functions generated by the OpenModelica Compiler.
Expand Down Expand Up @@ -1254,7 +1290,7 @@ case SIMCODE(modelInfo=MODELINFO(__), makefileParams=MAKEFILE_PARAMS(__), simula
# /I - Include Directories
# /DNOMINMAX - Define NOMINMAX (does what it says)
# /TP - Use C++ Compiler
CFLAGS= /ZI /Od /EHa /MP /fp:except /I"<%makefileParams.omhome%>/include/omc/cpp/Core/" /I"<%makefileParams.omhome%>/include/omc/cpp/" -I. <%makefileParams.includes%> -I"$(BOOST_INCLUDE)" /I. /DNOMINMAX /TP /DNO_INTERACTIVE_DEPENDENCY
CFLAGS= $(SYSTEM_CFLAGS) /I"<%makefileParams.omhome%>/include/omc/cpp/Core/" /I"<%makefileParams.omhome%>/include/omc/cpp/" -I. <%makefileParams.includes%> -I"$(BOOST_INCLUDE)" /I. /DNOMINMAX /TP /DNO_INTERACTIVE_DEPENDENCY /Fp<%makefileParams.omhome%>/include/omc/cpp/Modelica.pch /YuModelica.h

CPPFLAGS = /DOMC_BUILD
# /ZI enable Edit and Continue debug info
Expand All @@ -1264,8 +1300,10 @@ case SIMCODE(modelInfo=MODELINFO(__), makefileParams=MAKEFILE_PARAMS(__), simula
# /link - [linker options and libraries]
# /LIBPATH: - Directories where libs can be found
#LDFLAGS=/MDd /link /DLL /NOENTRY /LIBPATH:"<%makefileParams.omhome%>/lib/omc/cpp/msvc" /LIBPATH:"<%makefileParams.omhome%>/bin" /LIBPATH:"$(BOOST_LIBS)" OMCppSystem.lib OMCppMath.lib
LDSYTEMFLAGS=/MD /Debug /link /DLL /NOENTRY /LIBPATH:"<%makefileParams.omhome%>/lib/omc/cpp/msvc" /LIBPATH:"<%makefileParams.omhome%>/bin" /LIBPATH:"$(BOOST_LIBS)" OMCppSystem.lib OMCppModelicaUtilities.lib OMCppMath.lib OMCppOMCFactory.lib
LDMAINFLAGS=/MD /Debug /link /LIBPATH:"<%makefileParams.omhome%>/lib/omc/cpp/msvc" OMCppOMCFactory.lib /LIBPATH:"<%makefileParams.omhome%>/bin" /LIBPATH:"$(BOOST_LIBS)"
#LDSYTEMFLAGS=/MD /Debug /link /DLL /NOENTRY /LIBPATH:"<%makefileParams.omhome%>/lib/omc/cpp/msvc" /LIBPATH:"<%makefileParams.omhome%>/bin" /LIBPATH:"$(BOOST_LIBS)" OMCppSystem.lib OMCppModelicaUtilities.lib OMCppMath.lib OMCppOMCFactory.lib
LDSYTEMFLAGS= /link /DLL /NOENTRY /LIBPATH:"<%makefileParams.omhome%>/lib/omc/cpp/msvc" /LIBPATH:"<%makefileParams.omhome%>/bin" /LIBPATH:"$(BOOST_LIBS)" OMCppSystem.lib OMCppModelicaUtilities.lib OMCppMath.lib OMCppOMCFactory.lib
#LDMAINFLAGS=/MD /Debug /link /LIBPATH:"<%makefileParams.omhome%>/lib/omc/cpp/msvc" OMCppOMCFactory.lib /LIBPATH:"<%makefileParams.omhome%>/bin" /LIBPATH:"$(BOOST_LIBS)"
LDMAINFLAGS=/link /LIBPATH:"<%makefileParams.omhome%>/lib/omc/cpp/msvc" OMCppOMCFactory.lib /LIBPATH:"<%makefileParams.omhome%>/bin" /LIBPATH:"$(BOOST_LIBS)"
# /MDd link with MSVCRTD.LIB debug lib
# lib names should not be appended with a d just switch to lib/omc/cpp

Expand Down Expand Up @@ -1309,8 +1347,8 @@ LINK=<%makefileParams.linker%>
EXEEXT=<%makefileParams.exeext%>
DLLEXT=<%makefileParams.dllext%>
CFLAGS_BASED_ON_INIT_FILE=<%extraCflags%>
CFLAGS=$(CFLAGS_BASED_ON_INIT_FILE) -Winvalid-pch $(SYSTEM_CFLAGS) -I"<%makefileParams.omhome%>/include/omc/cpp/Core" -I"<%makefileParams.omhome%>/include/omc/cpp/" -I. <%makefileParams.includes%> -I"$(BOOST_INCLUDE)" <%makefileParams.includes ; separator=" "%> <%match sopt case SOME(s as SIMULATION_SETTINGS(__)) then s.cflags %>
LDSYTEMFLAGS=-L"<%makefileParams.omhome%>/lib/omc/cpp" -L"$(BOOST_LIBS)"
CFLAGS=$(CFLAGS_BASED_ON_INIT_FILE) -Winvalid-pch $(SYSTEM_CFLAGS) -I"<%makefileParams.omhome%>/include/omc/cpp/Core" -I"<%makefileParams.omhome%>/include/omc/cpp/" -I. <%makefileParams.includes%> -I"$(BOOST_INCLUDE)" <%makefileParams.includes ; separator=" "%> <%match sopt case SOME(s as SIMULATION_SETTINGS(__)) then s.cflags %>
LDSYTEMFLAGS=-L"<%makefileParams.omhome%>/lib/omc/cpp" -lOMCppOMCFactory -L"$(BOOST_LIBS)"
LDMAINFLAGS=-L"<%makefileParams.omhome%>/lib/omc/cpp" -L"<%makefileParams.omhome%>/bin" -lOMCppOMCFactory -L"$(BOOST_LIBS)" $(BOOST_SYSTEM_LIB) $(BOOST_FILESYSTEM_LIB) $(BOOST_PROGRAM_OPTIONS_LIB) $(LINUX_LIB_DL)
CPPFLAGS = $(CFLAGS) -DOMC_BUILD -DBOOST_SYSTEM_NO_DEPRICATED
SYSTEMFILE=OMCpp<%fileNamePrefix%><% if acceptMetaModelicaGrammar() then ".conv"%>.cpp
Expand Down Expand Up @@ -1354,6 +1392,14 @@ match simCode
case SIMCODE(modelInfo = MODELINFO(__)) then
<<
#include "Modelica.h"
#include <System/IMixedSystem.h>
#include <SimulationSettings/IGlobalSettings.h>
#include <System/IAlgLoopSolverFactory.h>
#include <System/IMixedSystem.h>
#include <System/IAlgLoop.h>
#include <Solver/IAlgLoopSolver.h>
#include <System/IAlgLoopSolverFactory.h>
#include <SimController/ISimData.h>
#include "OMCpp<%fileNamePrefix%>.h"


Expand Down Expand Up @@ -1450,6 +1496,15 @@ match eq
<<
#include "Modelica.h"
#include <System/IMixedSystem.h>
#include <SimulationSettings/IGlobalSettings.h>
#include <System/IAlgLoopSolverFactory.h>
#include <System/IMixedSystem.h>
#include <System/IAlgLoop.h>
#include <Solver/IAlgLoopSolver.h>
#include <System/IAlgLoopSolverFactory.h>
#include <SimController/ISimData.h>
#include "OMCpp<%fileNamePrefix%>Extension.h"
#include "OMCpp<%filename%>Algloop<%index%>.h"
#include "OMCpp<%modelfilename%>.h"
<%if Flags.isSet(Flags.WRITE_TO_BUFFER) then '#include "Math/ArrayOperations.h"'%>
Expand Down Expand Up @@ -1517,7 +1572,7 @@ case SIMCODE(modelInfo = MODELINFO(__)) then
<<
void <%modelname%>Algloop<%index%>::evaluate(const IContinuous::UPDATETYPE command)
void <%modelname%>Algloop<%index%>::evaluate()
{
<%varDecls%>
Expand Down Expand Up @@ -1585,7 +1640,7 @@ case SIMCODE(modelInfo = MODELINFO(__)) then
<<
void <%modelname%>Algloop<%index%>::evaluate(const IContinuous::UPDATETYPE command)
void <%modelname%>Algloop<%index%>::evaluate()
{
<%varDecls%>
<%Amatrix%>
Expand Down Expand Up @@ -2980,7 +3035,7 @@ case SIMCODE(modelInfo = MODELINFO(__)) then
AlgLoopDefaultImplementation::initialize();
// Update the equations once before start of simulation
evaluate(IContinuous::ALL);
evaluate();
}
>>
case SES_LINEAR(__) then
Expand All @@ -2990,7 +3045,7 @@ case SIMCODE(modelInfo = MODELINFO(__)) then
<%initAlgloopEquation(eq,varDecls,simCode,context)%>
// Update the equations once before start of simulation
evaluate(IContinuous::ALL);
evaluate();
}
>>
Expand Down Expand Up @@ -3920,7 +3975,7 @@ case SIMCODE(modelInfo = MODELINFO(__)) then
/// Set variables with given index to the system
virtual void setReal(const double* vars) ;
/// Update transfer behavior of the system of equations according to command given by solver
virtual void evaluate(const IContinuous::UPDATETYPE command =IContinuous::UNDEF_UPDATE);
virtual void evaluate();
/// Provide the right hand side (according to the index)
virtual void getRHS(double* vars);
<%if Flags.isSet(Flags.WRITE_TO_BUFFER) then
Expand Down
8 changes: 8 additions & 0 deletions Compiler/Template/CodegenFMUCpp.tpl
Expand Up @@ -159,6 +159,14 @@ case SIMCODE(modelInfo=MODELINFO(__)) then
#define MODEL_GUID "{<%guid%>}"

#include "Modelica.h"
#include <System/IMixedSystem.h>
#include <SimulationSettings/IGlobalSettings.h>
#include <System/IAlgLoopSolverFactory.h>
#include <System/IMixedSystem.h>
#include <System/IAlgLoop.h>
#include <Solver/IAlgLoopSolver.h>
#include <System/IAlgLoopSolverFactory.h>
#include <SimController/ISimData.h>
#include "OMCpp<%lastIdentOfPath(modelInfo.name)%>Extension.h"

<%ModelDefineData(modelInfo)%>
Expand Down
26 changes: 6 additions & 20 deletions SimulationRuntime/cpp/Core/DataExchange/stdafx.h
@@ -1,6 +1,3 @@
// stdafx.h :
//

#pragma once
#ifndef BOOST_THREAD_USE_DLL
#define BOOST_THREAD_USE_DLL
Expand All @@ -15,7 +12,7 @@
#include <vector>
#include <map>
#include <string>
#include <ostream> // Use stream for output
#include <ostream>// Use stream for output

#include <boost/ref.hpp>
#include <boost/bind.hpp>
Expand All @@ -40,6 +37,9 @@
#include <boost/range/adaptor/map.hpp>
#include <boost/range/algorithm/copy.hpp>
#include <boost/math/tools/real_cast.hpp>
#include <boost/program_options.hpp>
#include <boost/numeric/ublas/matrix_sparse.hpp>
namespace uBlas = boost::numeric::ublas;
using std::vector;
using std::map;
using std::string;
Expand All @@ -65,33 +65,19 @@ typedef ublas::matrix<double, adaptor_t> shared_matrix_t;
#include <System/IMixedSystem.h>
#include <SimulationSettings/ISettingsFactory.h>
#include <SimulationSettings/ISimControllerSettings.h>
#include <SimulationSettings/IGlobalSettings.h>
#include <System/IAlgLoopSolverFactory.h>
#include <System/IMixedSystem.h>
#include <System/ISystemProperties.h>
#include <System/ISystemInitialization.h>
#include <System/IContinuous.h>
#include <System/ITime.h>
#include <System/IEvent.h>
#include <System/IAlgLoop.h>
#include <System/ICoupledSystem.h>
#include <System/IWriteOutput.h>
#include <Solver/INonLinSolverSettings.h>
#include <Solver/IAlgLoopSolver.h>
#include <System/IAlgLoopSolverFactory.h>
#include <SimController/ISimController.h>
#include <SimController/ISimData.h>
#include <Extensions/IModelicaCompiler.h>
#include <DataExchange/IHistory.h>
#include <SimController/ISimData.h>
#include "DataExchange/IHistory.h"










#include "DataExchange/IHistory.h"

4 changes: 2 additions & 2 deletions SimulationRuntime/cpp/Core/Modelica/CMakeLists.txt
Expand Up @@ -3,10 +3,10 @@ cmake_minimum_required (VERSION 2.6)
project(${ModelicaName})

IF(ANALYZATION_MODE)
add_library(${ModelicaName} STATIC ModelicaSystem.cpp )
add_library(${ModelicaName} STATIC Modelica.cpp ModelicaSystem.cpp )
include_directories(${SUNDIALS_INCLUDE_DIR}/cvodes ${SUNDIALS_INCLUDE_DIR}/nvector ${SUNDIALS_INCLUDE_DIR}/sundials ${SUNDIALS_INCLUDE_DIR})
ELSE(ANALYZATION_MODE)
add_library(${ModelicaName} SHARED ModelicaSystem.cpp )
add_library(${ModelicaName} SHARED Modelica.cpp ModelicaSystem.cpp )
ENDIF(ANALYZATION_MODE)

target_link_libraries (${ModelicaName} ${SystemName} ${ModelicaExternalCName} ${MathName})
Expand Down
11 changes: 8 additions & 3 deletions SimulationRuntime/cpp/Core/Modelica/ModelicaSystem.cpp
@@ -1,6 +1,11 @@
#include "stdafx.h"

#include "ModelicaSystem.h"
#include "Modelica.h"
#include <SimCoreFactory/Policies/FactoryConfig.h>
#include "FactoryExport.h"
#include "System/EventHandling.h"
#include "HistoryImpl.h"
#include "System/SystemDefaultImplementation.h"
#include "DataExchange/Policies/TextfileWriter.h"
#include "ModelicaSystem.h"



Expand Down
12 changes: 1 addition & 11 deletions SimulationRuntime/cpp/Core/Modelica/ModelicaSystem.h
@@ -1,10 +1,6 @@
#pragma once

#include "FactoryExport.h"
#include "System/SystemDefaultImplementation.h"
#include "System/EventHandling.h"
#include "HistoryImpl.h"
#include "DataExchange/Policies/TextfileWriter.h"




Expand Down Expand Up @@ -141,10 +137,4 @@ class Modelica: public IMixedSystem ,public IContinuous ,public IEvent ,public I

void resetHelpVar(const int index);

//Variables:
EventHandling _event_handling;



SparseMatrix _jacobian;
};

0 comments on commit 23477a0

Please sign in to comment.