Warning, /sdk/codevis/thirdparty/soci/cmake/SociVersion.cmake is written in an unsupported language. File is not indexed.
0001 ################################################################################ 0002 # SociVersion.cmake - part of CMake configuration of SOCI library 0003 ################################################################################ 0004 # Copyright (C) 2010 Mateusz Loskot <mateusz@loskot.net> 0005 # 0006 # Distributed under the Boost Software License, Version 1.0. 0007 # (See accompanying file LICENSE_1_0.txt or copy at 0008 # http://www.boost.org/LICENSE_1_0.txt) 0009 ################################################################################ 0010 # Macros in this module: 0011 # 0012 # soci_version - defines version information for SOCI library 0013 # 0014 ################################################################################ 0015 0016 # Defines version information for SOCI library 0017 # 0018 # soci_version(MAJOR major_version MINOR minor_version PATCH patch_level) 0019 # 0020 # MAJOR.MINOR version is used to set SOVERSION 0021 # 0022 macro(soci_version) 0023 # get version from soci/version.h 0024 file( 0025 STRINGS 0026 "${PROJECT_SOURCE_DIR}/include/soci/version.h" 0027 _VERSION 0028 REGEX 0029 "#define SOCI_VERSION ([0-9]+)" 0030 ) 0031 string(REGEX MATCH "([0-9]+)" _VERSION "${_VERSION}") 0032 0033 math(EXPR ${PROJECT_NAME}_VERSION_MAJOR "${_VERSION} / 100000") 0034 math(EXPR ${PROJECT_NAME}_VERSION_MINOR "${_VERSION} / 100 % 1000") 0035 math(EXPR ${PROJECT_NAME}_VERSION_PATCH "${_VERSION} % 100") 0036 0037 # Set VERSION string 0038 set(${PROJECT_NAME}_VERSION 0039 "${${PROJECT_NAME}_VERSION_MAJOR}.${${PROJECT_NAME}_VERSION_MINOR}.${${PROJECT_NAME}_VERSION_PATCH}") 0040 0041 # Set SOVERSION based on major and minor 0042 set(${PROJECT_NAME}_SOVERSION 0043 "${${PROJECT_NAME}_VERSION_MAJOR}.${${PROJECT_NAME}_VERSION_MINOR}") 0044 0045 # Set ABI version string used to name binary output and, by SOCI loader, to find binaries. 0046 # On Windows, ABI version is specified using binary file name suffix. 0047 # On Unix, suffix ix empty and SOVERSION is used instead. 0048 if (UNIX) 0049 set(${PROJECT_NAME}_ABI_VERSION ${${PROJECT_NAME}_SOVERSION}) 0050 elseif(WIN32) 0051 set(${PROJECT_NAME}_ABI_VERSION 0052 "${${PROJECT_NAME}_VERSION_MAJOR}_${${PROJECT_NAME}_VERSION_MINOR}") 0053 else() 0054 message(FATAL_ERROR "Ambiguous target platform with unknown ABI version scheme. Giving up.") 0055 endif() 0056 0057 boost_report_value(${PROJECT_NAME}_VERSION) 0058 boost_report_value(${PROJECT_NAME}_ABI_VERSION) 0059 0060 add_definitions(-DSOCI_ABI_VERSION="${${PROJECT_NAME}_ABI_VERSION}") 0061 0062 endmacro()