1################################################################################ 2# ProjVersion.cmake - part of CMake configuration of PROJ library 3################################################################################ 4# Copyright (C) 2010 Mateusz Loskot <mateusz@loskot.net> 5# 6# Distributed under the Boost Software License, Version 1.0 7################################################################################ 8# Macros in this module: 9# 10# proj_version - defines version information for PROJ library 11################################################################################ 12 13# Defines version information for PROJ library 14# 15# proj_version(MAJOR major_version MINOR minor_version PATCH patch_level) 16# 17# MAJOR.MINOR version is used to set SOVERSION 18# 19 20include(CMakeParseArguments) 21 22macro(proj_version) 23 cmake_parse_arguments(THIS_VERSION 24 "" 25 "MAJOR;MINOR;PATCH" 26 "" 27 ${ARGN}) 28 29 # Set version components 30 set(${PROJECT_NAME}_VERSION_MAJOR ${THIS_VERSION_MAJOR}) 31 set(${PROJECT_NAME}_VERSION_MINOR ${THIS_VERSION_MINOR}) 32 set(${PROJECT_NAME}_VERSION_PATCH ${THIS_VERSION_PATCH}) 33 34 # Set VERSION string 35 set(${PROJECT_NAME}_VERSION 36 "${${PROJECT_NAME}_VERSION_MAJOR}.\ 37${${PROJECT_NAME}_VERSION_MINOR}.\ 38${${PROJECT_NAME}_VERSION_PATCH}") 39 40 # Set ABI version string used to name binary output 41 # On Windows, ABI version is specified using binary file name suffix. 42 if(WIN32) 43 set(${PROJECT_NAME}_ABI_VERSION 44 "${${PROJECT_NAME}_VERSION_MAJOR}_\ 45${${PROJECT_NAME}_VERSION_MINOR}") 46 endif() 47 48 print_variable(${PROJECT_NAME}_VERSION) 49 if(WIN32) 50 print_variable(${PROJECT_NAME}_ABI_VERSION) 51 endif() 52endmacro() 53