@@ -64,6 +64,33 @@ string(TOLOWER ${CMAKE_SYSTEM_NAME} ${PROJECT_NAME}_SYSTEM_NAME)
64
64
configure_file (${CMAKE_CURRENT_SOURCE_DIR} /configure/README.md ${CMAKE_CURRENT_SOURCE_DIR} /README.md )
65
65
configure_file (${CMAKE_CURRENT_SOURCE_DIR} /configure/version .cpp ${CMAKE_CURRENT_SOURCE_DIR} /src/kernel/version .cpp)
66
66
67
+ # ---- Target basis ------------------------------------------------------------
68
+
69
+ file (GLOB ${PROJECT_NAME} _BASIS_SOURCES ${CMAKE_CURRENT_SOURCE_DIR} /basis/*.ss)
70
+
71
+ foreach (EACH IN LISTS ${PROJECT_NAME} _BASIS_SOURCES)
72
+ get_filename_component (FILENAME ${EACH} NAME )
73
+ file (READ ${EACH} ${FILENAME} )
74
+ endforeach ()
75
+
76
+ configure_file (
77
+ ${CMAKE_CURRENT_SOURCE_DIR} /configure/basis.cpp
78
+ ${CMAKE_CURRENT_SOURCE_DIR} /basis/src/basis.cpp)
79
+
80
+ add_library (basis SHARED)
81
+
82
+ target_sources (basis PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} /basis/src/basis.cpp)
83
+
84
+ target_include_directories (basis
85
+ PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /basis/include >
86
+ PUBLIC $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR} >)
87
+
88
+ set_target_properties (basis PROPERTIES
89
+ OUTPUT_NAME ${PROJECT_NAME} -basis # Rename libbasis => libmeevax-basis
90
+ VERSION ${PROJECT_VERSION}
91
+ SOVERSION ${PROJECT_VERSION_MAJOR}
92
+ LINK_FLAGS_RELEASE -s)
93
+
67
94
# ---- Target kernel -----------------------------------------------------------
68
95
69
96
add_library (kernel SHARED)
@@ -81,25 +108,18 @@ target_link_libraries(kernel
81
108
PUBLIC gmp)
82
109
83
110
set_target_properties (kernel PROPERTIES
84
- OUTPUT_NAME ${PROJECT_NAME} # Rename libkernel => libmeevax
111
+ OUTPUT_NAME ${PROJECT_NAME} -kernel # Rename libkernel => libmeevax-kernel
85
112
VERSION ${PROJECT_VERSION}
86
113
SOVERSION ${PROJECT_VERSION_MAJOR}
87
114
LINK_FLAGS_RELEASE -s)
88
115
89
- # ---- Target basis ------------------------------------------------------------
90
-
91
- add_custom_target (basis
92
- COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_SOURCE_DIR} /configure/basis.cmake)
93
-
94
116
# ---- Target shell ------------------------------------------------------------
95
117
96
118
add_executable (shell)
97
119
98
- add_dependencies (shell basis)
99
-
100
120
target_sources (shell PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} /src/main.cpp)
101
121
102
- target_link_libraries (shell PRIVATE kernel)
122
+ target_link_libraries (shell PRIVATE basis kernel)
103
123
104
124
set_target_properties (shell PROPERTIES
105
125
OUTPUT_NAME ${PROJECT_NAME} # Rename shell => meevax
@@ -116,7 +136,7 @@ write_basic_package_version_file(
116
136
# ---- Target install ----------------------------------------------------------
117
137
118
138
install ( # /usr/lib/libmeevax
119
- TARGETS kernel
139
+ TARGETS basis kernel
120
140
EXPORT ${PROJECT_NAME} -config
121
141
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
122
142
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} )
@@ -126,7 +146,8 @@ install( # /usr/bin/meevax
126
146
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} )
127
147
128
148
install ( # /usr/include/meevax
129
- DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} /include /
149
+ DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} /include /
150
+ ${CMAKE_CURRENT_SOURCE_DIR} /basis/include /
130
151
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} )
131
152
132
153
install ( # /usr/share/meevax/meevax-config.cmake
@@ -135,8 +156,7 @@ install( # /usr/share/meevax/meevax-config.cmake
135
156
DESTINATION ${CMAKE_INSTALL_DATADIR} /${PROJECT_NAME}
136
157
NAMESPACE Meevax::)
137
158
138
- # /usr/share/meevax/meevax-config-version.cmake
139
- install (
159
+ install ( # /usr/share/meevax/meevax-config-version.cmake
140
160
FILES ${CMAKE_CURRENT_BINARY_DIR} /${PROJECT_NAME} -config-version .cmake
141
161
DESTINATION ${CMAKE_INSTALL_DATADIR} /${PROJECT_NAME} )
142
162
@@ -180,14 +200,14 @@ file(GLOB ${PROJECT_NAME}_TEST_CPP ${CMAKE_CURRENT_SOURCE_DIR}/test/*.cpp)
180
200
181
201
foreach (EACH IN LISTS ${PROJECT_NAME} _TEST_CPP)
182
202
get_filename_component (FILENAME ${EACH} NAME_WE )
183
- add_executable (assert- ${FILENAME} ${EACH} )
184
- add_dependencies (assert- ${FILENAME} basis)
185
- target_link_libraries (assert- ${FILENAME} PRIVATE kernel )
203
+ add_executable (test_ ${FILENAME} ${EACH} )
204
+ target_link_libraries (test_ ${FILENAME} PRIVATE basis kernel )
205
+ target_compile_options (test_ ${FILENAME} PUBLIC -Wno-deprecated-declarations )
186
206
add_test (
187
- NAME assert- ${FILENAME}
207
+ NAME test / ${FILENAME}
188
208
COMMAND ${${PROJECT_NAME} _MEMORY_CHECK_COMMAND}
189
209
${${PROJECT_NAME} _MEMORY_CHECK_OPTIONS}
190
- ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} /assert- ${FILENAME} )
210
+ ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} /test_ ${FILENAME} )
191
211
endforeach ()
192
212
193
213
# ---- Additional Targets ------------------------------------------------------
0 commit comments