mirror of
https://github.com/Z3Prover/z3
synced 2025-08-04 18:30:24 +00:00
using MSVC. This is set by the old build system but we weren't setting it. This actually MSVC's default but in an effort to try to behave more like the old build system we will set it anyway.
23 lines
1 KiB
CMake
23 lines
1 KiB
CMake
include(CheckCXXCompilerFlag)
|
|
include(CMakeParseArguments)
|
|
|
|
function(z3_add_cxx_flag flag)
|
|
CMAKE_PARSE_ARGUMENTS(z3_add_flag "REQUIRED" "" "" ${ARGN})
|
|
string(REPLACE "-" "_" SANITIZED_FLAG_NAME "${flag}")
|
|
string(REPLACE "/" "_" SANITIZED_FLAG_NAME "${SANITIZED_FLAG_NAME}")
|
|
string(REPLACE "=" "_" SANITIZED_FLAG_NAME "${SANITIZED_FLAG_NAME}")
|
|
string(REPLACE " " "_" SANITIZED_FLAG_NAME "${SANITIZED_FLAG_NAME}")
|
|
string(REPLACE ":" "_" SANITIZED_FLAG_NAME "${SANITIZED_FLAG_NAME}")
|
|
unset(HAS_${SANITIZED_FLAG_NAME})
|
|
CHECK_CXX_COMPILER_FLAG("${flag}" HAS_${SANITIZED_FLAG_NAME})
|
|
if (z3_add_flag_REQUIRED AND NOT HAS_${SANITIZED_FLAG_NAME})
|
|
message(FATAL_ERROR "The flag \"${flag}\" is required but your C++ compiler doesn't support it")
|
|
endif()
|
|
if (HAS_${SANITIZED_FLAG_NAME})
|
|
message(STATUS "C++ compiler supports ${flag}")
|
|
list(APPEND Z3_COMPONENT_CXX_FLAGS "${flag}")
|
|
set(Z3_COMPONENT_CXX_FLAGS "${Z3_COMPONENT_CXX_FLAGS}" PARENT_SCOPE)
|
|
else()
|
|
message(STATUS "C++ compiler does not support ${flag}")
|
|
endif()
|
|
endfunction()
|