From 32c453a5f13f8e1dd11a91aa2de5e3fd6dc3e87c Mon Sep 17 00:00:00 2001
From: comex <comexk@gmail.com>
Date: Sun, 20 Aug 2023 14:52:58 -0700
Subject: [PATCH] Avoid `$<CXX_COMPILER_ID:Clang>` because it doesn't include
 AppleClang.

---
 externals/CMakeLists.txt |  8 +++++---
 src/CMakeLists.txt       | 20 +++++++++++---------
 2 files changed, 16 insertions(+), 12 deletions(-)

diff --git a/externals/CMakeLists.txt b/externals/CMakeLists.txt
index 3a389485b0..4a8e1cee97 100644
--- a/externals/CMakeLists.txt
+++ b/externals/CMakeLists.txt
@@ -43,8 +43,8 @@ endif()
 add_subdirectory(mbedtls)
 target_include_directories(mbedtls PUBLIC ./mbedtls/include)
 target_compile_options(mbedcrypto PRIVATE
-    $<$<CXX_COMPILER_ID:Clang>:-Wno-unused-but-set-variable>
-    $<$<CXX_COMPILER_ID:Clang>:-Wno-string-concatenation>)
+    -Wno-unused-but-set-variable
+    -Wno-string-concatenation)
 
 # MicroProfile
 add_library(microprofile INTERFACE)
@@ -98,7 +98,9 @@ if (ENABLE_CUBEB AND NOT TARGET cubeb::cubeb)
     add_subdirectory(cubeb)
     add_library(cubeb::cubeb ALIAS cubeb)
     if (NOT MSVC)
-        target_compile_options(speex PRIVATE -Wno-sign-compare)
+        if (TARGET speex)
+            target_compile_options(speex PRIVATE -Wno-sign-compare)
+        endif()
         target_compile_options(cubeb PRIVATE -Wno-implicit-const-int-float-conversion)
     endif()
 endif()
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 015b98d601..6068c7a1ff 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -114,17 +114,19 @@ else()
         -Wno-attributes
         -Wno-invalid-offsetof
         -Wno-unused-parameter
-
-        $<$<CXX_COMPILER_ID:Clang>:-Wno-braced-scalar-init>
-        $<$<CXX_COMPILER_ID:Clang>:-Wno-unused-private-field>
-        $<$<CXX_COMPILER_ID:Clang>:-Wno-nullability-completeness>
-        $<$<CXX_COMPILER_ID:Clang>:-Werror=shadow-uncaptured-local>
-        $<$<CXX_COMPILER_ID:Clang>:-Werror=implicit-fallthrough>
-        $<$<CXX_COMPILER_ID:Clang>:-Werror=type-limits>
-        $<$<CXX_COMPILER_ID:AppleClang>:-Wno-braced-scalar-init>
-        $<$<CXX_COMPILER_ID:AppleClang>:-Wno-unused-private-field>
     )
 
+    if (CMAKE_CXX_COMPILER_ID MATCHES Clang) # Clang or AppleClang
+        add_compile_options(
+            -Wno-braced-scalar-init
+            -Wno-unused-private-field
+            -Wno-nullability-completeness
+            -Werror=shadow-uncaptured-local
+            -Werror=implicit-fallthrough
+            -Werror=type-limits
+        )
+    endif()
+
     if (ARCHITECTURE_x86_64)
         add_compile_options("-mcx16")
         add_compile_options("-fwrapv")