Warning, /sdk/codevis/thirdparty/soci/cmake/SociDependencies.cmake is written in an unsupported language. File is not indexed.

0001 ################################################################################
0002 # SociDependencies.cmake - part of CMake configuration of SOCI library
0003 #
0004 # Based on BoostExternals.cmake from CMake configuration for Boost
0005 ################################################################################
0006 # Copyright (C) 2010 Mateusz Loskot <mateusz@loskot.net>
0007 # Copyright (C) 2009 Troy Straszheim
0008 #
0009 # Distributed under the Boost Software License, Version 1.0.
0010 # (See accompanying file LICENSE_1_0.txt or copy at
0011 # http://www.boost.org/LICENSE_1_0.txt)
0012 ################################################################################
0013 # Macros in this module:
0014 #
0015 #   soci_backend - defines a database backend for SOCI library
0016 #
0017 ################################################################################
0018 
0019 #
0020 # List of SOCI dependncies
0021 #
0022 set(SOCI_CORE_DEPENDENCIES
0023   Threads
0024 )
0025 
0026 set(SOCI_BACKENDS_DB_DEPENDENCIES
0027   MySQL
0028   ODBC
0029   Oracle
0030   PostgreSQL
0031   SQLite3
0032   Firebird
0033   DB2)
0034 
0035 set(SOCI_ALL_DEPENDENCIES
0036   ${SOCI_CORE_DEPENDENCIES}
0037   ${SOCI_BACKENDS_DB_DEPENDENCIES})
0038 
0039 #
0040 # Perform checks
0041 #
0042 colormsg(_HIBLUE_ "Looking for SOCI dependencies:")
0043 
0044 macro(boost_external_report NAME)
0045 
0046   set(VARNAME ${NAME})
0047   string(TOUPPER ${NAME} VARNAMEU)
0048 
0049   set(VARNAMES ${ARGV})
0050   list(REMOVE_AT VARNAMES 0)
0051 
0052   # Test both, given original name and uppercase version too
0053   if(NOT ${VARNAME}_FOUND AND NOT ${VARNAMEU}_FOUND)
0054     colormsg(_RED_ "WARNING: ${NAME} libraries not found, some features will be disabled.")
0055   endif()
0056 
0057   foreach(variable ${VARNAMES})
0058     if(${VARNAMEU}_FOUND)
0059       boost_report_value(${VARNAMEU}_${variable})
0060     elseif(${VARNAME}_FOUND)
0061       boost_report_value(${VARNAME}_${variable})
0062     endif()
0063   endforeach()
0064 endmacro()
0065 
0066 #
0067 #  Some externals default to OFF
0068 #
0069 option(WITH_VALGRIND "Run tests under valgrind" OFF)
0070 
0071 #
0072 # Detect available dependencies
0073 #
0074 foreach(external ${SOCI_ALL_DEPENDENCIES})
0075   string(TOUPPER "${external}" EXTERNAL)
0076 
0077   # For historical reasons we use both WITH_xxx and SOCI_xxx options, and
0078   # setting either of them to e.g. OFF should disable the corresponding
0079   # dependency.
0080   option(WITH_${EXTERNAL} "Attempt to find and configure ${external}" ON)
0081   option(SOCI_${EXTERNAL} "Attempt to build ${external} backend" ON)
0082 
0083   if(NOT WITH_${EXTERNAL})
0084     set(disabled_var "WITH")
0085   elseif(NOT SOCI_${EXTERNAL})
0086     set(disabled_var "SOCI")
0087   endif()
0088 
0089   if(NOT DEFINED disabled_var)
0090     colormsg(HICYAN "${external}:")
0091     include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/dependencies/${external}.cmake)
0092   else()
0093     set(${EXTERNAL}_FOUND FALSE CACHE BOOL "${external} found" FORCE)
0094     colormsg(HICYAN "${external}:" YELLOW "disabled, since ${disabled_var}_${EXTERNAL}=OFF")
0095     unset(disabled_var)
0096   endif()
0097 
0098   if(NOT ${EXTERNAL}_FOUND)
0099     set(SOCI_${EXTERNAL} OFF)
0100   endif()
0101 endforeach()