From aa5315769e346adeb8d5d54a929904e5d2e995fe Mon Sep 17 00:00:00 2001 From: Jeremy <51220084+jeremy-rifkin@users.noreply.github.com> Date: Wed, 6 Dec 2023 00:16:24 -0500 Subject: [PATCH] Handle color arguments better if C and C++ compiler families differ --- CMakeLists.txt | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 418afae..02c56b5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -23,11 +23,18 @@ include(GNUInstallDirs) include(CheckCXXSourceCompiles) include(CheckCXXCompilerFlag) -if(CMAKE_GENERATOR STREQUAL "Ninja") - if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") - add_compile_options(-fdiagnostics-color=always) - elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") - add_compile_options(-fcolor-diagnostics) +if(PROJECT_IS_TOP_LEVEL) + if(CMAKE_GENERATOR STREQUAL "Ninja") + if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fdiagnostics-color=always") + elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fcolor-diagnostics") + endif() + if("${CMAKE_C_COMPILER_ID}" STREQUAL "GNU") + SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fdiagnostics-color=always") + elseif("${CMAKE_C_COMPILER_ID}" STREQUAL "Clang") + SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fcolor-diagnostics") + endif() endif() endif()