From 189db8deef988d66146be4a35a6211800e30aced Mon Sep 17 00:00:00 2001 From: Dinesh Bolkensteyn Date: Mon, 18 Jul 2016 11:12:04 +0200 Subject: [PATCH] CMake: Keep compat only with same major version & remove CMakePackageConfigHelpers dependency --- CMakeLists.txt | 9 ++------- cmake/serialVersion.cmake | 21 +++++++++++++++++++++ 2 files changed, 23 insertions(+), 7 deletions(-) create mode 100644 cmake/serialVersion.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 71ab4c2..700444c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 2.8.8) +cmake_minimum_required(VERSION 2.8.3) project(serial) if(APPLE) @@ -62,12 +62,7 @@ install(FILES include/serial/serial.h include/serial/v8stdint.h ## Install CMake files install(EXPORT ${PROJECT_NAME}-targets DESTINATION ${INSTALL_CMAKE_DIR}) -include(CMakePackageConfigHelpers) -write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Version.cmake - VERSION 1.2.1 - COMPATIBILITY AnyNewerVersion) - -install(FILES ${CMAKE_SOURCE_DIR}/cmake/${PROJECT_NAME}Config.cmake ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Version.cmake +install(FILES ${CMAKE_SOURCE_DIR}/cmake/${PROJECT_NAME}Config.cmake ${CMAKE_SOURCE_DIR}/cmake/${PROJECT_NAME}Version.cmake DESTINATION ${INSTALL_CMAKE_DIR}) ## Tests diff --git a/cmake/serialVersion.cmake b/cmake/serialVersion.cmake new file mode 100644 index 0000000..cf8dbb5 --- /dev/null +++ b/cmake/serialVersion.cmake @@ -0,0 +1,21 @@ +set(PACKAGE_VERSION "1.2.1") + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + if(PACKAGE_VERSION MATCHES "^([0-9]+)\\.") + set(CVF_VERSION_MAJOR "${CMAKE_MATCH_1}") + else() + set(CVF_VERSION_MAJOR PACKAGE_VERSION) + endif() + + if(PACKAGE_FIND_VERSION_MAJOR STREQUAL CVF_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()