Skip to content

Commit 40174a7

Browse files
committed
cmake: install flatcc-config-version.cmake to allow version discrimination when using find_package
1 parent 199bcac commit 40174a7

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

CMakeLists.txt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -352,12 +352,24 @@ if (FLATCC_INSTALL)
352352
install(DIRECTORY include/flatcc DESTINATION include)
353353
install(EXPORT flatcc_exports NAMESPACE flatcc:: DESTINATION ${lib_dir}/cmake/flatcc FILE flatcc-targets.cmake)
354354

355+
file(READ include/flatcc/flatcc_version.h FLATCC_VERSION_H_CONTENT)
356+
string(REGEX MATCH "#[ \t]*define[ \t]+FLATCC_VERSION_TEXT[ \t]+\"([^\"]+)\"" version_match "${FLATCC_VERSION_H_CONTENT}")
357+
if(NOT version_match)
358+
message(FATAL_ERROR "Could not parse the version from include/flatcc/flatcc_version.h")
359+
endif()
360+
set(FLATCC_VERSION "${CMAKE_MATCH_1}")
361+
message(VERBOSE "Extracted version from include/flatcc/flatcc_version.h: ${FLATCC_VERSION}")
362+
355363
include(CMakePackageConfigHelpers)
356364
configure_package_config_file(cmake/flatcc-config.cmake.in flatcc-config.cmake
357365
INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/flatcc")
366+
write_basic_package_version_file(flatcc-config-version.cmake
367+
VERSION "${FLATCC_VERSION}"
368+
COMPATIBILITY AnyNewerVersion)
358369
install(
359370
FILES
360371
"${CMAKE_CURRENT_BINARY_DIR}/flatcc-config.cmake"
372+
"${CMAKE_CURRENT_BINARY_DIR}/flatcc-config-version.cmake"
361373
cmake/FlatccGenerateSources.cmake
362374
DESTINATION "lib/cmake/flatcc")
363375
endif()

0 commit comments

Comments
 (0)