diff --git a/CMakeLists.txt b/CMakeLists.txt
index ec478fdeaea20220a05c43754dc95bc0aeccb9fb..24a570060fe444b0ffb0230c5c13cde78c46d6e3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -71,13 +71,23 @@ target_link_libraries(Vivy PRIVATE ${AVFORMAT_LIBRARY})
 target_include_directories(Vivy PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/inc)
 
 target_compile_options(Vivy PRIVATE
-    -Wall -Wextra -Wshadow -Wnon-virtual-dtor -pedantic
-    -Wno-unused-private-field # Skip the unused private fields for now
-    -Wcast-align -Woverloaded-virtual -Wconversion -Wsign-conversion
+    -Wall -Wextra -Wshadow -pedantic
+    -Wcast-align -Wconversion -Wsign-conversion
     -Wmisleading-indentation -Wnull-dereference -Wdouble-promotion
     -Wformat=2
+    $<$<COMPILE_LANGUAGE:CXX>:
+        -Woverloaded-virtual
+        -Wnon-virtual-dtor
+    >
 )
 
+if (${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang")
+    target_compile_options(Vivy PRIVATE
+        -Wno-unused-private-field # Skip the unused private fields for now
+    )
+elseif (${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU")
+endif()
+
 set_target_properties(Vivy PROPERTIES
     MACOSX_BUNDLE_GUI_IDENTIFIER vivy.iiens.net
     MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}