https://git.reactos.org/?p=reactos.git;a=commitdiff;h=f155b9377f4e8b32d93787a27924e0860e57dbf8

commit f155b9377f4e8b32d93787a27924e0860e57dbf8
Author:     Victor Perevertkin <victor.perevert...@reactos.org>
AuthorDate: Thu May 26 01:37:23 2022 +0300
Commit:     Victor Perevertkin <victor.perevert...@reactos.org>
CommitDate: Fri May 27 01:37:34 2022 +0300

    [CMAKE] Elimitate the use of GCC and CLANG variables
---
 CMakeLists.txt                                     |  5 ++---
 base/services/nfsd/CMakeLists.txt                  |  2 +-
 boot/rtl/blrtl.cmake                               |  2 +-
 dll/3rdparty/libxslt/CMakeLists.txt                |  2 +-
 dll/3rdparty/mbedtls/CMakeLists.txt                |  4 +++-
 dll/opengl/glu32/CMakeLists.txt                    | 14 ++++++------
 drivers/filesystems/ext2/CMakeLists.txt            | 25 +++++++++-------------
 drivers/filesystems/fastfat_new/CMakeLists.txt     |  2 +-
 drivers/filesystems/nfs/CMakeLists.txt             | 10 +++++----
 drivers/filesystems/udfs/CMakeLists.txt            | 16 ++++++--------
 drivers/storage/class/cdrom/CMakeLists.txt         |  7 ++----
 drivers/storage/class/classpnp/CMakeLists.txt      |  2 +-
 drivers/storage/class/disk/CMakeLists.txt          |  5 +----
 drivers/storage/ide/uniata/CMakeLists.txt          | 15 ++++++-------
 drivers/wdm/audio/drivers/CMIDriver/CMakeLists.txt |  2 +-
 modules/rostests/apitests/compiler/CMakeLists.txt  |  4 ++--
 modules/rostests/apitests/crt/CMakeLists.txt       |  2 +-
 modules/rostests/winetests/advapi32/CMakeLists.txt |  2 +-
 modules/rostests/winetests/kernel32/CMakeLists.txt |  2 +-
 modules/rostests/winetests/msvcrt/CMakeLists.txt   |  7 ++----
 modules/rostests/winetests/ntdll/CMakeLists.txt    |  2 +-
 modules/rostests/winetests/rpcrt4/CMakeLists.txt   |  9 ++++----
 modules/rostests/winetests/winmm/CMakeLists.txt    |  2 +-
 modules/rostests/winetests/ws2_32/CMakeLists.txt   |  2 +-
 ntoskrnl/CMakeLists.txt                            |  7 +-----
 sdk/cmake/config.cmake                             | 24 ++-------------------
 sdk/cmake/gcc.cmake                                |  4 ++--
 sdk/lib/3rdparty/freetype/CMakeLists.txt           |  4 +++-
 sdk/lib/3rdparty/libxml2/CMakeLists.txt            |  2 +-
 sdk/lib/crt/msvcrtex.cmake                         |  4 ++--
 sdk/lib/drivers/wdf/CMakeLists.txt                 |  2 +-
 sdk/lib/rtl/CMakeLists.txt                         |  2 +-
 32 files changed, 78 insertions(+), 116 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2168dcb2422..40adc041d20 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -76,8 +76,7 @@ add_definitions(
 
 # There doesn't seem to be a standard for __FILE__ being relative or absolute, 
so detect it at runtime.
 file(RELATIVE_PATH _PATH_PREFIX ${REACTOS_BINARY_DIR} ${REACTOS_SOURCE_DIR})
-if (GCC AND ((CMAKE_C_COMPILER_ID STREQUAL "GNU") AND 
(CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL "8.0.0")
-    OR ((CMAKE_C_COMPILER_ID STREQUAL "Clang") AND (CMAKE_C_COMPILER_VERSION 
VERSION_GREATER_EQUAL "10.0.0"))))
+if (NOT MSVC AND (CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID 
STREQUAL "Clang"))
     # Thankfully, GCC has this
     add_compile_options(-ffile-prefix-map=${REACTOS_SOURCE_DIR}=)
     add_compile_options(-ffile-prefix-map=${_PATH_PREFIX}=)
@@ -229,7 +228,7 @@ Enable this if the module uses typeid or dynamic_cast. You 
will probably need to
         message(WARNING "-- Disabling precompiled headers support (ccache).")
         option(PCH "Whether to use precompiled headers" OFF)
         set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)
-    elseif(GCC)
+    elseif(CMAKE_C_COMPILER_ID STREQUAL "GNU")
         message(WARNING "-- Disabling precompiled headers on GCC by default 
CORE-17108.")
         option(PCH "Whether to use precompiled headers" OFF)
     else()
diff --git a/base/services/nfsd/CMakeLists.txt 
b/base/services/nfsd/CMakeLists.txt
index 6a96dd66c80..9d079e00c46 100644
--- a/base/services/nfsd/CMakeLists.txt
+++ b/base/services/nfsd/CMakeLists.txt
@@ -48,7 +48,7 @@ list(APPEND SOURCE
 
 add_executable(nfsd ${SOURCE} nfsd.rc)
 
-if(MSVC AND (NOT USE_CLANG_CL))
+if(CMAKE_C_COMPILER_ID STREQUAL "MSVC")
     # Disable warning C4477 (printf format warnings)
     target_compile_options(nfsd PRIVATE /wd4477)
 else()
diff --git a/boot/rtl/blrtl.cmake b/boot/rtl/blrtl.cmake
index 692727892b0..7f65e76343b 100644
--- a/boot/rtl/blrtl.cmake
+++ b/boot/rtl/blrtl.cmake
@@ -7,7 +7,7 @@ add_definitions(
 set(NTOS_RTL_SOURCE_DIR "${REACTOS_SOURCE_DIR}/sdk/lib/rtl")
 include_directories(${NTOS_RTL_SOURCE_DIR})
 
-if (GCC)
+if (CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID STREQUAL "Clang")
     # Enable this again. CORE-17637
     add_compile_options(-Wunused-result)
 endif()
diff --git a/dll/3rdparty/libxslt/CMakeLists.txt 
b/dll/3rdparty/libxslt/CMakeLists.txt
index 5a4910b6f3d..86af9b2003e 100644
--- a/dll/3rdparty/libxslt/CMakeLists.txt
+++ b/dll/3rdparty/libxslt/CMakeLists.txt
@@ -43,7 +43,7 @@ if(MSVC)
     add_importlibs(libxslt ntdll)
 endif()
 
-if(GCC OR CLANG)
+if(NOT MSVC)
     target_compile_options(libxslt PRIVATE -Wno-misleading-indentation 
-Wno-pointer-sign -Wno-unused-function)
 endif()
 
diff --git a/dll/3rdparty/mbedtls/CMakeLists.txt 
b/dll/3rdparty/mbedtls/CMakeLists.txt
index e43e1e8b732..a3cc7ab97a8 100644
--- a/dll/3rdparty/mbedtls/CMakeLists.txt
+++ b/dll/3rdparty/mbedtls/CMakeLists.txt
@@ -102,6 +102,8 @@ add_cd_file(TARGET mbedtls DESTINATION reactos/system32 FOR 
all)
 
 if(NOT MSVC)
     target_compile_options(mbedtls PRIVATE -Wno-pointer-sign 
-Wno-unused-function)
-elseif(USE_CLANG_CL)
+endif()
+
+if(CMAKE_C_COMPILER_ID STREQUAL "Clang")
     target_compile_options(mbedtls PRIVATE -Wno-tautological-constant-compare)
 endif()
diff --git a/dll/opengl/glu32/CMakeLists.txt b/dll/opengl/glu32/CMakeLists.txt
index ffa8a540818..76ace8871bf 100644
--- a/dll/opengl/glu32/CMakeLists.txt
+++ b/dll/opengl/glu32/CMakeLists.txt
@@ -120,19 +120,19 @@ target_link_libraries(glu32 cpprt)
 
 set_module_type(glu32 win32dll)
 
-if(NOT MSVC)
-    target_compile_options(glu32 PRIVATE -Wno-write-strings)
-elseif(USE_CLANG_CL)
-    target_compile_options(glu32 PRIVATE -Wno-self-assign -Wno-unused-function 
-Wno-microsoft-include)
-    target_compile_options(glu32 PRIVATE -Wno-deprecated-register 
-Wno-tautological-undefined-compare)
-endif()
-
 if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
+    target_compile_options(glu32 PRIVATE -Wno-write-strings)
     target_compile_options(glu32 PRIVATE -Wno-unused-but-set-variable)
     # Prevent a warning when comparing 'this' against 0
     set_source_files_properties(src/libnurbs/internals/arc.cc PROPERTIES 
COMPILE_FLAGS "-Wno-nonnull-compare")
 endif()
 
+if(CMAKE_C_COMPILER_ID STREQUAL "Clang")
+    target_compile_options(glu32 PRIVATE -Wno-write-strings)
+    target_compile_options(glu32 PRIVATE -Wno-self-assign -Wno-unused-function 
-Wno-microsoft-include)
+    target_compile_options(glu32 PRIVATE -Wno-deprecated-register 
-Wno-tautological-undefined-compare)
+endif()
+
 add_importlibs(glu32 opengl32 gdi32 msvcrt kernel32 ntdll)
 add_pch(glu32 precomp.h "${PCH_SKIP_SOURCE}")
 add_cd_file(TARGET glu32 DESTINATION reactos/system32 FOR all)
diff --git a/drivers/filesystems/ext2/CMakeLists.txt 
b/drivers/filesystems/ext2/CMakeLists.txt
index e07135b419d..4a79c51e139 100644
--- a/drivers/filesystems/ext2/CMakeLists.txt
+++ b/drivers/filesystems/ext2/CMakeLists.txt
@@ -88,26 +88,21 @@ list(APPEND SOURCE
 
 add_library(ext2fs MODULE ${SOURCE} ext2fs.rc)
 
-if(MSVC)
-    if (NOT CLANG)
-        # Disable warning C4101: 'i': unreferenced local variable
-        # Disable warning C4189: 'sbi': local variable is initialized but not 
referenced
-        # Disable warning C4267: '=': conversion from 'size_t' to 'USHORT', 
possible loss of data
-        target_compile_options(ext2fs PRIVATE /wd4101 /wd4189 /wd4267)
-    endif()
-else()
-    target_compile_options(ext2fs PRIVATE
-        -Wno-pointer-sign -Wno-unused-function
-        -Wno-unused-variable -Wno-missing-braces)
+if(CMAKE_C_COMPILER_ID STREQUAL "MSVC")
+    # Disable warning C4101: 'i': unreferenced local variable
+    # Disable warning C4189: 'sbi': local variable is initialized but not 
referenced
+    # Disable warning C4267: '=': conversion from 'size_t' to 'USHORT', 
possible loss of data
+    target_compile_options(ext2fs PRIVATE /wd4101 /wd4189 /wd4267)
 endif()
 
-if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
-    target_compile_options(ext2fs PRIVATE -Wno-unused-but-set-variable)
+if(CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID STREQUAL "Clang")
+    target_compile_options(ext2fs PRIVATE
+        -Wno-pointer-sign -Wno-unused-function -Wno-unused-variable 
-Wno-missing-braces -Wno-unused-but-set-variable)
 endif()
 
-if(CLANG)
+if(CMAKE_C_COMPILER_ID STREQUAL "Clang")
     target_compile_options(ext2fs PRIVATE
-        -Wno-unused-value -Wno-parentheses-equality
+        -Wno-parentheses-equality
         -Wno-incompatible-pointer-types-discards-qualifiers
         "-Wno-#pragma-messages;-Wno-cast-calling-convention")
 endif()
diff --git a/drivers/filesystems/fastfat_new/CMakeLists.txt 
b/drivers/filesystems/fastfat_new/CMakeLists.txt
index c425ff0ad3e..d00e6eca900 100644
--- a/drivers/filesystems/fastfat_new/CMakeLists.txt
+++ b/drivers/filesystems/fastfat_new/CMakeLists.txt
@@ -38,7 +38,7 @@ list(APPEND SOURCE
 add_library(fastfat MODULE ${SOURCE} fastfat.rc)
 set_module_type(fastfat kernelmodedriver)
 target_link_libraries(fastfat ${PSEH_LIB} memcmp)
-if(GDB AND NOT CLANG)
+if(GDB AND NOT CMAKE_C_COMPILER_ID STREQUAL "Clang")
     target_compile_options(fastfat PRIVATE -O0)
 endif()
 add_importlibs(fastfat ntoskrnl hal)
diff --git a/drivers/filesystems/nfs/CMakeLists.txt 
b/drivers/filesystems/nfs/CMakeLists.txt
index 10b71000757..9eb45900649 100644
--- a/drivers/filesystems/nfs/CMakeLists.txt
+++ b/drivers/filesystems/nfs/CMakeLists.txt
@@ -14,12 +14,14 @@ set_module_type(nfs41_driver kernelmodedriver)
 target_link_libraries(nfs41_driver ntoskrnl_vista rdbsslib rxce copysup memcmp 
${PSEH_LIB})
 add_importlibs(nfs41_driver ntoskrnl hal)
 
-if(GCC OR CLANG)
+if(CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID STREQUAL "Clang")
     target_compile_options(nfs41_driver PRIVATE "-Wno-switch")
-    if(CLANG)
-        target_compile_options(nfs41_driver PRIVATE "-Wno-unused-value")
-    endif()
 endif()
+
+if(CMAKE_C_COMPILER_ID STREQUAL "Clang")
+    target_compile_options(nfs41_driver PRIVATE "-Wno-unused-value")
+endif()
+
 set_property(TARGET nfs41_driver PROPERTY C_STANDARD 90)
 
 add_cd_file(TARGET nfs41_driver DESTINATION reactos/system32/drivers FOR all)
diff --git a/drivers/filesystems/udfs/CMakeLists.txt 
b/drivers/filesystems/udfs/CMakeLists.txt
index 1c4a396b879..b1bfdd9db84 100644
--- a/drivers/filesystems/udfs/CMakeLists.txt
+++ b/drivers/filesystems/udfs/CMakeLists.txt
@@ -41,19 +41,17 @@ list(APPEND SOURCE
 
 add_library(udfs MODULE ${SOURCE} udffs.rc)
 
-if(MSVC)
-    if(USE_CLANG_CL)
-        target_compile_options(udfs PRIVATE -Wno-extern-c-compat 
-Wno-unused-value)
-        target_compile_options(udfs PRIVATE 
-Wno-tautological-constant-out-of-range-compare)
-        target_compile_options(udfs PRIVATE 
-Wno-tautological-unsigned-zero-compare -Wno-self-assign)
-        target_compile_options(udfs PRIVATE -Wno-sometimes-uninitialized 
-Wno-parentheses-equality)
-    endif()
-endif()
-
 if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
     target_compile_options(udfs PRIVATE -Wno-unused-but-set-variable)
 endif()
 
+if(CMAKE_C_COMPILER_ID STREQUAL "Clang")
+    target_compile_options(udfs PRIVATE -Wno-extern-c-compat -Wno-unused-value)
+    target_compile_options(udfs PRIVATE 
-Wno-tautological-constant-out-of-range-compare)
+    target_compile_options(udfs PRIVATE 
-Wno-tautological-unsigned-zero-compare -Wno-self-assign)
+    target_compile_options(udfs PRIVATE -Wno-sometimes-uninitialized 
-Wno-parentheses-equality)
+endif()
+
 set_module_type(udfs kernelmodedriver)
 target_link_libraries(udfs ${PSEH_LIB})
 add_importlibs(udfs ntoskrnl hal)
diff --git a/drivers/storage/class/cdrom/CMakeLists.txt 
b/drivers/storage/class/cdrom/CMakeLists.txt
index d4bd2dd924c..fc04713730b 100644
--- a/drivers/storage/class/cdrom/CMakeLists.txt
+++ b/drivers/storage/class/cdrom/CMakeLists.txt
@@ -20,15 +20,12 @@ list(APPEND SOURCE
 add_library(cdrom MODULE ${SOURCE} cdrom.rc)
 set_module_type(cdrom kernelmodedriver)
 
-if(GCC OR CLANG)
+if(CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID STREQUAL "Clang")
     target_compile_options(cdrom PRIVATE -Wno-format -Wno-unused-variable 
-Wno-pointer-sign)
-endif()
-
-if(GCC)
     target_compile_options(cdrom PRIVATE -Wno-unknown-pragmas 
-Wno-incompatible-pointer-types -Wno-switch)
 endif()
 
-if(CLANG)
+if(CMAKE_C_COMPILER_ID STREQUAL "Clang")
     target_compile_options(cdrom PRIVATE -Wno-enum-conversion 
-Wno-tautological-constant-compare)
 endif()
 
diff --git a/drivers/storage/class/classpnp/CMakeLists.txt 
b/drivers/storage/class/classpnp/CMakeLists.txt
index a1cee352784..fadc6ff48c7 100644
--- a/drivers/storage/class/classpnp/CMakeLists.txt
+++ b/drivers/storage/class/classpnp/CMakeLists.txt
@@ -41,7 +41,7 @@ target_compile_definitions(classpnp PRIVATE
     CLASS_GLOBAL_BUFFERED_DEBUG_PRINT_BUFFER_SIZE=512
     CLASS_GLOBAL_BUFFERED_DEBUG_PRINT_BUFFERS=512)
 
-if(GCC)
+if(NOT MSVC)
     target_compile_options(classpnp PRIVATE -Wno-pointer-to-int-cast 
-Wno-switch)
 endif()
 
diff --git a/drivers/storage/class/disk/CMakeLists.txt 
b/drivers/storage/class/disk/CMakeLists.txt
index 68407eafe56..5250b8cdec3 100644
--- a/drivers/storage/class/disk/CMakeLists.txt
+++ b/drivers/storage/class/disk/CMakeLists.txt
@@ -16,11 +16,8 @@ target_compile_definitions(disk PUBLIC
     _WIN32_WINNT=0x602
     NTDDI_VERSION=0x06020000) # NTDDI_WIN8
 
-if(USE_CLANG_CL OR (NOT MSVC))
+if(CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID STREQUAL "Clang")
     target_compile_options(disk PRIVATE -Wno-format -Wno-pointer-sign)
-endif()
-
-if(GCC)
     target_compile_options(disk PRIVATE -Wno-pointer-to-int-cast -Wno-switch)
 endif()
 
diff --git a/drivers/storage/ide/uniata/CMakeLists.txt 
b/drivers/storage/ide/uniata/CMakeLists.txt
index 6b9cdcff5e9..4a78222a28b 100644
--- a/drivers/storage/ide/uniata/CMakeLists.txt
+++ b/drivers/storage/ide/uniata/CMakeLists.txt
@@ -21,21 +21,18 @@ list(APPEND SOURCE
 
 add_library(uniata MODULE ${SOURCE} idedma.rc)
 
-if(USE_CLANG_CL OR (NOT MSVC))
-    target_compile_options(uniata PRIVATE "-Wno-narrowing")
-    if(USE_CLANG_CL)
-        target_compile_options(uniata PRIVATE "-Wno-unused-const-variable")
-    endif()
-endif()
-
 if(MSVC)
     # Disable warning C4267: '=': conversion from 'size_t' to 'USHORT', 
possible loss of data
     # Disable warning C4838: conversion from 'int' to 'ULONG' requires a 
narrowing conversion
     target_compile_options(uniata PRIVATE /wd4267 /wd4838)
 endif()
 
-if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
-    target_compile_options(uniata PRIVATE -Wno-unused-but-set-variable)
+if(CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID STREQUAL "Clang")
+    target_compile_options(uniata PRIVATE -Wno-narrowing 
-Wno-unused-but-set-variable)
+endif()
+
+if(CMAKE_C_COMPILER_ID STREQUAL "Clang")
+    target_compile_options(uniata PRIVATE -Wno-unused-const-variable)
 endif()
 
 add_pch(uniata stdafx.h SOURCE)
diff --git a/drivers/wdm/audio/drivers/CMIDriver/CMakeLists.txt 
b/drivers/wdm/audio/drivers/CMIDriver/CMakeLists.txt
index eda3493b308..609babac1f4 100644
--- a/drivers/wdm/audio/drivers/CMIDriver/CMakeLists.txt
+++ b/drivers/wdm/audio/drivers/CMIDriver/CMakeLists.txt
@@ -26,7 +26,7 @@ target_link_libraries(cmipci stdunk libcntpr uuid)
 set_module_type(cmipci wdmdriver UNICODE)
 add_importlibs(cmipci portcls hal ntoskrnl)
 
-if(USE_CLANG_CL OR (NOT MSVC))
+if(CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID STREQUAL "Clang")
     target_compile_options(cmipci PRIVATE -Wno-write-strings -Wno-switch)
 endif()
 
diff --git a/modules/rostests/apitests/compiler/CMakeLists.txt 
b/modules/rostests/apitests/compiler/CMakeLists.txt
index 1d98f54ddf6..163a0220c03 100644
--- a/modules/rostests/apitests/compiler/CMakeLists.txt
+++ b/modules/rostests/apitests/compiler/CMakeLists.txt
@@ -1,5 +1,5 @@
 
-if (NOT (GCC AND (ARCH STREQUAL "amd64")))
+if (MSVC OR ARCH STREQUAL "i386")
     #FIXME _setjmp definitions in CRT headers is wrong
     add_subdirectory(ms)
     list(APPEND SOURCE ms_seh.c)
@@ -12,7 +12,7 @@ list(APPEND SOURCE
     testlist.c)
 
 add_executable(compiler_apitest ${SOURCE})
-if (NOT (GCC AND (ARCH STREQUAL "amd64")))
+if (MSVC OR ARCH STREQUAL "i386")
     target_link_libraries(compiler_apitest ms_seh_test)
 endif()
 target_link_libraries(compiler_apitest wine ${PSEH_LIB})
diff --git a/modules/rostests/apitests/crt/CMakeLists.txt 
b/modules/rostests/apitests/crt/CMakeLists.txt
index 7af9e3a2463..6220856065e 100644
--- a/modules/rostests/apitests/crt/CMakeLists.txt
+++ b/modules/rostests/apitests/crt/CMakeLists.txt
@@ -1,5 +1,5 @@
 
-if (GCC)
+if(CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID STREQUAL "Clang")
     add_compile_options(-fno-builtin)
 endif()
 
diff --git a/modules/rostests/winetests/advapi32/CMakeLists.txt 
b/modules/rostests/winetests/advapi32/CMakeLists.txt
index 34a3055167b..c6b8953189a 100644
--- a/modules/rostests/winetests/advapi32/CMakeLists.txt
+++ b/modules/rostests/winetests/advapi32/CMakeLists.txt
@@ -21,7 +21,7 @@ add_executable(advapi32_winetest
     ${SOURCE}
     ${PCH_SKIP_SOURCE})
 
-if(USE_CLANG_CL OR (NOT MSVC))
+if(CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID STREQUAL "Clang")
     target_compile_options(advapi32_winetest PRIVATE "-Wno-format")
 endif()
 
diff --git a/modules/rostests/winetests/kernel32/CMakeLists.txt 
b/modules/rostests/winetests/kernel32/CMakeLists.txt
index 44c24f653fb..862aaed9076 100644
--- a/modules/rostests/winetests/kernel32/CMakeLists.txt
+++ b/modules/rostests/winetests/kernel32/CMakeLists.txt
@@ -56,7 +56,7 @@ if(MSVC)
     endif()
 endif()
 
-if(USE_CLANG_CL OR (NOT MSVC))
+if(CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID STREQUAL "Clang")
     target_compile_options(kernel32_winetest PRIVATE "-Wno-format")
 endif()
 
diff --git a/modules/rostests/winetests/msvcrt/CMakeLists.txt 
b/modules/rostests/winetests/msvcrt/CMakeLists.txt
index f05f14bd28a..44f4b3bf9cb 100644
--- a/modules/rostests/winetests/msvcrt/CMakeLists.txt
+++ b/modules/rostests/winetests/msvcrt/CMakeLists.txt
@@ -27,11 +27,8 @@ target_compile_definitions(msvcrt_winetest PRIVATE
     _CRT_NONSTDC_NO_DEPRECATE
     __msvcrt_ulong=ULONG)
 
-if ((NOT MSVC) OR USE_CLANG_CL)
-    if (NOT USE_CLANG_CL)
-        target_compile_options(msvcrt_winetest PRIVATE 
-Wno-stringop-truncation)
-    endif()
-    target_compile_options(msvcrt_winetest PRIVATE -Wno-format)
+if(CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID STREQUAL "Clang")
+    target_compile_options(msvcrt_winetest PRIVATE -Wno-format 
-Wno-stringop-truncation)
 endif()
 
 set_module_type(msvcrt_winetest win32cui)
diff --git a/modules/rostests/winetests/ntdll/CMakeLists.txt 
b/modules/rostests/winetests/ntdll/CMakeLists.txt
index b835ed34331..c5a886481e7 100644
--- a/modules/rostests/winetests/ntdll/CMakeLists.txt
+++ b/modules/rostests/winetests/ntdll/CMakeLists.txt
@@ -40,7 +40,7 @@ if(MSVC AND ARCH STREQUAL "amd64")
     target_compile_options(ntdll_winetest PRIVATE /wd4334)
 endif()
 
-if(USE_CLANG_CL OR (NOT MSVC))
+if(CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID STREQUAL "Clang")
     target_compile_options(ntdll_winetest PRIVATE "-Wno-format")
 endif()
 
diff --git a/modules/rostests/winetests/rpcrt4/CMakeLists.txt 
b/modules/rostests/winetests/rpcrt4/CMakeLists.txt
index f764a4b89c7..753de69ef8b 100644
--- a/modules/rostests/winetests/rpcrt4/CMakeLists.txt
+++ b/modules/rostests/winetests/rpcrt4/CMakeLists.txt
@@ -40,11 +40,12 @@ endif()
 
 add_executable(rpcrt4_winetest ${SOURCE})
 
-if(USE_CLANG_CL OR (NOT MSVC))
+if(CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID STREQUAL "Clang")
     target_compile_options(rpcrt4_winetest PRIVATE "-Wno-format")
-    if(USE_CLANG_CL)
-        target_compile_options(rpcrt4_winetest PRIVATE 
"-Wno-cast-calling-convention")
-    endif()
+endif()
+
+if(CMAKE_C_COMPILER_ID STREQUAL "Clang")
+    target_compile_options(rpcrt4_winetest PRIVATE 
"-Wno-cast-calling-convention")
 endif()
 
 target_link_libraries(rpcrt4_winetest uuid wine ${PSEH_LIB})
diff --git a/modules/rostests/winetests/winmm/CMakeLists.txt 
b/modules/rostests/winetests/winmm/CMakeLists.txt
index c30a6b2a565..0d502f4f14a 100644
--- a/modules/rostests/winetests/winmm/CMakeLists.txt
+++ b/modules/rostests/winetests/winmm/CMakeLists.txt
@@ -14,7 +14,7 @@ list(APPEND SOURCE
 
 add_executable(winmm_winetest ${SOURCE})
 
-if(USE_CLANG_CL OR (NOT MSVC))
+if(CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID STREQUAL "Clang")
     target_compile_options(winmm_winetest PRIVATE "-Wno-format")
 endif()
 
diff --git a/modules/rostests/winetests/ws2_32/CMakeLists.txt 
b/modules/rostests/winetests/ws2_32/CMakeLists.txt
index 2229f5787aa..092a51e63ed 100644
--- a/modules/rostests/winetests/ws2_32/CMakeLists.txt
+++ b/modules/rostests/winetests/ws2_32/CMakeLists.txt
@@ -3,7 +3,7 @@ include_directories(BEFORE 
${REACTOS_SOURCE_DIR}/sdk/include/reactos/wine)
 
 add_executable(ws2_32_winetest protocol.c sock.c testlist.c)
 
-if(USE_CLANG_CL OR (NOT MSVC))
+if(CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID STREQUAL "Clang")
     target_compile_options(ws2_32_winetest PRIVATE "-Wno-format")
 endif()
 
diff --git a/ntoskrnl/CMakeLists.txt b/ntoskrnl/CMakeLists.txt
index 9109a7bc3c7..b9c51ab0c4a 100644
--- a/ntoskrnl/CMakeLists.txt
+++ b/ntoskrnl/CMakeLists.txt
@@ -1,18 +1,13 @@
 
 PROJECT(NTOS)
 
-if (GCC)
+if (CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID STREQUAL "Clang")
     # Enable this again. CORE-17637
     add_compile_options(-Wunused-result)
 endif()
 
 include(ntos.cmake)
 
-if(NOT MSVC)
-    # Make sure we don't duplicate some symbols
-    add_compile_options(-fno-common)
-endif()
-
 set(NTOSKRNL_SOURCE ${SOURCE})
 set(NTOSKRNL_ASM_SOURCE ${ASM_SOURCE})
 
diff --git a/sdk/cmake/config.cmake b/sdk/cmake/config.cmake
index 020f0c7eda4..5e6243dd35a 100644
--- a/sdk/cmake/config.cmake
+++ b/sdk/cmake/config.cmake
@@ -75,25 +75,6 @@ else()
 "Whether to compile for debugging.")
 endif()
 
-if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
-    set(GCC TRUE CACHE BOOL "The compiler is GCC")
-    set(CLANG FALSE CACHE BOOL "The compiler is LLVM Clang")
-elseif(CMAKE_C_COMPILER_ID STREQUAL "Clang")
-    # We can use LLVM Clang mimicking CL or GCC. Account for this
-    if (MSVC)
-        set(GCC FALSE CACHE BOOL "The compiler is GCC")
-    else()
-        set(GCC TRUE CACHE BOOL "The compiler is GCC")
-    endif()
-    set(CLANG TRUE CACHE BOOL "The compiler is LLVM Clang")
-elseif(MSVC) # aka CMAKE_C_COMPILER_ID STREQUAL "MSVC"
-    set(GCC FALSE CACHE BOOL "The compiler is GCC")
-    set(CLANG FALSE CACHE BOOL "The compiler is LLVM Clang")
-    # MSVC variable is already set by cmake
-else()
-    message("WARNING: the compiler has not been recognized")
-endif()
-
 if(MSVC)
     set(KDBG FALSE CACHE BOOL
 "Whether to compile in the integrated kernel debugger.")
@@ -102,7 +83,6 @@ if(MSVC)
     else()
         set(_WINKD_ TRUE CACHE BOOL "Whether to compile with the KD protocol.")
     endif()
-
 else()
     if(CMAKE_BUILD_TYPE STREQUAL "Release")
         set(KDBG FALSE CACHE BOOL "Whether to compile in the integrated kernel 
debugger.")
@@ -120,7 +100,7 @@ cmake_dependent_option(ISAPNP_ENABLE "Whether to enable the 
ISA PnP support." ON
 set(GENERATE_DEPENDENCY_GRAPH FALSE CACHE BOOL
 "Whether to create a GraphML dependency graph of DLLs.")
 
-if(MSVC)
+if(CMAKE_C_COMPILER_ID STREQUAL "MSVC")
     option(_PREFAST_ "Whether to enable PREFAST while compiling." OFF)
     option(_VS_ANALYZE_ "Whether to enable static analysis while compiling." 
OFF)
     # RTC are incompatible with compiler optimizations.
@@ -128,7 +108,7 @@ if(MSVC)
                            "CMAKE_BUILD_TYPE STREQUAL Debug" OFF)
 endif()
 
-if(GCC)
+if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
     option(STACK_PROTECTOR "Whether to enable the GCC stack checker while 
compiling" OFF)
 endif()
 
diff --git a/sdk/cmake/gcc.cmake b/sdk/cmake/gcc.cmake
index 076a9fc5731..5a37db32dea 100644
--- a/sdk/cmake/gcc.cmake
+++ b/sdk/cmake/gcc.cmake
@@ -485,12 +485,12 @@ 
add_compile_options("$<$<COMPILE_LANGUAGE:CXX>:$<IF:$<BOOL:$<TARGET_PROPERTY:WIT
 
add_compile_options("$<$<COMPILE_LANGUAGE:CXX>:$<IF:$<BOOL:$<TARGET_PROPERTY:WITH_CXX_EXCEPTIONS>>,-fexceptions,-fno-exceptions>>")
 
 # G++ shipped with ROSBE uses sjlj exceptions on i386. Tell Clang it is so
-if (CLANG AND (ARCH STREQUAL "i386"))
+if(CMAKE_C_COMPILER_ID STREQUAL "Clang" AND ARCH STREQUAL "i386")
     
add_compile_options("$<$<AND:$<COMPILE_LANGUAGE:CXX>,$<BOOL:$<TARGET_PROPERTY:WITH_CXX_EXCEPTIONS>>>:-fsjlj-exceptions>")
 endif()
 
 # Find default G++ libraries
-if (CLANG)
+if(CMAKE_C_COMPILER_ID STREQUAL "Clang")
     set(GXX_EXECUTABLE ${CMAKE_CXX_COMPILER_TARGET}-g++)
 else()
     set(GXX_EXECUTABLE ${CMAKE_CXX_COMPILER})
diff --git a/sdk/lib/3rdparty/freetype/CMakeLists.txt 
b/sdk/lib/3rdparty/freetype/CMakeLists.txt
index bac1f0bb249..e714504f97c 100644
--- a/sdk/lib/3rdparty/freetype/CMakeLists.txt
+++ b/sdk/lib/3rdparty/freetype/CMakeLists.txt
@@ -58,6 +58,8 @@ add_library(freetype ${SOURCE})
 if(CMAKE_C_COMPILER_ID STREQUAL "MSVC" AND ARCH STREQUAL "amd64")
     # error C4312: 'type cast': conversion from 'unsigned long' to 'void *' of 
greater size
     remove_target_compile_option(freetype "/we4312")
-elseif(GCC)
+endif()
+
+if(CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID STREQUAL "Clang")
     target_compile_options(freetype PRIVATE -fno-builtin-malloc)
 endif()
diff --git a/sdk/lib/3rdparty/libxml2/CMakeLists.txt 
b/sdk/lib/3rdparty/libxml2/CMakeLists.txt
index 5d7186e69b4..e56e434d3e8 100644
--- a/sdk/lib/3rdparty/libxml2/CMakeLists.txt
+++ b/sdk/lib/3rdparty/libxml2/CMakeLists.txt
@@ -64,7 +64,7 @@ list(APPEND SOURCE
 
 add_library(libxml2 ${SOURCE})
 
-if(MSVC AND (NOT USE_CLANG_CL))
+if(CMAKE_C_COMPILER_ID STREQUAL "MSVC")
     # Unreferenced local variable
     remove_target_compile_option(libxml2 "/we4101")
     target_compile_options(libxml2 PRIVATE "/wd4101")
diff --git a/sdk/lib/crt/msvcrtex.cmake b/sdk/lib/crt/msvcrtex.cmake
index 8f159a6b968..e8acbd7e2ca 100644
--- a/sdk/lib/crt/msvcrtex.cmake
+++ b/sdk/lib/crt/msvcrtex.cmake
@@ -26,7 +26,7 @@ if(ARCH STREQUAL "i386")
         math/i386/alldiv_asm.s
         math/i386/aulldiv_asm.s
         )
-    if (GCC AND CLANG)
+    if (CMAKE_C_COMPILER_ID STREQUAL "Clang" AND NOT MSVC)
         list(APPEND MSVCRTEX_ASM_SOURCE
             math/i386/ceilf.S
             math/i386/floorf.S)
@@ -77,7 +77,7 @@ if(MSVC AND (ARCH STREQUAL "i386"))
 endif()
 
 
-if(GCC OR CLANG)
+if(CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID STREQUAL "Clang")
     target_compile_options(msvcrtex PRIVATE $<$<COMPILE_LANGUAGE:C>:-Wno-main>)
     if(LTCG)
         target_compile_options(msvcrtex PRIVATE -fno-lto)
diff --git a/sdk/lib/drivers/wdf/CMakeLists.txt 
b/sdk/lib/drivers/wdf/CMakeLists.txt
index 1210764d036..206d70031ef 100644
--- a/sdk/lib/drivers/wdf/CMakeLists.txt
+++ b/sdk/lib/drivers/wdf/CMakeLists.txt
@@ -210,7 +210,7 @@ target_include_directories(wdf01000
 
 target_link_libraries(wdf01000 aux_klib ntoskrnl_vista ${PSEH_LIB})
 
-if(GCC)
+if(CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID STREQUAL "Clang")
     target_compile_options(wdf01000
         PRIVATE -Wno-write-strings -Wno-unknown-pragmas -Wno-switch
         PRIVATE $<$<COMPILE_LANGUAGE:CXX>:-Wno-reorder -Wno-invalid-offsetof 
-Wno-delete-non-virtual-dtor>)
diff --git a/sdk/lib/rtl/CMakeLists.txt b/sdk/lib/rtl/CMakeLists.txt
index 042e51e4e4a..a8d2fdbe348 100644
--- a/sdk/lib/rtl/CMakeLists.txt
+++ b/sdk/lib/rtl/CMakeLists.txt
@@ -5,7 +5,7 @@ add_definitions(
     -D_NTSYSTEM_
     -D_NTDLLBUILD_)
 
-if (GCC)
+if (CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID STREQUAL "Clang")
     # Enable this again. CORE-17637
     add_compile_options(-Wunused-result)
 endif()

Reply via email to