Verify minimal clang version in cmake.

This commit is contained in:
Daniel Kirchner 2020-12-10 17:20:49 +01:00
parent c400c61fc3
commit 4cb9a42d9a

View File

@ -65,11 +65,8 @@ if (("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU") OR ("${CMAKE_CXX_COMPILER_ID}" MA
# Additional GCC-specific compiler settings. # Additional GCC-specific compiler settings.
if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU") if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU")
# Check that we've got GCC 8.0 or newer. # Check that we've got GCC 8.0 or newer.
execute_process( if (NOT (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 8.0))
COMMAND ${CMAKE_CXX_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
if (NOT (GCC_VERSION VERSION_GREATER 8.0 OR GCC_VERSION VERSION_EQUAL 8.0))
message(FATAL_ERROR "${PROJECT_NAME} requires g++ 8.0 or greater.") message(FATAL_ERROR "${PROJECT_NAME} requires g++ 8.0 or greater.")
endif () endif ()
@ -78,6 +75,11 @@ if (("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU") OR ("${CMAKE_CXX_COMPILER_ID}" MA
# Additional Clang-specific compiler settings. # Additional Clang-specific compiler settings.
elseif ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") elseif ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
# Check that we've got clang 7.0 or newer.
if (NOT (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 7.0))
message(FATAL_ERROR "${PROJECT_NAME} requires clang++ 7.0 or greater.")
endif ()
if ("${CMAKE_SYSTEM_NAME}" MATCHES "Darwin") if ("${CMAKE_SYSTEM_NAME}" MATCHES "Darwin")
# Set stack size to 32MB - by default Apple's clang defines a stack size of 8MB. # Set stack size to 32MB - by default Apple's clang defines a stack size of 8MB.
# Normally 16MB is enough to run all tests, but it will exceed the stack, if -DSANITIZE=address is used. # Normally 16MB is enough to run all tests, but it will exceed the stack, if -DSANITIZE=address is used.