From 418d59b8a6054ce9ef1a28c07c41d3a0bb386836 Mon Sep 17 00:00:00 2001 From: "Michael Hirsch, Ph.D" Date: Sat, 7 Mar 2020 20:56:57 -0500 Subject: only apply optional flags when compiler works --- CMakeLists.txt | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f5a588c..007c662 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,7 @@ cmake_minimum_required(VERSION 3.15) project(ninja) +# --- optional link-time optimization if(CMAKE_BUILD_TYPE MATCHES "Release") include(CheckIPOSupported) check_ipo_supported(RESULT lto_supported OUTPUT error) @@ -13,13 +14,23 @@ if(CMAKE_BUILD_TYPE MATCHES "Release") endif() endif() +# --- compiler flags if(MSVC) set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>") string(APPEND CMAKE_CXX_FLAGS " /W4 /GR- /Zc:__cplusplus") else() - string(APPEND CMAKE_CXX_FLAGS " -Wno-deprecated -fdiagnostics-color") + include(CheckCXXCompilerFlag) + check_cxx_compiler_flag(-Wno-deprecated flag_no_deprecated) + if(flag_no_deprecated) + string(APPEND CMAKE_CXX_FLAGS " -Wno-deprecated") + endif() + check_cxx_compiler_flag(-fdiagnostics-color flag_color_diag) + if(flag_color_diag) + string(APPEND CMAKE_CXX_FLAGS " -fdiagnostics-color") + endif() endif() +# --- optional re2c find_program(RE2C re2c) if(RE2C) # the depfile parser and ninja lexers are generated using re2c. -- cgit v1.2.1