diff --git a/CMakeLists.txt b/CMakeLists.txt index f717ff462..608e9e26f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -89,8 +89,10 @@ endif() ## install header files, generate and install cmake config files for find_package() ## include(CMakePackageConfigHelpers) -write_basic_package_version_file( - ${NLOHMANN_JSON_CMAKE_VERSION_CONFIG_FILE} COMPATIBILITY SameMajorVersion +configure_file( + "cmake/nlohmann_jsonConfigVersion.cmake.in" + ${NLOHMANN_JSON_CMAKE_VERSION_CONFIG_FILE} + @ONLY ) configure_file( ${NLOHMANN_JSON_CMAKE_CONFIG_TEMPLATE} diff --git a/cmake/nlohmann_jsonConfigVersion.cmake.in b/cmake/nlohmann_jsonConfigVersion.cmake.in new file mode 100644 index 000000000..8202f8c5e --- /dev/null +++ b/cmake/nlohmann_jsonConfigVersion.cmake.in @@ -0,0 +1,16 @@ +set(PACKAGE_VERSION "@PROJECT_VERSION@") + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + + if(PACKAGE_FIND_VERSION_MAJOR STREQUAL "@PROJECT_VERSION_MAJOR@") + set(PACKAGE_VERSION_COMPATIBLE TRUE) + else() + set(PACKAGE_VERSION_COMPATIBLE FALSE) + endif() + + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif()