1
- cmake_minimum_required (VERSION 3.0.1 )
2
- project (Jinja2Cpp VERSION 1.1.0 )
1
+ cmake_minimum_required (VERSION 3.23.0 )
2
+ project (Jinja2Cpp VERSION 1.2.2 )
3
3
4
4
if (${CMAKE_VERSION} VERSION_GREATER "3.12" )
5
5
cmake_policy (SET CMP0074 OLD)
@@ -148,6 +148,12 @@ add_library(${LIB_TARGET_NAME} ${LIB_LINK_TYPE}
148
148
${PublicHeaders}
149
149
)
150
150
151
+ target_sources (${LIB_TARGET_NAME}
152
+ PUBLIC FILE_SET HEADERS
153
+ FILES ${PublicHeaders}
154
+ BASE_DIRS include
155
+ )
156
+
151
157
string (TOUPPER "${CMAKE_BUILD_TYPE} " BUILD_CFG_NAME)
152
158
set (CURRENT_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${BUILD_CFG_NAME} }" )
153
159
@@ -156,17 +162,17 @@ set(JINJA2CPP_PUBLIC_LIBS "${JINJA2CPP_EXTRA_LIBS}")
156
162
separate_arguments (JINJA2CPP_PUBLIC_LIBS)
157
163
if (JINJA2CPP_WITH_COVERAGE)
158
164
target_compile_options (
159
- ${JINJA2CPP_COVERAGE_TARGET}
160
- INTERFACE
161
- -g -O0
165
+ ${JINJA2CPP_COVERAGE_TARGET}
166
+ INTERFACE
167
+ -g -O0
162
168
)
163
169
list (APPEND JINJA2CPP_PUBLIC_LIBS ${JINJA2CPP_COVERAGE_TARGET} )
164
170
endif ()
165
171
if (NOT JINJA2CPP_WITH_SANITIZERS STREQUAL "none" )
166
172
target_compile_options (
167
- ${JINJA2CPP_SANITIZE_TARGET}
168
- INTERFACE
169
- -g -O2
173
+ ${JINJA2CPP_SANITIZE_TARGET}
174
+ INTERFACE
175
+ -g -O2
170
176
)
171
177
list (APPEND JINJA2CPP_PUBLIC_LIBS ${JINJA2CPP_SANITIZE_TARGET} )
172
178
endif ()
@@ -186,7 +192,7 @@ target_include_directories(${LIB_TARGET_NAME}
186
192
PUBLIC
187
193
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /include >
188
194
$<INSTALL_INTERFACE:include >
189
- )
195
+ )
190
196
191
197
if (JINJA2CPP_STRICT_WARNINGS)
192
198
if (UNIX )
@@ -211,16 +217,14 @@ if (JINJA2CPP_BUILD_SHARED)
211
217
endif ()
212
218
213
219
set_target_properties (${LIB_TARGET_NAME} PROPERTIES
214
- VERSION ${PROJECT_VERSION}
215
- SOVERSION 1
216
- )
220
+ VERSION ${PROJECT_VERSION}
221
+ SOVERSION 1
222
+ )
217
223
218
224
set_target_properties (${LIB_TARGET_NAME} PROPERTIES
219
- CXX_STANDARD ${JINJA2CPP_CXX_STANDARD}
220
- CXX_STANDARD_REQUIRED ON
221
- )
222
-
223
- set_property (TARGET ${LIB_TARGET_NAME} PROPERTY PUBLIC_HEADER ${PublicHeaders} ${JINJA2CPP_EXTRA_PUBLIC_HEADERS} )
225
+ CXX_STANDARD ${JINJA2CPP_CXX_STANDARD}
226
+ CXX_STANDARD_REQUIRED ON
227
+ )
224
228
225
229
configure_file (jinja2cpp.pc.in ${CMAKE_BINARY_DIR} /jinja2cpp.pc @ONLY)
226
230
@@ -241,14 +245,14 @@ if (JINJA2CPP_BUILD_TESTS)
241
245
endif ()
242
246
243
247
add_custom_command (
244
- OUTPUT ${CMAKE_CURRENT_BINARY_DIR} /test_data/simple_template1.j2tpl
245
- COMMAND ${CMAKE_COMMAND} ARGS -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR} /test /test_data ${CMAKE_CURRENT_BINARY_DIR} /test_data
246
- MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR} /test /test_data/simple_template1.j2tpl
247
- COMMENT "Copy test data to the destination dir"
248
+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR} /test_data/simple_template1.j2tpl
249
+ COMMAND ${CMAKE_COMMAND} ARGS -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR} /test /test_data ${CMAKE_CURRENT_BINARY_DIR} /test_data
250
+ MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR} /test /test_data/simple_template1.j2tpl
251
+ COMMENT "Copy test data to the destination dir"
248
252
)
249
253
250
254
add_custom_target (CopyTestData ALL
251
- DEPENDS ${CMAKE_CURRENT_BINARY_DIR} /test_data/simple_template1.j2tpl
255
+ DEPENDS ${CMAKE_CURRENT_BINARY_DIR} /test_data/simple_template1.j2tpl
252
256
)
253
257
254
258
add_dependencies (jinja2cpp_tests CopyTestData)
@@ -289,7 +293,7 @@ install(
289
293
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
290
294
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
291
295
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} /static
292
- PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} /jinja2cpp
296
+ FILE_SET HEADERS
293
297
)
294
298
295
299
install (
0 commit comments