From: xantares Date: Thu, 5 Jun 2014 19:44:41 +0000 (+0200) Subject: Added LibFTDI1ConfigVersion to allow version detection X-Git-Tag: v1.2rc1~17 X-Git-Url: http://developer.intra2net.com/git/?p=libftdi;a=commitdiff_plain;h=329ab28dddd1cfb48dea560c3443a157177e6b50 Added LibFTDI1ConfigVersion to allow version detection --- diff --git a/CMakeLists.txt b/CMakeLists.txt index e8688d4..08e5771 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -201,9 +201,42 @@ set ( LIBFTDI_VERSION_MAJOR ${MAJOR_VERSION} ) set ( LIBFTDI_VERSION_MINOR ${MINOR_VERSION} ) set ( LIBFTDI_USE_FILE ${CMAKE_INSTALL_PREFIX}/${LIBFTDI_CMAKE_CONFIG_DIR}/UseLibFTDI1.cmake ) -configure_file ( cmake/LibFTDI1Config.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/LibFTDI1Config.cmake @ONLY ) -install ( FILES ${CMAKE_CURRENT_BINARY_DIR}/LibFTDI1Config.cmake cmake/UseLibFTDI1.cmake + +if(CMAKE_VERSION VERSION_LESS 2.8.8) + configure_file ( cmake/LibFTDI1Config.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/LibFTDI1Config.cmake @ONLY ) + configure_file ( cmake/LibFTDI1ConfigVersion.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/LibFTDI1ConfigVersion.cmake @ONLY ) +else () + include(CMakePackageConfigHelpers) + + configure_package_config_file ( + cmake/LibFTDI1Config.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/LibFTDI1Config.cmake + INSTALL_DESTINATION ${LIBFTDI_CMAKE_CONFIG_DIR} + PATH_VARS + LIBFTDI_USE_FILE + LIBFTDI_ROOT_DIR + LIBFTDI_INCLUDE_DIR + LIBFTDI_INCLUDE_DIRS + LIBFTDI_LIBRARY_DIRS + NO_CHECK_REQUIRED_COMPONENTS_MACRO + ) + write_basic_package_version_file ( + LibFTDI1ConfigVersion.cmake + VERSION ${LIBFTDI_VERSION_STRING} + COMPATIBILITY AnyNewerVersion + ) +endif () + + +install ( FILES + ${CMAKE_CURRENT_BINARY_DIR}/LibFTDI1Config.cmake + ${CMAKE_CURRENT_BINARY_DIR}/LibFTDI1ConfigVersion.cmake + cmake/UseLibFTDI1.cmake + DESTINATION ${LIBFTDI_CMAKE_CONFIG_DIR} ) + + + include(CPack) diff --git a/cmake/LibFTDI1ConfigVersion.cmake.in b/cmake/LibFTDI1ConfigVersion.cmake.in new file mode 100644 index 0000000..ed0d463 --- /dev/null +++ b/cmake/LibFTDI1ConfigVersion.cmake.in @@ -0,0 +1,31 @@ +# This is a basic version file for the Config-mode of find_package(). +# It is used by write_basic_package_version_file() as input file for configure_file() +# to create a version-file which can be installed along a config.cmake file. +# +# The created file sets PACKAGE_VERSION_EXACT if the current version string and +# the requested version string are exactly the same and it sets +# PACKAGE_VERSION_COMPATIBLE if the current version is >= requested version. +# The variable CVF_VERSION must be set before calling configure_file(). + +set(PACKAGE_VERSION "@LIBFTDI_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() + +# if the installed or the using project don't have CMAKE_SIZEOF_VOID_P set, ignore it: +if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "" OR "8" STREQUAL "") + return() +endif() + +# check that the installed version has the same 32/64bit-ness as the one which is currently searching: +if(NOT "${CMAKE_SIZEOF_VOID_P}" STREQUAL "8") + math(EXPR installedBits "8 * 8") + set(PACKAGE_VERSION "${PACKAGE_VERSION} (${installedBits}bit)") + set(PACKAGE_VERSION_UNSUITABLE TRUE) +endif()