mirror of
https://github.com/Z3Prover/z3
synced 2025-04-06 01:24:08 +00:00
Fix CMake configure under CMake 3.1 with MSVC under Windows.
This commit is contained in:
parent
e8a9209577
commit
7ac9172600
|
@ -1,7 +1,22 @@
|
|||
# Enforce some CMake policies
|
||||
cmake_minimum_required(VERSION 2.8.12)
|
||||
if (POLICY CMP0054)
|
||||
# FIXME: This is horrible. With the old behaviour,
|
||||
# quoted strings like "MSVC" in if() conditionals
|
||||
# get implicitly dereferenced. The NEW behaviour
|
||||
# doesn't do this but CMP0054 was only introduced
|
||||
# in CMake 3.1 and we support lower versions as the
|
||||
# minimum. We could set NEW here but it would be very
|
||||
# confusing to use NEW for some builds and OLD for others
|
||||
# which could lead to some subtle bugs. Instead when the
|
||||
# minimum version is 3.1 change this policy to NEW and remove
|
||||
# the hacks in place to work around it.
|
||||
cmake_policy(SET CMP0054 OLD)
|
||||
endif()
|
||||
|
||||
# This overrides the default flags for the different CMAKE_BUILD_TYPEs
|
||||
set(CMAKE_USER_MAKE_RULES_OVERRIDE "${CMAKE_CURRENT_SOURCE_DIR}/cmake/compiler_flags_override.cmake")
|
||||
project(Z3 C CXX)
|
||||
cmake_minimum_required(VERSION 2.8.12)
|
||||
|
||||
################################################################################
|
||||
# Project version
|
||||
|
@ -210,7 +225,8 @@ endif()
|
|||
if ("${TARGET_ARCHITECTURE}" STREQUAL "x86_64")
|
||||
if (("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU") OR ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang"))
|
||||
set(SSE_FLAGS "-mfpmath=sse" "-msse" "-msse2")
|
||||
elseif ("${CMAKE_CXX_COMPILER_ID}" MATCHES "MSVC")
|
||||
# FIXME: Remove "x.." when CMP0054 is set to NEW
|
||||
elseif ("x${CMAKE_CXX_COMPILER_ID}" STREQUAL "xMSVC")
|
||||
set(SSE_FLAGS "/arch:SSE2")
|
||||
else()
|
||||
message(FATAL_ERROR "Unknown compiler ${CMAKE_CXX_COMPILER_ID}")
|
||||
|
|
|
@ -17,8 +17,8 @@ if (("${CMAKE_${_lang}_COMPILER_ID}" MATCHES "Clang") OR ("${CMAKE_${_lang}_COMP
|
|||
set(CMAKE_${_lang}_FLAGS_MINSIZEREL_INIT "-Os")
|
||||
set(CMAKE_${_lang}_FLAGS_RELEASE_INIT "-O3")
|
||||
set(CMAKE_${_lang}_FLAGS_RELWITHDEBINFO_INIT "-O2 -g")
|
||||
elseif ("${CMAKE_${_lang}_COMPILER_ID}" MATCHES "MSVC")
|
||||
# Not tested!
|
||||
# FIXME: Remove "x.." when CMP0054 is set to NEW
|
||||
elseif ("x${CMAKE_${_lang}_COMPILER_ID}" STREQUAL "xMSVC")
|
||||
set(CMAKE_${_lang}_FLAGS_DEBUG_INIT "/D_DEBUG /MTd /Zi /Ob0 /Od /RTC1")
|
||||
set(CMAKE_${_lang}_FLAGS_MINSIZEREL_INIT "/MT /O1 /Ob1")
|
||||
set(CMAKE_${_lang}_FLAGS_RELEASE_INIT "/MT /O2 /Ob2")
|
||||
|
|
|
@ -12,7 +12,8 @@ if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU")
|
|||
elseif ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
|
||||
list(APPEND WARNING_FLAGS_TO_CHECK ${GCC_AND_CLANG_WARNINGS})
|
||||
list(APPEND WARNING_FLAGS_TO_CHECK ${CLANG_ONLY_WARNINGS})
|
||||
elseif ("${CMAKE_CXX_COMPILER_ID}" MATCHES "MSVC")
|
||||
# FIXME: Remove "x.." when CMP0054 is set to NEW
|
||||
elseif ("x${CMAKE_CXX_COMPILER_ID}" STREQUAL "xMSVC")
|
||||
list(APPEND WARNING_FLAGS_TO_CHECK ${MSVC_WARNINGS})
|
||||
else()
|
||||
message(AUTHOR_WARNING "Unknown compiler")
|
||||
|
@ -27,7 +28,8 @@ option(WARNINGS_AS_ERRORS "Treat compiler warnings as errors" OFF)
|
|||
if (WARNINGS_AS_ERRORS)
|
||||
if (("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") OR ("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU"))
|
||||
list(APPEND Z3_COMPONENT_CXX_FLAGS "-Werror")
|
||||
elseif ("${CMAKE_CXX_COMPILER_ID}" MATCHES "MSVC")
|
||||
# FIXME: Remove "x.." when CMP0054 is set to NEW
|
||||
elseif ("x${CMAKE_CXX_COMPILER_ID}" STREQUAL "xMSVC")
|
||||
list(APPEND Z3_COMPONENT_CXX_FLAGS "/WX")
|
||||
else()
|
||||
message(AUTHOR_WARNING "Unknown compiler")
|
||||
|
|
Loading…
Reference in a new issue