Skip to content

Commit 1f95d8c

Browse files
committed
move common code of fmusim and fmusim-gui to sim_common.cmake
Signed-off-by: Benstone Zhang <[email protected]>
1 parent 1cddde7 commit 1f95d8c

File tree

3 files changed

+127
-208
lines changed

3 files changed

+127
-208
lines changed

build/sim_common.cmake

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
set(CMAKE_MSVC_RUNTIME_LIBRARY MultiThreaded)
2+
3+
if(WIN32)
4+
set(FMI_PLATFORM "${FMI_ARCHITECTURE}-windows")
5+
elseif(APPLE)
6+
set(FMI_PLATFORM "${FMI_ARCHITECTURE}-darwin")
7+
else()
8+
set(FMI_PLATFORM "${FMI_ARCHITECTURE}-linux")
9+
endif()
10+
11+
set_source_files_properties(
12+
${ZLIB_SRC_DIR}/contrib/minizip/ioapi.c
13+
${ZLIB_SRC_DIR}/contrib/minizip/unzip.c
14+
${ZLIB_SRC_DIR}/contrib/minizip/iowin32.c
15+
PROPERTIES GENERATED 1)
16+
17+
set(FMUSIM_SOURCES
18+
${CMAKE_SOURCE_DIR}/include/FMI.h
19+
${CMAKE_SOURCE_DIR}/src/FMI.c
20+
${CMAKE_SOURCE_DIR}/include/FMI1.h
21+
${CMAKE_SOURCE_DIR}/src/FMI1.c
22+
${CMAKE_SOURCE_DIR}/include/FMI2.h
23+
${CMAKE_SOURCE_DIR}/src/FMI2.c
24+
${CMAKE_SOURCE_DIR}/include/FMI3.h
25+
${CMAKE_SOURCE_DIR}/src/FMI3.c
26+
${CMAKE_SOURCE_DIR}/fmusim/FMIUtil.h
27+
${CMAKE_SOURCE_DIR}/fmusim/FMIUtil.c
28+
${CMAKE_SOURCE_DIR}/fmusim/FMIStaticInput.h
29+
${CMAKE_SOURCE_DIR}/fmusim/FMIStaticInput.c
30+
${CMAKE_SOURCE_DIR}/fmusim/FMISimulation.h
31+
${CMAKE_SOURCE_DIR}/fmusim/FMISimulation.c
32+
${CMAKE_SOURCE_DIR}/fmusim/FMI1CSSimulation.h
33+
${CMAKE_SOURCE_DIR}/fmusim/FMI1CSSimulation.c
34+
${CMAKE_SOURCE_DIR}/fmusim/FMI1MESimulation.h
35+
${CMAKE_SOURCE_DIR}/fmusim/FMI1MESimulation.c
36+
${CMAKE_SOURCE_DIR}/fmusim/FMI2CSSimulation.h
37+
${CMAKE_SOURCE_DIR}/fmusim/FMI2CSSimulation.c
38+
${CMAKE_SOURCE_DIR}/fmusim/FMI2MESimulation.h
39+
${CMAKE_SOURCE_DIR}/fmusim/FMI2MESimulation.c
40+
${CMAKE_SOURCE_DIR}/fmusim/FMI3CSSimulation.h
41+
${CMAKE_SOURCE_DIR}/fmusim/FMI3CSSimulation.c
42+
${CMAKE_SOURCE_DIR}/fmusim/FMI3MESimulation.h
43+
${CMAKE_SOURCE_DIR}/fmusim/FMI3MESimulation.c
44+
${CMAKE_SOURCE_DIR}/fmusim/FMIRecorder.h
45+
${CMAKE_SOURCE_DIR}/fmusim/FMIRecorder.c
46+
${CMAKE_SOURCE_DIR}/fmusim/FMIEuler.h
47+
${CMAKE_SOURCE_DIR}/fmusim/FMIEuler.c
48+
${CMAKE_SOURCE_DIR}/fmusim/FMICVode.h
49+
${CMAKE_SOURCE_DIR}/fmusim/FMICVode.c
50+
${CMAKE_SOURCE_DIR}/fmusim/csv.h
51+
${CMAKE_SOURCE_DIR}/fmusim/csv.c
52+
${CMAKE_SOURCE_DIR}/fmusim/FMIZip.h
53+
${CMAKE_SOURCE_DIR}/fmusim/FMIZip.c
54+
${CMAKE_SOURCE_DIR}/fmusim/miniunzip.c
55+
${CMAKE_SOURCE_DIR}/fmusim/FMIModelDescription.c
56+
${CMAKE_SOURCE_DIR}/fmusim/FMIModelDescription.h
57+
${CMAKE_SOURCE_DIR}/fmusim/FMIBuildDescription.c
58+
${CMAKE_SOURCE_DIR}/fmusim/FMIBuildDescription.h
59+
${CMAKE_SOURCE_DIR}/include/structured_variable_name.tab.h
60+
${CMAKE_SOURCE_DIR}/src/structured_variable_name.tab.c
61+
${CMAKE_SOURCE_DIR}/src/structured_variable_name.yy.c
62+
${ZLIB_SRC_DIR}/contrib/minizip/unzip.c
63+
${ZLIB_SRC_DIR}/contrib/minizip/ioapi.c
64+
)
65+
if(WIN32)
66+
set(FMUSIM_SOURCES ${FMUSIM_SOURCES} ${ZLIB_SRC_DIR}/contrib/minizip/iowin32.c)
67+
endif()
68+
69+
set(FMUSIM_INCLUDES
70+
${CMAKE_SOURCE_DIR}/fmusim
71+
${CMAKE_SOURCE_DIR}/include
72+
${EXTERNAL_BASE_DIR}/include
73+
${EXTERNAL_BASE_DIR}/include/libxml2
74+
${ZLIB_SRC_DIR}/contrib/minizip
75+
)
76+
77+
if(WIN32)
78+
set(FMUSIM_LIBS
79+
${EXTERNAL_BASE_DIR}/lib/libxml2s.lib
80+
${EXTERNAL_BASE_DIR}/lib/zlibstatic.lib
81+
${EXTERNAL_BASE_DIR}/lib/sundials_cvode_static.lib
82+
${EXTERNAL_BASE_DIR}/lib/sundials_core_static.lib
83+
)
84+
elseif(UNIX AND NOT APPLE)
85+
set(FMUSIM_LIBS
86+
${EXTERNAL_BASE_DIR}/lib/libxml2.a
87+
${EXTERNAL_BASE_DIR}/lib/libz.a
88+
${EXTERNAL_BASE_DIR}/lib/libsundials_cvode.a
89+
${EXTERNAL_BASE_DIR}/lib/libsundials_core.a
90+
${CMAKE_DL_LIBS}
91+
m
92+
)
93+
else()
94+
set(FMUSIM_LIBS
95+
${EXTERNAL_BASE_DIR}/lib/libxml2.a
96+
${EXTERNAL_BASE_DIR}/lib/libz.a
97+
${EXTERNAL_BASE_DIR}/lib/libsundials_cvode.a
98+
${EXTERNAL_BASE_DIR}/lib/libsundials_core.a
99+
)
100+
endif()
101+
102+
set(FMUSIM_DEPENDS zlib xml2 cvcode)

fmusim-gui/CMakeLists.txt

Lines changed: 10 additions & 104 deletions
Original file line numberDiff line numberDiff line change
@@ -15,114 +15,28 @@ if(QT_VERSION_MAJOR GREATER_EQUAL 6)
1515
find_package(Qt6 REQUIRED COMPONENTS WebEngineWidgets)
1616
endif()
1717

18-
set_source_files_properties(
19-
${ZLIB_SRC_DIR}/contrib/minizip/ioapi.c
20-
${ZLIB_SRC_DIR}/contrib/minizip/unzip.c
21-
${ZLIB_SRC_DIR}/contrib/minizip/iowin32.c
22-
PROPERTIES GENERATED 1)
18+
include(${CMAKE_SOURCE_DIR}/build/sim_common.cmake)
2319

24-
set(PROJECT_SOURCES
20+
set(FMUSIM_GUI_SOURCES
21+
${FMUSIM_SOURCES}
2522
main.cpp
2623
MainWindow.cpp
2724
MainWindow.h
2825
MainWindow.ui
29-
../src/FMI.c
30-
../include/FMI.h
31-
../fmusim/FMIZip.c
32-
../fmusim/FMIZip.h
33-
../fmusim/miniunzip.c
34-
${ZLIB_SRC_DIR}/contrib/minizip/unzip.c
35-
${ZLIB_SRC_DIR}/contrib/minizip/ioapi.c
36-
../fmusim/FMIModelDescription.c
37-
../fmusim/FMIModelDescription.h
38-
../fmusim/FMIBuildDescription.c
39-
../fmusim/FMIBuildDescription.h
40-
../src/structured_variable_name.tab.c
41-
../src/structured_variable_name.yy.c
4226
)
43-
if (WIN32)
44-
set (PROJECT_SOURCES ${PROJECT_SOURCES} ${ZLIB_SRC_DIR}/contrib/minizip/iowin32.c)
45-
endif ()
46-
47-
if(WIN32)
48-
set(PROJECT_LIBRARIES
49-
${EXTERNAL_BASE_DIR}/lib/libxml2s.lib
50-
${EXTERNAL_BASE_DIR}/lib/zlibstatic.lib
51-
${EXTERNAL_BASE_DIR}/lib/sundials_cvode_static.lib
52-
${EXTERNAL_BASE_DIR}/lib/sundials_core_static.lib
53-
)
54-
elseif(UNIX AND NOT APPLE)
55-
set(PROJECT_LIBRARIES
56-
${EXTERNAL_BASE_DIR}/lib/libxml2.a
57-
${EXTERNAL_BASE_DIR}/lib/libz.a
58-
${EXTERNAL_BASE_DIR}/lib/libsundials_cvode.a
59-
${EXTERNAL_BASE_DIR}/lib/libsundials_core.a
60-
${CMAKE_DL_LIBS}
61-
m
62-
)
63-
else()
64-
set(PROJECT_LIBRARIES
65-
${EXTERNAL_BASE_DIR}/lib/libxml2.a
66-
${EXTERNAL_BASE_DIR}/lib/libz.a
67-
${EXTERNAL_BASE_DIR}/lib/libsundials_cvode.a
68-
${EXTERNAL_BASE_DIR}/lib/libsundials_core.a
69-
)
70-
endif()
71-
7227

7328
if(${QT_VERSION_MAJOR} GREATER_EQUAL 6)
7429
qt_add_executable(fmusim-gui
7530
MANUAL_FINALIZATION
76-
${PROJECT_SOURCES}
31+
${FMUSIM_GUI_SOURCES}
32+
7733
ModelVariablesTableModel.h
7834
ModelVariablesTableModel.cpp
79-
../src/FMI1.c
80-
../src/FMI2.c
81-
../include/FMI1.h
82-
../include/FMI2.h
83-
../src/FMI3.c
84-
../include/FMI3.h
85-
../fmusim/FMIUtil.c
86-
../fmusim/FMIUtil.h
87-
../fmusim/csv.c
88-
../fmusim/csv.h
89-
90-
../fmusim/FMIStaticInput.h
91-
../fmusim/FMIStaticInput.c
92-
93-
../fmusim/FMI1CSSimulation.h
94-
../fmusim/FMI1CSSimulation.c
95-
../fmusim/FMI1MESimulation.h
96-
../fmusim/FMI1MESimulation.c
97-
98-
../fmusim/FMI2CSSimulation.h
99-
../fmusim/FMI2CSSimulation.c
100-
../fmusim/FMI2MESimulation.h
101-
../fmusim/FMI2MESimulation.c
102-
103-
../fmusim/FMI3CSSimulation.h
104-
../fmusim/FMI3CSSimulation.c
105-
../fmusim/FMI3MESimulation.h
106-
../fmusim/FMI3MESimulation.c
107-
108-
../fmusim/FMIRecorder.h
109-
../fmusim/FMIRecorder.c
110-
111-
../fmusim/FMISimulation.h
112-
../fmusim/FMISimulation.c
113-
114-
../fmusim/FMIEuler.h
115-
../fmusim/FMIEuler.c
116-
117-
../fmusim/FMICVode.h
118-
../fmusim/FMICVode.c
11935

12036
resources/buttons/buttons.qrc
12137
resources/tools/tools.qrc
122-
12338
resources/plot/plot.html
12439
resources/plot/plot.qrc
125-
12640
resources/variables/variables.qrc
12741

12842
VariablesFilterModel.h VariablesFilterModel.cpp
@@ -138,17 +52,9 @@ if(${QT_VERSION_MAJOR} GREATER_EQUAL 6)
13852
resources/icon/icon.rc
13953
resources/build/build.qrc
14054
)
55+
add_dependencies(fmusim-gui ${FMUSIM_DEPENDS})
14156

142-
add_dependencies(fmusim-gui zlib xml2 cvcode)
143-
144-
target_include_directories(fmusim-gui PRIVATE
145-
../include
146-
../fmusim
147-
${EXTERNAL_BASE_DIR}/include
148-
${EXTERNAL_BASE_DIR}/include/libxml2
149-
${ZLIB_SRC_DIR}/contrib/minizip
150-
${ZLIB_SRC_DIR}/contrib/minizip
151-
)
57+
target_include_directories(fmusim-gui PRIVATE ${FMUSIM_INCLUDES})
15258

15359
if(WIN32)
15460
target_compile_definitions(fmusim-gui PRIVATE
@@ -158,7 +64,7 @@ if(${QT_VERSION_MAJOR} GREATER_EQUAL 6)
15864

15965
target_link_libraries(fmusim-gui PRIVATE
16066
Qt6::WebEngineWidgets
161-
${PROJECT_LIBRARIES}
67+
${FMUSIM_LIBS}
16268
)
16369

16470
# Define target properties for Android with Qt 6 as:
@@ -168,13 +74,13 @@ if(${QT_VERSION_MAJOR} GREATER_EQUAL 6)
16874
else()
16975
if(ANDROID)
17076
add_library(fmusim-gui SHARED
171-
${PROJECT_SOURCES}
77+
${FMUSIM_GUI_SOURCES}
17278
)
17379
# Define properties for Android with Qt 5 after find_package() calls as:
17480
# set(ANDROID_PACKAGE_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/android")
17581
else()
17682
add_executable(fmusim-gui
177-
${PROJECT_SOURCES}
83+
${FMUSIM_GUI_SOURCES}
17884
)
17985
endif()
18086
endif()

0 commit comments

Comments
 (0)