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 )
33
44if (${CMAKE_VERSION} VERSION_GREATER "3.12" )
55 cmake_policy (SET CMP0074 OLD)
@@ -148,6 +148,12 @@ add_library(${LIB_TARGET_NAME} ${LIB_LINK_TYPE}
148148 ${PublicHeaders}
149149)
150150
151+ target_sources (${LIB_TARGET_NAME}
152+ PUBLIC FILE_SET HEADERS
153+ FILES ${PublicHeaders}
154+ BASE_DIRS include
155+ )
156+
151157string (TOUPPER "${CMAKE_BUILD_TYPE} " BUILD_CFG_NAME)
152158set (CURRENT_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${BUILD_CFG_NAME} }" )
153159
@@ -156,17 +162,17 @@ set(JINJA2CPP_PUBLIC_LIBS "${JINJA2CPP_EXTRA_LIBS}")
156162separate_arguments (JINJA2CPP_PUBLIC_LIBS)
157163if (JINJA2CPP_WITH_COVERAGE)
158164 target_compile_options (
159- ${JINJA2CPP_COVERAGE_TARGET}
160- INTERFACE
161- -g -O0
165+ ${JINJA2CPP_COVERAGE_TARGET}
166+ INTERFACE
167+ -g -O0
162168 )
163169 list (APPEND JINJA2CPP_PUBLIC_LIBS ${JINJA2CPP_COVERAGE_TARGET} )
164170endif ()
165171if (NOT JINJA2CPP_WITH_SANITIZERS STREQUAL "none" )
166172 target_compile_options (
167- ${JINJA2CPP_SANITIZE_TARGET}
168- INTERFACE
169- -g -O2
173+ ${JINJA2CPP_SANITIZE_TARGET}
174+ INTERFACE
175+ -g -O2
170176 )
171177 list (APPEND JINJA2CPP_PUBLIC_LIBS ${JINJA2CPP_SANITIZE_TARGET} )
172178endif ()
@@ -186,7 +192,7 @@ target_include_directories(${LIB_TARGET_NAME}
186192 PUBLIC
187193 $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /include >
188194 $<INSTALL_INTERFACE:include >
189- )
195+ )
190196
191197if (JINJA2CPP_STRICT_WARNINGS)
192198 if (UNIX )
@@ -211,16 +217,14 @@ if (JINJA2CPP_BUILD_SHARED)
211217endif ()
212218
213219set_target_properties (${LIB_TARGET_NAME} PROPERTIES
214- VERSION ${PROJECT_VERSION}
215- SOVERSION 1
216- )
220+ VERSION ${PROJECT_VERSION}
221+ SOVERSION 1
222+ )
217223
218224set_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+ )
224228
225229configure_file (jinja2cpp.pc.in ${CMAKE_BINARY_DIR} /jinja2cpp.pc @ONLY)
226230
@@ -241,14 +245,14 @@ if (JINJA2CPP_BUILD_TESTS)
241245 endif ()
242246
243247 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"
248252 )
249253
250254 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
252256 )
253257
254258 add_dependencies (jinja2cpp_tests CopyTestData)
@@ -289,7 +293,7 @@ install(
289293 RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
290294 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
291295 ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} /static
292- PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} /jinja2cpp
296+ FILE_SET HEADERS
293297)
294298
295299install (
0 commit comments