From 0dd90db7ea512b83ea48107f155b059549c6b95f Mon Sep 17 00:00:00 2001
From: Kubat <mael.martin31@gmail.com>
Date: Thu, 13 Oct 2022 14:29:57 +0200
Subject: [PATCH] CMAKE: Make the build type flags also dependent on the
 compiler family name

---
 CMakeLists.txt | 30 +++++++++++++++++++++---------
 1 file changed, 21 insertions(+), 9 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8eb353a8..6e394f2e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -56,13 +56,15 @@ endif()
 ###                  ###
 
 set(${CMAKE_C_COMPILER_ID}_C_FLAGS)
-set(${CMAKE_BUILD_TYPE}_C_FLAGS)
-set(RelWithDebInfo_C_FLAGS
-    -Wno-switch # For the CI
-)
-set(Release_C_FLAGS
-    -Wno-switch # For the CI
-)
+set(${CMAKE_BUILD_TYPE}_${CMAKE_C_COMPILER_ID}_C_FLAGS)
+
+# For the CI...
+set(RelWithDebInfo_GNU_C_FLAGS   -Wno-switch)
+set(Release_GNU_C_FLAGS          -Wno-switch)
+set(RelWithDebInfo_Clang_C_FLAGS -Wno-switch-enum)
+set(Release_Clang_C_FLAGS        -Wno-switch-enum)
+
+# Common flags, also per compiler
 set(COMMON_C_FLAGS
     -Wall -Wextra -Werror
     -Wshadow
@@ -336,8 +338,18 @@ target_compile_definitions(lektord PRIVATE ${common_DEFINITIONS}
     QTCREATOR_UTILS_STATIC_LIB
 )
 
-target_compile_options(lektord PRIVATE ${COMMON_C_FLAGS} ${${CMAKE_C_COMPILER_ID}_C_FLAGS} ${${CMAKE_CXX_COMPILER_ID}_CXX_FLAGS} ${${CMAKE_C_COMPILER_ID}_C_FLAGS})
-target_compile_options(lkt     PRIVATE ${COMMON_C_FLAGS} ${${CMAKE_C_COMPILER_ID}_C_FLAGS} ${${CMAKE_CXX_COMPILER_ID}_CXX_FLAGS} ${${CMAKE_C_COMPILER_ID}_C_FLAGS})
+target_compile_options(lektord PRIVATE
+    ${COMMON_C_FLAGS}
+    ${${CMAKE_C_COMPILER_ID}_C_FLAGS}
+    ${${CMAKE_CXX_COMPILER_ID}_CXX_FLAGS}
+    ${${CMAKE_C_COMPILER_ID}_${CMAKE_C_COMPILER_ID}_C_FLAGS}
+)
+target_compile_options(lkt PRIVATE
+    ${COMMON_C_FLAGS}
+    ${${CMAKE_C_COMPILER_ID}_C_FLAGS}
+    ${${CMAKE_CXX_COMPILER_ID}_CXX_FLAGS}
+    ${${CMAKE_C_COMPILER_ID}_${CMAKE_C_COMPILER_ID}_C_FLAGS}
+)
 
 set_property(TARGET lektord PROPERTY CXX_STANDARD 20)
 
-- 
GitLab