Skip to content

Commit

Permalink
- FMU cleanup (CPP-Runtime)
Browse files Browse the repository at this point in the history
  • Loading branch information
Marcus Walther authored and OpenModelica-Hudson committed Jun 11, 2015
1 parent 13c4698 commit 278ed06
Show file tree
Hide file tree
Showing 12 changed files with 262 additions and 538 deletions.
33 changes: 6 additions & 27 deletions Compiler/Template/CodegenCpp.tpl
Expand Up @@ -2524,9 +2524,9 @@ case SIMCODE(modelInfo=MODELINFO(__), makefileParams=MAKEFILE_PARAMS(__), simula
# /DNOMINMAX - Define NOMINMAX (does what it says)
# /TP - Use C++ Compiler
!IF "$(PCH_FILE)" == ""
CFLAGS= $(SYSTEM_CFLAGS) /I"<%makefileParams.omhome%>/include/omc/cpp/Core/" /I"<%makefileParams.omhome%>/include/omc/cpp/" /I. <%makefileParams.includes%> /I"$(BOOST_INCLUDE)" /I"$(UMFPACK_INCLUDE)" /DNOMINMAX /TP /DNO_INTERACTIVE_DEPENDENCY <%additionalCFlags_MSVC%>
CFLAGS= $(SYSTEM_CFLAGS) /I"<%makefileParams.omhome%>/include/omc/cpp/" /I. <%makefileParams.includes%> /I"$(BOOST_INCLUDE)" /I"$(UMFPACK_INCLUDE)" /DNOMINMAX /TP /DNO_INTERACTIVE_DEPENDENCY <%additionalCFlags_MSVC%>
!ELSE
CFLAGS= $(SYSTEM_CFLAGS) /I"<%makefileParams.omhome%>/include/omc/cpp/Core/" /I"<%makefileParams.omhome%>/include/omc/cpp/" /I. <%makefileParams.includes%> /I"$(BOOST_INCLUDE)" /I"$(UMFPACK_INCLUDE)" /DNOMINMAX /TP /DNO_INTERACTIVE_DEPENDENCY /Fp<%makefileParams.omhome%>/include/omc/cpp/Core/$(PCH_FILE) /YuCore/$(H_FILE) <%additionalCFlags_MSVC%>
CFLAGS= $(SYSTEM_CFLAGS) /I"<%makefileParams.omhome%>/include/omc/cpp/" /I. <%makefileParams.includes%> /I"$(BOOST_INCLUDE)" /I"$(UMFPACK_INCLUDE)" /DNOMINMAX /TP /DNO_INTERACTIVE_DEPENDENCY /Fp<%makefileParams.omhome%>/include/omc/cpp/Core/$(PCH_FILE) /YuCore/$(H_FILE) <%additionalCFlags_MSVC%>
!ENDIF
CPPFLAGS =
# /ZI enable Edit and Continue debug info
Expand Down Expand Up @@ -2603,7 +2603,7 @@ case "gcc" then
EXEEXT=<%makefileParams.exeext%>
DLLEXT=<%makefileParams.dllext%>
CFLAGS_BASED_ON_INIT_FILE=<%extraCflags%>
CFLAGS=$(CFLAGS_BASED_ON_INIT_FILE) -Winvalid-pch $(SYSTEM_CFLAGS) -I"$(OMHOME)/include/omc/cpp/Core" -I"$(OMHOME)/include/omc/cpp/" -I. <%makefileParams.includes%> -I"$(BOOST_INCLUDE)" -I"$(UMFPACK_INCLUDE)" <%makefileParams.includes ; separator=" "%> <%match sopt case SOME(s as SIMULATION_SETTINGS(__)) then s.cflags %> <%additionalCFlags_GCC%>
CFLAGS=$(CFLAGS_BASED_ON_INIT_FILE) -Winvalid-pch $(SYSTEM_CFLAGS) -I"$(OMHOME)/include/omc/cpp/" -I. <%makefileParams.includes%> -I"$(BOOST_INCLUDE)" -I"$(UMFPACK_INCLUDE)" <%makefileParams.includes ; separator=" "%> <%match sopt case SOME(s as SIMULATION_SETTINGS(__)) then s.cflags %> <%additionalCFlags_GCC%>
CFLAGS_STATIC=$(CFLAGS) <%staticIncludes%> -DRUNTIME_STATIC_LINKING

MODELICA_EXTERNAL_LIBS=-lModelicaExternalC -lModelicaStandardTables -L$(LAPACK_LIBS) $(LAPACK_LIBRARIES)
Expand Down Expand Up @@ -6019,29 +6019,8 @@ case SIMCODE(modelInfo=MODELINFO(__), extObjInfo=EXTOBJINFO(__)) then
end match
%>

#include "System/SystemDefaultImplementation.h"
/*includes removed for static linking not needed any more
#ifdef RUNTIME_STATIC_LINKING
#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;

#include <SimCoreFactory/Policies/FactoryConfig.h>
#include <SimController/ISimController.h>
#include <System/IMixedSystem.h>

#include <boost/numeric/ublas/matrix_sparse.hpp>
typedef uBlas::compressed_matrix<double, uBlas::column_major, 0, uBlas::unbounded_array<int>, uBlas::unbounded_array<double> > SparseMatrix;
#endif //RUNTIME_STATIC_LINKING
*/
#include <Core/System/SystemDefaultImplementation.h>

//Forward declaration to speed-up the compilation process
class Functions;
class EventHandling;
Expand Down Expand Up @@ -10260,7 +10239,7 @@ template algloopMainfile(list<SimEqSystem> allEquations, SimCode simCode ,Text&
* This file is generated by the OpenModelica Compiler and produced to speed-up the compile time.
*
*****************************************************************************/
#include "System/AlgLoopDefaultImplementation.h"
#include <Core/System/AlgLoopDefaultImplementation.h>
//jac files
<%jacfiles%>
//alg loop files
Expand Down
12 changes: 6 additions & 6 deletions Compiler/Template/CodegenFMUCpp.tpl
Expand Up @@ -268,15 +268,15 @@ case SIMCODE(modelInfo=MODELINFO(__)) then
<%if isFMIVersion20(FMUVersion) then
'#include "FMU2/FMU2Wrapper.cpp"'
else
'#include "FMU/FMUWrapper.cpp"'%>
'#include <FMU/FMUWrapper.h>'%>
<%if isFMIVersion20(FMUVersion) then
'#include "FMU2/FMU2Interface.cpp"'
else
'#include "FMU/FMULibInterface.cpp"'%>
'#include <FMU/FMULibInterface.h>'%>

// create simulation variables
#include <System/FactoryExport.h>
#include <System/SimVars.h>
#include <Core/System/FactoryExport.h>
#include <Core/System/SimVars.h>

ISimVars *<%modelShortName%>FMU::createSimVars() {
return new SimVars(<%numRealvars(modelInfo)%>, <%numIntvars(modelInfo)%>, <%numBoolvars(modelInfo)%>, <%getPreVarsCount(modelInfo)%>, <%numStatevars(modelInfo)%>, <%numStateVarIndex(modelInfo)%>);
Expand Down Expand Up @@ -716,15 +716,15 @@ case SIMCODE(modelInfo=MODELINFO(__), makefileParams=MAKEFILE_PARAMS(__), simula
DLLEXT=<%makefileParams.dllext%>
CFLAGS_BASED_ON_INIT_FILE=<%extraCflags%>

CFLAGS=$(CFLAGS_BASED_ON_INIT_FILE) -Winvalid-pch $(SYSTEM_CFLAGS) -I"$(OMHOME)/include/omc/cpp" -I"$(UMFPACK_INCLUDE)" -I"$(OMHOME)/include/omc/cpp/Core" -I"$(OMHOME)/include/omc/cpp/SimCoreFactory" -I"$(BOOST_INCLUDE)" <%makefileParams.includes ; separator=" "%>
CFLAGS=$(CFLAGS_BASED_ON_INIT_FILE) -Winvalid-pch $(SYSTEM_CFLAGS) -I"$(OMHOME)/include/omc/cpp" -I"$(UMFPACK_INCLUDE)" -I"$(BOOST_INCLUDE)" <%makefileParams.includes ; separator=" "%>
CPPFLAGS = $(CFLAGS)
LDFLAGS=-L"$(OMHOME)/lib/<%getTriple()%>/omc/cpp" -L"$(BOOST_LIBS)"
PLATFORM="<%platformstr%>"

CALCHELPERMAINFILE=OMCpp<%fileNamePrefix%>CalcHelperMain.cpp
ALGLOOPSMAINFILE=OMCpp<%fileNamePrefix%>AlgLoopMain.cpp

OMCPP_LIBS= -lOMCppSystem_static -lOMCppDataExchange_static -lOMCppOMCFactory_static -lOMCppMath_static -lOMCppModelicaUtilities_static
OMCPP_LIBS= -lOMCppSystem_static -lOMCppDataExchange_static -lOMCppOMCFactory_static -lOMCppMath_static -lOMCppModelicaUtilities_static -lFMU_static
OMCPP_SOLVER_LIBS=-Wl,-rpath,"$(OMHOME)/lib/<%getTriple()%>/omc/cpp"
MODELICA_EXTERNAL_LIBS=-lModelicaExternalC -lModelicaStandardTables -L$(LAPACK_LIBS) $(LAPACK_LIBRARIES)
BOOST_LIBRARIES = -l$(BOOST_SYSTEM_LIB) -l$(BOOST_FILESYSTEM_LIB) -l$(BOOST_PROGRAM_OPTIONS_LIB)
Expand Down
14 changes: 7 additions & 7 deletions SimulationRuntime/cpp/CMakeLists.txt
Expand Up @@ -72,6 +72,7 @@ SET(ModelicaUtilitiesName ${LIBPREFIX}ModelicaUtilities)
SET(ExtensionUtilitiesName ${LIBPREFIX}ExtensionUtilities)
SET(BasiLibName ${LIBPREFIX}Base)
SET(ModelicaCompilerName ${LIBPREFIX}ModelicaCompiler)
SET(FMUName ${LIBPREFIX}FMU)

SET(USE_MICO OFF)
SET(REDUCE_DAE OFF)
Expand Down Expand Up @@ -438,6 +439,7 @@ add_subdirectory (Solver/UmfPack)
add_subdirectory (Solver/Peer)
##add_subdirectory (Solver/RTRK)

add_subdirectory (FMU)

if(REDUCE_DAE)
#add_subdirectory(ReduceDAE/Implementation)
Expand Down Expand Up @@ -522,6 +524,9 @@ GET_FILENAME_COMPONENT(libModelicaCompilerName ${libModelicaCompiler} NAME)
GET_TARGET_PROPERTY(libSimObjFactory ${OMCFactoryName} LOCATION)
GET_FILENAME_COMPONENT(libSimObjFactoryName ${libSimObjFactory} NAME)

GET_TARGET_PROPERTY(libFMU ${FMUName} LOCATION)
GET_FILENAME_COMPONENT(libFMUName ${libFMU} NAME)

set (EULER_LIB ${libEulerName})
set (RTEULER_LIB ${libRTEulerName})
set (SETTINGSFACTORY_LIB ${libSetFactoryName})
Expand All @@ -539,6 +544,7 @@ set (DATAEXCHANGE_LIB ${libDataExchangeName})
set (SIMCONTROLLER_LIB ${libSimControllerName})
set (EXTENSIONUTILITIES_LIB ${libExtensionUtilitiesName})
set (MODELICACOMPILER_LIB ${libModelicaCompilerName})
set (FMU_LIB ${libFMUName})

# configure a header file to pass some library names
# to the source code which are used to dynamic load and instantiate
Expand Down Expand Up @@ -595,6 +601,7 @@ install (FILES "${PROJECT_BINARY_DIR}/LibrariesConfig.h" DESTINATION include/omc
Include/Core/Utils/extension/registry.hpp
Include/Core/Utils/extension/shared_library.hpp
Include/Core/Utils/extension/type_map.hpp
Include/Core/Utils/extension/logger.hpp
Include/Core/Utils/extension/impl/adaptable_factory.hpp
Include/Core/Utils/extension/impl/adaptable_factory_free_functions.hpp
Include/Core/Utils/extension/impl/adaptable_factory_set.hpp
Expand All @@ -607,13 +614,6 @@ install (FILES "${PROJECT_BINARY_DIR}/LibrariesConfig.h" DESTINATION include/omc
Include/Core/Utils/extension/impl/library_impl.hpp
Include/Core/Utils/extension/impl/shared_library.hpp
Include/Core/Utils/extension/impl/typeinfo.hpp
Include/FMU/fmiModelFunctions.h
Include/FMU/fmiModelTypes.h
Include/FMU/FMUGlobalSettings.h
Include/FMU/IFMUInterface.h
Include/FMU/FMULibInterface.cpp
Include/FMU/FMUWrapper.cpp
Include/FMU/FMUWrapper.h
Include/FMU2/fmi2Functions.h
Include/FMU2/fmi2FunctionTypes.h
Include/FMU2/fmi2TypesPlatform.h
Expand Down
4 changes: 2 additions & 2 deletions SimulationRuntime/cpp/Core/Utils/extension/CMakeLists.txt
Expand Up @@ -2,7 +2,7 @@ cmake_minimum_required (VERSION 2.8.6)

project(${ExtensionUtilitiesName})

add_library(${ExtensionUtilitiesName}_static STATIC measure_time.cpp measure_time_rdtsc.cpp measure_time_scorep.cpp)
add_library(${ExtensionUtilitiesName}_static STATIC measure_time.cpp measure_time_rdtsc.cpp measure_time_scorep.cpp logger.cpp)
IF(NOT BOOST_STATIC_LINKING)
target_link_libraries (${ExtensionUtilitiesName}_static ${Boost_LIBRARIES})
ENDIF(NOT BOOST_STATIC_LINKING)
Expand All @@ -12,7 +12,7 @@ ENDIF(UNIX)
set_target_properties(${ExtensionUtilitiesName}_static PROPERTIES COMPILE_DEFINITIONS "DRUNTIME_STATIC_LINKING")
install (TARGETS ${ExtensionUtilitiesName}_static DESTINATION ${LIBINSTALLEXT})

add_library(${ExtensionUtilitiesName} SHARED measure_time.cpp measure_time_rdtsc.cpp measure_time_scorep.cpp)
add_library(${ExtensionUtilitiesName} SHARED measure_time.cpp measure_time_rdtsc.cpp measure_time_scorep.cpp logger.cpp)
IF(NOT BOOST_STATIC_LINKING)
target_link_libraries (${ExtensionUtilitiesName} ${Boost_LIBRARIES})
ENDIF(NOT BOOST_STATIC_LINKING)
Expand Down
Expand Up @@ -17,7 +17,6 @@
#endif

#include <fstream>
#include <string>
#include <sstream>
#include <vector>
#include <map>
Expand Down
6 changes: 4 additions & 2 deletions SimulationRuntime/cpp/Include/FMU/FMUGlobalSettings.h
@@ -1,6 +1,8 @@
#pragma once
#include <Core/SimulationSettings//IGlobalSettings.h>
#include <string.h>
using std::string;

#include <Core/SimulationSettings/IGlobalSettings.h>

class FMUGlobalSettings : public IGlobalSettings
{
Expand Down Expand Up @@ -38,7 +40,7 @@ class FMUGlobalSettings : public IGlobalSettings
virtual void setSelectedLinSolver(string) {}
virtual string getSelectedNonLinSolver() { return "kinsol"; }
virtual void setSelectedNonLinSolver(string) {}
virtual void load(std::string xml_file) {};
virtual void load(string xml_file) {};
virtual void setResultsFileName(string) {}
virtual string getResultsFileName() { return ""; }
virtual void setRuntimeLibrarypath(string) {}
Expand Down

0 comments on commit 278ed06

Please sign in to comment.