diff --git a/CMakeLists.txt b/CMakeLists.txt
index f90b2390496428ea92b565fbed88dde9919be12b..c60f8127f9c8517901889822323e180895b081ba 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -48,10 +48,14 @@ set(${CMAKE_C_COMPILER_ID}_C_FLAGS)
 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)
+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)
+set(RelWithDebInfo_GNU_CXX_FLAGS   $<$<COMPILE_LANGUAGE:CXX>:-Wno-switch)
+set(Release_GNU_CXX_FLAGS          $<$<COMPILE_LANGUAGE:CXX>:-Wno-switch)
+set(RelWithDebInfo_Clang_CXX_FLAGS $<$<COMPILE_LANGUAGE:CXX>:-Wno-switch-enum)
+set(Release_Clang_CXX_FLAGS        $<$<COMPILE_LANGUAGE:CXX>:-Wno-switch-enum)
 
 # Common flags, also per compiler
 set(COMMON_C_FLAGS
@@ -314,13 +318,15 @@ 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}
+    ${${CMAKE_BUILD_TYPE}_${CMAKE_C_COMPILER_ID}_C_FLAGS}
+    ${${CMAKE_BUILD_TYPE}_${CMAKE_CXX_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}
+    ${${CMAKE_BUILD_TYPE}_${CMAKE_C_COMPILER_ID}_C_FLAGS}
+    ${${CMAKE_BUILD_TYPE}_${CMAKE_CXX_COMPILER_ID}_C_FLAGS}
 )
 
 set_directory_properties(PROPERTIES EP_PREFIX ${CMAKE_BINARY_DIR}/Rust)