aboutsummaryrefslogtreecommitdiffhomepage
path: root/externals/CMakeLists.txt
diff options
context:
space:
mode:
authorcomex <[email protected]>2023-08-20 13:05:49 -0700
committerLiam <[email protected]>2023-08-25 19:22:31 -0400
commit91eb5afd0b7c75213763d379638bac6d53548557 (patch)
tree3574c1aa4075518bbf3b0f96c262f16ae0f5a0c5 /externals/CMakeLists.txt
parentbc4e58eb5180a1755d76a24ddc7684cc5d70f2b1 (diff)
downloadyuzu-mainline-91eb5afd0b7c75213763d379638bac6d53548557.tar.gz
yuzu-mainline-91eb5afd0b7c75213763d379638bac6d53548557.zip
Warnings cleanup for GCC 13 and Clang 16
Note: For GCC there are still a huge number of `-Warray-bounds` warnings coming from `externals/dynarmic`. I could have added a workaround in `externals/CMakeLists.txt` similar to what this PR does for other externals, but given Dynarmic's close affiliation with Yuzu, it would be better to fix it upstream. Besides that, on my machine, this makes the build warning-free except for some warnings from glslangValidator and AutoMoc. Details: - Disable some warnings in externals. - Disable `-Wnullability-completeness`, which is a Clang warning triggered by the Vulkan SDK where if any pointers in the header are marked _Nullable, it wants all pointers to be marked _Nullable or _Nonnull. Most of them are, but some aren't. Who knows why. - `src/web_service/verify_user_jwt.cpp`: Disable another warning when including `jwt.hpp`. - `src/input_common/input_poller.cpp`: Add missing `override` specifiers. - src/common/swap.h: Remove redundant `operator&`. In general, this file declares three overloads of each operator. Using `+` as an example, the overloads are: - a member function for `swapped_t + integer` - a member function for `swapped_t + swapped_t` - a free function for `integer + swapped_t` But for `operator&`, there was an additional free function for `swapped_t + integer`, which was redundant with the member function. This caused a GCC warning saying "ISO C++ says that these are ambiguous".
Diffstat (limited to 'externals/CMakeLists.txt')
-rw-r--r--externals/CMakeLists.txt10
1 files changed, 10 insertions, 0 deletions
diff --git a/externals/CMakeLists.txt b/externals/CMakeLists.txt
index 1f7cd598e..3a389485b 100644
--- a/externals/CMakeLists.txt
+++ b/externals/CMakeLists.txt
@@ -42,6 +42,9 @@ endif()
# mbedtls
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>)
# MicroProfile
add_library(microprofile INTERFACE)
@@ -94,6 +97,10 @@ if (ENABLE_CUBEB AND NOT TARGET cubeb::cubeb)
set(BUILD_TOOLS OFF)
add_subdirectory(cubeb)
add_library(cubeb::cubeb ALIAS cubeb)
+ if (NOT MSVC)
+ target_compile_options(speex PRIVATE -Wno-sign-compare)
+ target_compile_options(cubeb PRIVATE -Wno-implicit-const-int-float-conversion)
+ endif()
endif()
# DiscordRPC
@@ -151,6 +158,9 @@ endif()
if (NOT TARGET LLVM::Demangle)
add_library(demangle demangle/ItaniumDemangle.cpp)
target_include_directories(demangle PUBLIC ./demangle)
+ if (NOT MSVC)
+ target_compile_options(demangle PRIVATE -Wno-deprecated-declarations) # std::is_pod
+ endif()
add_library(LLVM::Demangle ALIAS demangle)
endif()