mirror of
https://git.eden-emu.dev/eden-emu/eden.git
synced 2026-08-14 04:24:31 +00:00
[cmake] Add ENABLE_WERROR option (#4080)
Should warnings be errors? that's a philosophical debate which I can only answer with "no, but if you think otherwise here is an option for you" Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4080 Reviewed-by: crueter <crueter@eden-emu.dev> Reviewed-by: MaranBr <maranbr@eden-emu.dev>
This commit is contained in:
@@ -79,6 +79,7 @@ set(YUZU_QT_MIRROR "" CACHE STRING "What mirror to use for downloading the bundl
|
|||||||
cmake_dependent_option(YUZU_USE_BUNDLED_QT "Download bundled Qt binaries" "${MSVC}" "ENABLE_QT" OFF)
|
cmake_dependent_option(YUZU_USE_BUNDLED_QT "Download bundled Qt binaries" "${MSVC}" "ENABLE_QT" OFF)
|
||||||
|
|
||||||
option(ENABLE_DEBUG_TOOLS "Enable debugging tools (maxwell disassembler, SPIRV translator, etc)" OFF)
|
option(ENABLE_DEBUG_TOOLS "Enable debugging tools (maxwell disassembler, SPIRV translator, etc)" OFF)
|
||||||
|
option(ENABLE_WERROR "Enable -Werror diagnostics" ON)
|
||||||
|
|
||||||
# non-linux bundled qt are static
|
# non-linux bundled qt are static
|
||||||
if (YUZU_USE_BUNDLED_QT AND (APPLE OR NOT UNIX))
|
if (YUZU_USE_BUNDLED_QT AND (APPLE OR NOT UNIX))
|
||||||
@@ -157,6 +158,19 @@ if (CXX_CLANG_CL)
|
|||||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-reserved-identifier>
|
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-reserved-identifier>
|
||||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-deprecated-declarations>
|
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-deprecated-declarations>
|
||||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-cast-function-type-mismatch>
|
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-cast-function-type-mismatch>
|
||||||
|
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-c99-extensions>
|
||||||
|
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-c++17-compat>
|
||||||
|
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-c++11-compat-reserved-user-defined-literal>
|
||||||
|
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-c++11-compat-deprecated-writable-strings>
|
||||||
|
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-c++11-compat-pedantic>
|
||||||
|
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-c++11-compat>
|
||||||
|
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-c++0x-compat>
|
||||||
|
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-c++98-c++11-compat-binary-literal>
|
||||||
|
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-c++98-compat-pedantic>
|
||||||
|
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-c++98-compat>
|
||||||
|
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-c99-compat>
|
||||||
|
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-c98-compat>
|
||||||
|
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-c99-extensions>
|
||||||
$<$<COMPILE_LANGUAGE:C,CXX>:/EHsc>)
|
$<$<COMPILE_LANGUAGE:C,CXX>:/EHsc>)
|
||||||
# REQUIRED CPU features IN Windows-amd64
|
# REQUIRED CPU features IN Windows-amd64
|
||||||
if (ARCHITECTURE_x86_64)
|
if (ARCHITECTURE_x86_64)
|
||||||
|
|||||||
@@ -46,6 +46,8 @@ These options control dependencies.
|
|||||||
- `YUZU_INSTALL_UDEV_RULES` (OFF) Install udev rules to enable hidraw access
|
- `YUZU_INSTALL_UDEV_RULES` (OFF) Install udev rules to enable hidraw access
|
||||||
- Needed for gyroscopes
|
- Needed for gyroscopes
|
||||||
- Only available on Linux
|
- Only available on Linux
|
||||||
|
- `ENABLE_DEBUG_TOOLS` (OFF) Enables debugging and development tools, see [tools](../tools/README.md).
|
||||||
|
- `ENABLE_WERROR` (ON) Enables warnings as errors (-Werror).
|
||||||
|
|
||||||
### Flavors
|
### Flavors
|
||||||
|
|
||||||
|
|||||||
+20
-8
@@ -155,12 +155,24 @@ else()
|
|||||||
$<$<COMPILE_LANGUAGE:CXX>:-fno-rtti>)
|
$<$<COMPILE_LANGUAGE:CXX>:-fno-rtti>)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if (ENABLE_WERROR)
|
||||||
|
add_compile_options(
|
||||||
|
$<$<COMPILE_LANGUAGE:C,CXX>:-Werror=all>
|
||||||
|
$<$<COMPILE_LANGUAGE:C,CXX>:-Werror=extra>
|
||||||
|
$<$<COMPILE_LANGUAGE:C,CXX>:-Werror=missing-declarations>
|
||||||
|
$<$<COMPILE_LANGUAGE:C,CXX>:-Werror=shadow>
|
||||||
|
$<$<COMPILE_LANGUAGE:C,CXX>:-Werror=unused>)
|
||||||
|
else()
|
||||||
|
add_compile_options(
|
||||||
|
$<$<COMPILE_LANGUAGE:C,CXX>:-Wall>
|
||||||
|
$<$<COMPILE_LANGUAGE:C,CXX>:-Wextra>
|
||||||
|
$<$<COMPILE_LANGUAGE:C,CXX>:-Wmissing-declarations>
|
||||||
|
$<$<COMPILE_LANGUAGE:C,CXX>:-Wshadow>
|
||||||
|
$<$<COMPILE_LANGUAGE:C,CXX>:-Wunused>
|
||||||
|
# Some compilers could particularly misbehave :)
|
||||||
|
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-error-all>)
|
||||||
|
endif()
|
||||||
add_compile_options(
|
add_compile_options(
|
||||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Werror=all>
|
|
||||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Werror=extra>
|
|
||||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Werror=missing-declarations>
|
|
||||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Werror=shadow>
|
|
||||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Werror=unused>
|
|
||||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-attributes>
|
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-attributes>
|
||||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-invalid-offsetof>
|
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-invalid-offsetof>
|
||||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-unused-parameter>
|
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-unused-parameter>
|
||||||
@@ -169,9 +181,9 @@ else()
|
|||||||
if (CXX_CLANG OR CXX_ICC OR CXX_APPLE) # Clang, AppleClang, or Intel C++
|
if (CXX_CLANG OR CXX_ICC OR CXX_APPLE) # Clang, AppleClang, or Intel C++
|
||||||
if (NOT MSVC)
|
if (NOT MSVC)
|
||||||
add_compile_options(
|
add_compile_options(
|
||||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Werror=shadow-uncaptured-local>
|
$<$<COMPILE_LANGUAGE:C,CXX>:-Wshadow-uncaptured-local>
|
||||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Werror=implicit-fallthrough>
|
$<$<COMPILE_LANGUAGE:C,CXX>:-Wimplicit-fallthrough>
|
||||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Werror=type-limits>)
|
$<$<COMPILE_LANGUAGE:C,CXX>:-Wtype-limits>)
|
||||||
endif()
|
endif()
|
||||||
add_compile_options(
|
add_compile_options(
|
||||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-braced-scalar-init>
|
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-braced-scalar-init>
|
||||||
|
|||||||
@@ -222,7 +222,7 @@ if (MSVC)
|
|||||||
)
|
)
|
||||||
else()
|
else()
|
||||||
target_compile_options(audio_core PRIVATE
|
target_compile_options(audio_core PRIVATE
|
||||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Werror=conversion>
|
$<$<COMPILE_LANGUAGE:C,CXX>:-Wconversion>
|
||||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-sign-conversion>)
|
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-sign-conversion>)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|||||||
@@ -220,7 +220,7 @@ endif()
|
|||||||
if(CXX_CLANG)
|
if(CXX_CLANG)
|
||||||
target_compile_options(common PRIVATE
|
target_compile_options(common PRIVATE
|
||||||
$<$<COMPILE_LANGUAGE:C,CXX>:-fsized-deallocation>
|
$<$<COMPILE_LANGUAGE:C,CXX>:-fsized-deallocation>
|
||||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Werror=unreachable-code-aggressive>)
|
$<$<COMPILE_LANGUAGE:C,CXX>:-Wunreachable-code-aggressive>)
|
||||||
target_compile_definitions(
|
target_compile_definitions(
|
||||||
common
|
common
|
||||||
PRIVATE
|
PRIVATE
|
||||||
|
|||||||
@@ -1199,7 +1199,7 @@ if (MSVC)
|
|||||||
)
|
)
|
||||||
else()
|
else()
|
||||||
target_compile_options(core PRIVATE
|
target_compile_options(core PRIVATE
|
||||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Werror=conversion>
|
$<$<COMPILE_LANGUAGE:C,CXX>:-Wconversion>
|
||||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-sign-conversion>
|
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-sign-conversion>
|
||||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-cast-function-type>
|
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-cast-function-type>
|
||||||
$<$<CXX_COMPILER_ID:Clang>:-fsized-deallocation>)
|
$<$<CXX_COMPILER_ID:Clang>:-fsized-deallocation>)
|
||||||
|
|||||||
@@ -151,7 +151,7 @@ if (MSVC)
|
|||||||
)
|
)
|
||||||
else()
|
else()
|
||||||
target_compile_options(hid_core PRIVATE
|
target_compile_options(hid_core PRIVATE
|
||||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Werror=conversion>
|
$<$<COMPILE_LANGUAGE:C,CXX>:-Wconversion>
|
||||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-sign-conversion>
|
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-sign-conversion>
|
||||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-cast-function-type>
|
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-cast-function-type>
|
||||||
$<$<CXX_COMPILER_ID:Clang>:-fsized-deallocation>)
|
$<$<CXX_COMPILER_ID:Clang>:-fsized-deallocation>)
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ if (MSVC)
|
|||||||
/we4800 # Implicit conversion from 'type' to bool. Possible information loss
|
/we4800 # Implicit conversion from 'type' to bool. Possible information loss
|
||||||
)
|
)
|
||||||
else()
|
else()
|
||||||
target_compile_options(input_common PRIVATE $<$<COMPILE_LANGUAGE:C,CXX>:-Werror=conversion>)
|
target_compile_options(input_common PRIVATE $<$<COMPILE_LANGUAGE:C,CXX>:-Wconversion>)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (ANDROID)
|
if (ANDROID)
|
||||||
|
|||||||
@@ -253,7 +253,7 @@ if (MSVC)
|
|||||||
)
|
)
|
||||||
else()
|
else()
|
||||||
target_compile_options(shader_recompiler PRIVATE
|
target_compile_options(shader_recompiler PRIVATE
|
||||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Werror=conversion>
|
$<$<COMPILE_LANGUAGE:C,CXX>:-Wconversion>
|
||||||
# Bracket depth determines maximum size of a fold expression in Clang since 9c9974c3ccb6.
|
# Bracket depth determines maximum size of a fold expression in Clang since 9c9974c3ccb6.
|
||||||
# And this in turns limits the size of a std::array.
|
# And this in turns limits the size of a std::array.
|
||||||
$<$<CXX_COMPILER_ID:Clang>:-fbracket-depth=1024>
|
$<$<CXX_COMPILER_ID:Clang>:-fbracket-depth=1024>
|
||||||
|
|||||||
@@ -373,7 +373,7 @@ else()
|
|||||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-shadow>
|
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-shadow>
|
||||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-unused-local-typedef>)
|
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-unused-local-typedef>)
|
||||||
else()
|
else()
|
||||||
target_compile_options(video_core PRIVATE $<$<COMPILE_LANGUAGE:C,CXX>:-Werror=conversion>)
|
target_compile_options(video_core PRIVATE $<$<COMPILE_LANGUAGE:C,CXX>:-Wconversion>)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
target_compile_options(video_core PRIVATE $<$<COMPILE_LANGUAGE:C,CXX>:-Wno-sign-conversion>)
|
target_compile_options(video_core PRIVATE $<$<COMPILE_LANGUAGE:C,CXX>:-Wno-sign-conversion>)
|
||||||
|
|||||||
Reference in New Issue
Block a user