From 2c06c46942c3360fbbf14807b843578d5f4053d8 Mon Sep 17 00:00:00 2001 From: Stephen Kelly Date: Thu, 26 Sep 2013 14:45:19 +0200 Subject: Change the signature of the ecm_setup_version macro. Accept a single version argument instead of three. The old signature will be an error in a few days. --- modules/ECMSetupVersion.cmake | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) (limited to 'modules') diff --git a/modules/ECMSetupVersion.cmake b/modules/ECMSetupVersion.cmake index 9a7ae9ae..eed47f1c 100644 --- a/modules/ECMSetupVersion.cmake +++ b/modules/ECMSetupVersion.cmake @@ -5,17 +5,17 @@ # - optionally it creates a CMake package version file, which can then be installed along with a # CMake package Config.cmake file # -# ecm_setup_version( +# ecm_setup_version( # VARIABLE_PREFIX prefix # [SOVERSION ] # [VERSION_HEADER filename] # [PACKAGE_VERSION_FILE filename] ) # # -# ecm_setup_version() sets the following variables -# _VERSION_MAJOR = -# _VERSION_MINOR = -# _VERSION_PATCH = +# ecm_setup_version() sets the following CMake variables +# _VERSION_MAJOR = +# _VERSION_MINOR = +# _VERSION_PATCH = # _VERSION_STRING = .. # _SOVERSION is set to if has not been specified. # @@ -44,12 +44,19 @@ include(CMakePackageConfigHelpers) -function(ECM_SETUP_VERSION _major _minor _patch) +function(ECM_SETUP_VERSION _version) + # Temporary hack. Remove. + set(args ${ARGN}) + if (${ARGV1} MATCHES "[0-9]") + set(_version "${_version}.${ARGV1}.${ARGV2}") + list(REMOVE_AT args 0) + list(REMOVE_AT args 0) + endif() set(options ) set(oneValueArgs VARIABLE_PREFIX SOVERSION VERSION_HEADER PACKAGE_VERSION_FILE) set(multiValueArgs ) - cmake_parse_arguments(ESV "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) + cmake_parse_arguments(ESV "${options}" "${oneValueArgs}" "${multiValueArgs}" ${args}) if(ESV_UNPARSED_ARGUMENTS) message(FATAL_ERROR "Unknown keywords given to ECM_SETUP_VERSION(): \"${ESV_UNPARSED_ARGUMENTS}\"") @@ -59,6 +66,10 @@ function(ECM_SETUP_VERSION _major _minor _patch) message(FATAL_ERROR "Required argument PREFIX missing in ECM_SETUP_VERSION() call") endif() + string(REGEX REPLACE "^([0-9]+)\\.[0-9]+\\.[0-9]+.*" "\\1" _major "${_version}") + string(REGEX REPLACE "^[0-9]+\\.([0-9]+)\\.[0-9]+.*" "\\1" _minor "${_version}") + string(REGEX REPLACE "^[0-9]+\\.[0-9]+\\.([0-9]+).*" "\\1" _patch "${_version}") + if(NOT ESV_SOVERSION) set(ESV_SOVERSION ${_major}) endif() -- cgit v1.2.1