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}")