diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8eb353a80c6783e429ceca04f2e87e98aa0d6ac7..6e394f2e136d2e234dd5057448ff7c25ebdd5edc 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)