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

0001 ################################################################################
0002 # SociConfig.cmake - CMake build 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 
0011 include(CheckCXXSymbolExists)
0012 
0013 if(WIN32)
0014   check_cxx_symbol_exists("_M_AMD64" "" SOCI_TARGET_ARCH_X64)
0015   if(NOT RTC_ARCH_X64)
0016     check_cxx_symbol_exists("_M_IX86" "" SOCI_TARGET_ARCH_X86)
0017   endif(NOT RTC_ARCH_X64)
0018   # add check for arm here
0019   # see http://msdn.microsoft.com/en-us/library/b0084kay.aspx
0020 else(WIN32)
0021   check_cxx_symbol_exists("__i386__" "" SOCI_TARGET_ARCH_X86)
0022   check_cxx_symbol_exists("__x86_64__" "" SOCI_TARGET_ARCH_X64)
0023   check_cxx_symbol_exists("__arm__" "" SOCI_TARGET_ARCH_ARM)
0024 endif(WIN32)
0025 
0026 if(NOT DEFINED LIB_SUFFIX)
0027   if(SOCI_TARGET_ARCH_X64)
0028     set(_lib_suffix "64")
0029   else()
0030     set(_lib_suffix "")
0031   endif()
0032   set(LIB_SUFFIX ${_lib_suffix} CACHE STRING "Specifies suffix for the lib directory")
0033 endif()
0034 
0035 #
0036 # Force compilation flags and set desired warnings level
0037 #
0038 
0039 # This is used to set the -Werror compilation flag only when explicitly
0040 # requested, as e.g. in CI builds.
0041 set(SOCI_WERROR_OPTION "")
0042 
0043 if (MSVC)
0044   add_definitions(-D_CRT_SECURE_NO_DEPRECATE)
0045   add_definitions(-D_CRT_SECURE_NO_WARNINGS)
0046   add_definitions(-D_CRT_NONSTDC_NO_WARNING)
0047   add_definitions(-D_SCL_SECURE_NO_WARNINGS)
0048 
0049   if(CMAKE_CXX_FLAGS MATCHES "/W[0-4]")
0050     string(REGEX REPLACE "/W[0-4]" "/W4" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
0051   else()
0052     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4 /we4266")
0053   endif()
0054 
0055   if (SOCI_ENABLE_WERROR)
0056      set(SOCI_WERROR_OPTION "/WX")
0057   endif (SOCI_ENABLE_WERROR)
0058 else()
0059 
0060   if (SOCI_ENABLE_WERROR)
0061      set(SOCI_WERROR_OPTION "-Werror")
0062   endif (SOCI_ENABLE_WERROR)
0063 
0064   set(SOCI_GCC_CLANG_COMMON_FLAGS
0065     "-pedantic -Wno-error=parentheses -Wall -Wextra -Wpointer-arith -Wcast-align -Wcast-qual -Wfloat-equal -Woverloaded-virtual -Wredundant-decls -Wno-long-long")
0066 
0067 
0068   if("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang" OR "${CMAKE_CXX_COMPILER}" MATCHES "clang")
0069 
0070     if(NOT CMAKE_CXX_COMPILER_VERSION LESS 3.1 AND SOCI_ASAN)
0071       set(SOCI_GCC_CLANG_COMMON_FLAGS "${SOCI_GCC_CLANG_COMMON_FLAGS} -fsanitize=address")
0072     endif()
0073 
0074     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SOCI_GCC_CLANG_COMMON_FLAGS}")
0075 
0076   elseif(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
0077 
0078     if(NOT CMAKE_CXX_COMPILER_VERSION LESS 4.8 AND SOCI_ASAN)
0079       set(SOCI_GCC_CLANG_COMMON_FLAGS "${SOCI_GCC_CLANG_COMMON_FLAGS} -fsanitize=address")
0080     endif()
0081 
0082     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SOCI_GCC_CLANG_COMMON_FLAGS} ")
0083     if (CMAKE_COMPILER_IS_GNUCXX)
0084         if (CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
0085             set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
0086         else()
0087             set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-variadic-macros")
0088         endif()
0089     endif()
0090 
0091   else()
0092         message(WARNING "Unknown toolset - using default flags to build SOCI")
0093   endif()
0094 
0095 endif()
0096 
0097 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SOCI_WERROR_OPTION}")