diff options
| author | Howard Butler <howard@hobu.co> | 2014-09-13 21:05:12 +0000 |
|---|---|---|
| committer | Howard Butler <howard@hobu.co> | 2014-09-13 21:05:12 +0000 |
| commit | 532a0f5408f84510abebb2e58da8b7dac7b90ea7 (patch) | |
| tree | c6bde5aeae55cbf44d66a1979eee86503bb9d97b /cmake/Proj4Version.cmake | |
| parent | a008db13413e40fbdf162d03ae94c1c04fff39d9 (diff) | |
| download | PROJ-532a0f5408f84510abebb2e58da8b7dac7b90ea7.tar.gz PROJ-532a0f5408f84510abebb2e58da8b7dac7b90ea7.zip | |
Start implementation of CMake support for proj.4 #243
git-svn-id: http://svn.osgeo.org/metacrs/proj/trunk@2523 4e78687f-474d-0410-85f9-8d5e500ac6b2
Diffstat (limited to 'cmake/Proj4Version.cmake')
| -rw-r--r-- | cmake/Proj4Version.cmake | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/cmake/Proj4Version.cmake b/cmake/Proj4Version.cmake new file mode 100644 index 00000000..72db4310 --- /dev/null +++ b/cmake/Proj4Version.cmake @@ -0,0 +1,59 @@ +################################################################################ +# Proj4Version.cmake - part of CMake configuration of Proj4 library +################################################################################ +# Copyright (C) 2010 Mateusz Loskot <mateusz@loskot.net> +# +# Distributed under the Boost Software License, Version 1.0 +################################################################################ +# Macros in this module: +# +# proj_version - defines version information for PROJ library +# (best known as PROJ4 because MAJOR version is 4 since a very long time) +################################################################################ + +# Defines version information for PROJ library +# +# proj_version(MAJOR major_version MINOR minor_version PATCH patch_level) +# +# MAJOR.MINOR version is used to set SOVERSION +# + +macro(proj_version) + parse_arguments(THIS_VERSION "MAJOR;MINOR;PATCH;" + "" + ${ARGN}) + + # Set version components + set(${PROJECT_INTERN_NAME}_VERSION_MAJOR ${THIS_VERSION_MAJOR}) + set(${PROJECT_INTERN_NAME}_VERSION_MINOR ${THIS_VERSION_MINOR}) + set(${PROJECT_INTERN_NAME}_VERSION_PATCH ${THIS_VERSION_PATCH}) + + # Set VERSION string + set(${PROJECT_INTERN_NAME}_VERSION + "${${PROJECT_INTERN_NAME}_VERSION_MAJOR}.${${PROJECT_INTERN_NAME}_VERSION_MINOR}.${${PROJECT_INTERN_NAME}_VERSION_PATCH}") + + # Set SOVERSION based on major and minor + set(${PROJECT_INTERN_NAME}_SOVERSION + "${${PROJECT_INTERN_NAME}_VERSION_MAJOR}.${${PROJECT_INTERN_NAME}_VERSION_MINOR}") + + # Set ABI version string used to name binary output + # On Windows, ABI version is specified using binary file name suffix. + # On Unix, suffix ix empty and SOVERSION is used instead. + if (UNIX) + set(${PROJECT_INTERN_NAME}_ABI_VERSION ${${PROJECT_INTERN_NAME}_SOVERSION}) + elseif(WIN32) + set(${PROJECT_INTERN_NAME}_ABI_VERSION + "${${PROJECT_INTERN_NAME}_VERSION_MAJOR}_${${PROJECT_INTERN_NAME}_VERSION_MINOR}") + else() + message(FATAL_ERROR "Ambiguous target platform with unknown ABI version scheme. Giving up.") + endif() + + message(STATUS "") + boost_report_value(${PROJECT_INTERN_NAME}_VERSION) + if(UNIX) + boost_report_value(${PROJECT_INTERN_NAME}_SOVERSION) + endif(UNIX) + if(WIN32) + boost_report_value(${PROJECT_INTERN_NAME}_ABI_VERSION) + endif(WIN32) +endmacro() |
