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()