-if( CMAKE_SIZEOF_VOID_P EQUAL 8 AND NOT WIN32 )
- # TODO: support other platforms and toolchains.
- option(LLVM_BUILD_32_BITS "Build 32 bits executables and libraries." OFF)
- if( LLVM_BUILD_32_BITS )
- message(STATUS "Building 32 bits executables and libraries.")
- add_llvm_definitions( -m32 )
- list(APPEND CMAKE_EXE_LINKER_FLAGS -m32)
- list(APPEND CMAKE_SHARED_LINKER_FLAGS -m32)
- endif( LLVM_BUILD_32_BITS )
-endif( CMAKE_SIZEOF_VOID_P EQUAL 8 AND NOT WIN32 )
-
-if( MSVC )
- # List of valid CRTs for MSVC
- set(MSVC_CRT
- MD
- MDd
- MT
- MTd)
-
- set(LLVM_USE_CRT "" CACHE STRING "Specify VC++ CRT to use for debug/release configurations.")
- # Lets the GUI show a drop-down list of possible values, including
- # an empty string as the default:
- set_property(CACHE LLVM_USE_CRT PROPERTY STRINGS "";${MSVC_CRT})
- add_llvm_definitions( -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS )
- add_llvm_definitions( -D_SCL_SECURE_NO_WARNINGS -DCRT_NONSTDC_NO_WARNINGS )
- add_llvm_definitions( -D_SCL_SECURE_NO_DEPRECATE )
- add_llvm_definitions( -wd4146 -wd4503 -wd4996 -wd4800 -wd4244 -wd4624 )
- add_llvm_definitions( -wd4355 -wd4715 -wd4180 -wd4345 -wd4224 )
-
- # Suppress 'new behavior: elements of array 'array' will be default initialized'
- add_llvm_definitions( -wd4351 )
-
- if (NOT ${LLVM_USE_CRT} STREQUAL "")
- list(FIND MSVC_CRT ${LLVM_USE_CRT} idx)
- if (idx LESS 0)
- message(FATAL_ERROR "Invalid value for LLVM_USE_CRT: ${LLVM_USE_CRT}. Valid options are one of: ${MSVC_CRT}")
- endif (idx LESS 0)
- add_llvm_definitions("/${LLVM_USE_CRT}")
- message(STATUS "Using VC++ CRT: ${LLVM_USE_CRT}")
- endif (NOT ${LLVM_USE_CRT} STREQUAL "")
-
- # Enable warnings
- if (LLVM_ENABLE_WARNINGS)
- add_llvm_definitions( /W4 /Wall )
- if (LLVM_ENABLE_PEDANTIC)
- # No MSVC equivalent available
- endif (LLVM_ENABLE_PEDANTIC)
- endif (LLVM_ENABLE_WARNINGS)
- if (LLVM_ENABLE_WERROR)
- add_llvm_definitions( /WX )
- endif (LLVM_ENABLE_WERROR)
-elseif( CMAKE_COMPILER_IS_GNUCXX )
- if (LLVM_ENABLE_WARNINGS)
- add_llvm_definitions( -Wall -W -Wno-unused-parameter -Wwrite-strings )
- if (LLVM_ENABLE_PEDANTIC)
- add_llvm_definitions( -pedantic -Wno-long-long )
- endif (LLVM_ENABLE_PEDANTIC)
- endif (LLVM_ENABLE_WARNINGS)
- if (LLVM_ENABLE_WERROR)
- add_llvm_definitions( -Werror )
- endif (LLVM_ENABLE_WERROR)
-endif( MSVC )
-