3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-06 17:44:08 +00:00

Merge pull request #1110 from delcypher/cmake_2_8_12_fixes

[CMake] CMake 2.8.12 fixes
This commit is contained in:
Nikolaj Bjorner 2017-06-24 09:45:25 -07:00 committed by GitHub
commit 33d8b9b798
3 changed files with 28 additions and 9 deletions

View file

@ -22,6 +22,13 @@ endif()
set(CMAKE_USER_MAKE_RULES_OVERRIDE_CXX "${CMAKE_CURRENT_SOURCE_DIR}/cmake/cxx_compiler_flags_overrides.cmake") set(CMAKE_USER_MAKE_RULES_OVERRIDE_CXX "${CMAKE_CURRENT_SOURCE_DIR}/cmake/cxx_compiler_flags_overrides.cmake")
project(Z3 CXX) project(Z3 CXX)
if ("${CMAKE_VERSION}" VERSION_LESS "3.4")
# FIXME: Drop this when we upgrade to newer CMake versions.
# HACK: Although we don't need C language support if it is not
# enabled CMake's `FindThreads` module fails in old CMake versions.
enable_language(C)
endif()
################################################################################ ################################################################################
# Project version # Project version
################################################################################ ################################################################################
@ -102,7 +109,7 @@ if (EXISTS "${GIT_DIR}")
endif() endif()
message(STATUS "Using Git hash in version output: ${Z3GITHASH}") message(STATUS "Using Git hash in version output: ${Z3GITHASH}")
# This mimics the behaviour of the old build system. # This mimics the behaviour of the old build system.
string(APPEND Z3_FULL_VERSION_STR " ${Z3GITHASH}") set(Z3_FULL_VERSION_STR "${Z3_FULL_VERSION_STR} ${Z3GITHASH}")
else() else()
message(STATUS "Not using Git hash in version output") message(STATUS "Not using Git hash in version output")
unset(Z3GITHASH) # Used in configure_file() unset(Z3GITHASH) # Used in configure_file()
@ -115,7 +122,7 @@ if (EXISTS "${GIT_DIR}")
endif() endif()
message(STATUS "Using Git description in version output: ${Z3_GIT_DESCRIPTION}") message(STATUS "Using Git description in version output: ${Z3_GIT_DESCRIPTION}")
# This mimics the behaviour of the old build system. # This mimics the behaviour of the old build system.
string(APPEND Z3_FULL_VERSION_STR " ${Z3_GIT_DESCRIPTION}") set(Z3_FULL_VERSION_STR "${Z3_FULL_VERSION_STR} ${Z3_GIT_DESCRIPTION}")
else() else()
message(STATUS "Not including git descrption in version") message(STATUS "Not including git descrption in version")
endif() endif()
@ -517,10 +524,18 @@ add_subdirectory(src)
# use Z3 via CMake. # use Z3 via CMake.
################################################################################ ################################################################################
include(CMakePackageConfigHelpers) include(CMakePackageConfigHelpers)
export(EXPORT Z3_EXPORTED_TARGETS if ("${CMAKE_VERSION}" VERSION_LESS "3.0")
NAMESPACE z3:: # FIXME: Remove this once we drop support for CMake 2.8.12
FILE "${CMAKE_BINARY_DIR}/Z3Targets.cmake" export(TARGETS libz3
) NAMESPACE z3::
FILE "${CMAKE_BINARY_DIR}/Z3Targets.cmake"
)
else()
export(EXPORT Z3_EXPORTED_TARGETS
NAMESPACE z3::
FILE "${CMAKE_BINARY_DIR}/Z3Targets.cmake"
)
endif()
set(Z3_FIRST_PACKAGE_INCLUDE_DIR "${CMAKE_BINARY_DIR}/src/api") set(Z3_FIRST_PACKAGE_INCLUDE_DIR "${CMAKE_BINARY_DIR}/src/api")
set(Z3_SECOND_PACKAGE_INCLUDE_DIR "${CMAKE_SOURCE_DIR}/src/api") set(Z3_SECOND_PACKAGE_INCLUDE_DIR "${CMAKE_SOURCE_DIR}/src/api")
set(Z3_CXX_PACKAGE_INCLUDE_DIR "${CMAKE_SOURCE_DIR}/src/api/c++") set(Z3_CXX_PACKAGE_INCLUDE_DIR "${CMAKE_SOURCE_DIR}/src/api/c++")
@ -533,7 +548,6 @@ configure_package_config_file("${CMAKE_SOURCE_DIR}/cmake/Z3Config.cmake.in"
Z3_FIRST_PACKAGE_INCLUDE_DIR Z3_FIRST_PACKAGE_INCLUDE_DIR
Z3_SECOND_PACKAGE_INCLUDE_DIR Z3_SECOND_PACKAGE_INCLUDE_DIR
Z3_CXX_PACKAGE_INCLUDE_DIR Z3_CXX_PACKAGE_INCLUDE_DIR
INSTALL_PREFIX "${CMAKE_BINARY_DIR}"
) )
unset(Z3_FIRST_PACKAGE_INCLUDE_DIR) unset(Z3_FIRST_PACKAGE_INCLUDE_DIR)
unset(Z3_SECOND_PACKAGE_INCLUDE_DIR) unset(Z3_SECOND_PACKAGE_INCLUDE_DIR)

View file

@ -99,7 +99,9 @@ function(get_git_head_hash GIT_DIR OUTPUT_VAR)
message(FATAL_ERROR \""${GIT_DIR}\" is not an absolute path") message(FATAL_ERROR \""${GIT_DIR}\" is not an absolute path")
endif() endif()
find_package(Git) find_package(Git)
if (NOT Git_FOUND) # NOTE: Use `GIT_FOUND` rather than `Git_FOUND` which was only
# available in CMake >= 3.5
if (NOT GIT_FOUND)
set(${OUTPUT_VAR} "GIT-NOTFOUND" PARENT_SCOPE) set(${OUTPUT_VAR} "GIT-NOTFOUND" PARENT_SCOPE)
return() return()
endif() endif()
@ -146,7 +148,9 @@ function(get_git_head_describe GIT_DIR OUTPUT_VAR)
message(FATAL_ERROR \""${GIT_DIR}\" is not an absolute path") message(FATAL_ERROR \""${GIT_DIR}\" is not an absolute path")
endif() endif()
find_package(Git) find_package(Git)
if (NOT Git_FOUND) # NOTE: Use `GIT_FOUND` rather than `Git_FOUND` which was only
# available in CMake >= 3.5
if (NOT GIT_FOUND)
set(${OUTPUT_VAR} "GIT-NOTFOUND" PARENT_SCOPE) set(${OUTPUT_VAR} "GIT-NOTFOUND" PARENT_SCOPE)
return() return()
endif() endif()

View file

@ -8,6 +8,7 @@ function(z3_add_cxx_flag 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}")
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}) unset(HAS_${SANITIZED_FLAG_NAME})
CHECK_CXX_COMPILER_FLAG("${flag}" HAS_${SANITIZED_FLAG_NAME}) CHECK_CXX_COMPILER_FLAG("${flag}" HAS_${SANITIZED_FLAG_NAME})
if (z3_add_flag_REQUIRED AND NOT HAS_${SANITIZED_FLAG_NAME}) if (z3_add_flag_REQUIRED AND NOT HAS_${SANITIZED_FLAG_NAME})