From 2e42c7020e6c67ea55edee384710332c0d442a18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Verschelde?= Date: Fri, 1 Dec 2023 10:45:02 +0100 Subject: [PATCH] CMake: Remove hardcoded warnings list and forcing -Werror on library builds The CMake buildsystem should be completely reviewed to properly match what is done by SCons, instead of making its own arbitrary decisions on how godot-cpp should be compiled. Currently the SCons setup doesn't include warning options, so CMake shouldn't either. Options similar to upstream Godot's SCons setup could be added, and then replicated for CMake. (cherry picked from commit 41517eacb1115e5020af8c305492f6c77ffa89bc) --- CMakeLists.txt | 11 ----------- test/CMakeLists.txt | 22 ---------------------- 2 files changed, 33 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1076e8f2..a9603ab6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -47,11 +47,6 @@ option(GODOT_CPP_WARNING_AS_ERROR "Treat warnings as errors" OFF) # Add path to modules list( APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/" ) -# Check if we are building ourself or being included -if(${PROJECT_NAME} STREQUAL ${CMAKE_PROJECT_NAME}) - set(GODOT_CPP_BUILDING_SELF ON) -endif() - # Set some helper variables for readability set( compiler_is_clang "$,$>" ) set( compiler_is_gnu "$" ) @@ -158,12 +153,6 @@ add_library(godot::cpp ALIAS ${PROJECT_NAME}) include(GodotCompilerWarnings) -# Treat warnings as errors if we are building ourself -if(GODOT_CPP_BUILDING_SELF) - unset( GODOT_CPP_WARNING_AS_ERROR CACHE ) - set_warning_as_error() -endif() - target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_17 diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 9d692e6a..a17b9aac 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -59,31 +59,9 @@ if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") else() -#elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") - # using Clang -#elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") - # using GCC and maybe MinGW? - set(GODOT_LINKER_FLAGS "-static-libgcc -static-libstdc++ -Wl,-R,'$$ORIGIN'") - # Hmm.. maybe to strikt? set(GODOT_COMPILE_FLAGS "-fPIC -g -Wwrite-strings") - set(GODOT_COMPILE_FLAGS "${GODOT_COMPILE_FLAGS} -Wchar-subscripts -Wcomment -Wdisabled-optimization") - set(GODOT_COMPILE_FLAGS "${GODOT_COMPILE_FLAGS} -Wformat -Wformat=2 -Wformat-security -Wformat-y2k") - set(GODOT_COMPILE_FLAGS "${GODOT_COMPILE_FLAGS} -Wimport -Winit-self -Winline -Winvalid-pch -Werror") - set(GODOT_COMPILE_FLAGS "${GODOT_COMPILE_FLAGS} -Wmissing-braces -Wmissing-format-attribute") - set(GODOT_COMPILE_FLAGS "${GODOT_COMPILE_FLAGS} -Wmissing-include-dirs -Wmissing-noreturn -Wpacked -Wpointer-arith") - set(GODOT_COMPILE_FLAGS "${GODOT_COMPILE_FLAGS} -Wredundant-decls -Wreturn-type -Wsequence-point") - set(GODOT_COMPILE_FLAGS "${GODOT_COMPILE_FLAGS} -Wswitch -Wswitch-enum -Wtrigraphs") - set(GODOT_COMPILE_FLAGS "${GODOT_COMPILE_FLAGS} -Wuninitialized -Wunknown-pragmas -Wunreachable-code -Wunused-label") - set(GODOT_COMPILE_FLAGS "${GODOT_COMPILE_FLAGS} -Wunused-value -Wvariadic-macros -Wvolatile-register-var -Wno-error=attributes") - - # -Wshadow -Wextra -Wall -Weffc++ -Wfloat-equal -Wstack-protector -Wunused-parameter -Wsign-compare -Wunused-variable -Wcast-align - # -Wunused-function -Wstrict-aliasing -Wstrict-aliasing=2 -Wmissing-field-initializers - - if(NOT CMAKE_SYSTEM_NAME STREQUAL "Android") - set(GODOT_COMPILE_FLAGS "${GODOT_COMPILE_FLAGS} -Wno-ignored-attributes") - endif() if(CMAKE_BUILD_TYPE MATCHES Debug) set(GODOT_COMPILE_FLAGS "${GODOT_COMPILE_FLAGS} -fno-omit-frame-pointer -O0")