From 80420d62e228d2648b08abb3f95421af9ce9d5ce Mon Sep 17 00:00:00 2001 From: Paul le Roux <39619854+pleroux0@users.noreply.github.com> Date: Fri, 22 Mar 2019 23:57:46 +0200 Subject: [PATCH] Make ConfigVersion arch independent (#254) CLI11 is header only and the architecture shouldn't matter. The arch dependence has the potential to cause find_package to fail incorrectly. --- CMakeLists.txt | 8 ++------ cmake/CLI11ConfigVersion.cmake.in | 13 +++++++++++++ 2 files changed, 15 insertions(+), 6 deletions(-) create mode 100644 cmake/CLI11ConfigVersion.cmake.in diff --git a/CMakeLists.txt b/CMakeLists.txt index 0a9222d1..6dc6df55 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -96,12 +96,8 @@ endif() # import Targets.cmake # Add the version in a CMake readable way -include(CMakePackageConfigHelpers) -write_basic_package_version_file( - CLI11ConfigVersion.cmake - VERSION ${CLI11_VERSION} - COMPATIBILITY AnyNewerVersion - ) +configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake/CLI11ConfigVersion.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/CLI11ConfigVersion.cmake" @ONLY) # These installs only make sense for a local project if(CUR_PROJ) diff --git a/cmake/CLI11ConfigVersion.cmake.in b/cmake/CLI11ConfigVersion.cmake.in new file mode 100644 index 00000000..49faee57 --- /dev/null +++ b/cmake/CLI11ConfigVersion.cmake.in @@ -0,0 +1,13 @@ +# Adapted from write_basic_package_version_file(... COMPATIBILITY AnyNewerVersion) output +# ARCH_INDEPENDENT is only present in cmake 3.14 and onwards + +set(PACKAGE_VERSION "@VERSION_STRING@") + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif()