From fb536a155da0561192a599c2f55b4e13688a57c7 Mon Sep 17 00:00:00 2001 From: whitequark Date: Sun, 24 Nov 2019 18:55:46 +0000 Subject: [PATCH] Test for -ffile-prefix-map support instead of comparing versions. Comparing versions is not viable because Apple clang has its own versioning scheme which is also undocumented. --- CMakeLists.txt | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5b24ffc..cf23f9d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -66,12 +66,13 @@ endif() # common compiler flags -if((CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND NOT (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 8.0)) OR - CMAKE_CXX_COMPILER_ID MATCHES "Clang") - set(DEBUG_FLAGS "-fdebug-prefix-map=${CMAKE_CURRENT_SOURCE_DIR}=.") - set(DEBUG_FLAGS "${DEBUG_FLAGS} -ffile-prefix-map=${CMAKE_CURRENT_SOURCE_DIR}=.") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${DEBUG_FLAGS}") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${DEBUG_FLAGS}") +include(CheckCXXCompilerFlag) + +set(FILE_PREFIX_MAP "-ffile-prefix-map=${CMAKE_CURRENT_SOURCE_DIR}=.") +check_cxx_compiler_flag("${FILE_PREFIX_MAP}" HAS_FILE_PREFIX_MAP) +if(HAS_FILE_PREFIX_MAP) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${FILE_PREFIX_MAP}") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${FILE_PREFIX_MAP}") endif() if(MINGW)