From 62e6dcadbd3800f4c18d0fcc6cbf2d1497e65617 Mon Sep 17 00:00:00 2001 From: Thomas Rohloff Date: Wed, 25 Jun 2025 20:53:18 +0200 Subject: [PATCH] Correctly split common and arch specific flags Signed-off-by: Thomas Rohloff --- CMakeLists.txt | 112 ++++++++++--------------------------------------- 1 file changed, 23 insertions(+), 89 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 120d049bc..7af763a11 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -97,16 +97,26 @@ endif() ################################################################################ # Global configuration types ################################################################################ -if (CMAKE_SYSTEM_NAME STREQUAL "NintendoSwitch") -set(CMAKE_C_FLAGS_DEBUG "-g -ffast-math -DDEBUG") -set(CMAKE_CXX_FLAGS_DEBUG "-g -ffast-math -DDEBUG") -set(CMAKE_C_FLAGS_RELEASE "-O3 -ffast-math -DNDEBUG") -set(CMAKE_CXX_FLAGS_RELEASE "-O3 -ffast-math -DNDEBUG") -else() -set(CMAKE_C_FLAGS_RELEASE "-O2 -DNDEBUG") -set(CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG") -set(CMAKE_OBJCXX_FLAGS_RELEASE "-O2 -DNDEBUG") -endif() +set(COMMON_FLAGS "-Wall -Wextra -Wno-error \ + -Wno-return-type \ + -Wno-unused-parameter \ + -Wno-unused-function \ + -Wno-unused-variable \ + -Wno-missing-field-initializers \ + -Wno-parentheses \ + -Wno-narrowing \ + -Wno-missing-braces \ + -Wno-int-conversion \ + -fpermissive \ + -ffast-math" +) +set(COMMON_C_FLAGS "${COMMON_FLAGS} -Werror-implicit-function-declaration -Wno-incompatible-pointer-types") +set(COMMON_CXX_FLAGS "${COMMON_FLAGS} -Wno-c++11-narrowing -Wno-deprecated-enum-enum-conversion") + +set(CMAKE_C_FLAGS_DEBUG "-g -DDEBUG ${COMMON_C_FLAGS}") +set(CMAKE_CXX_FLAGS_DEBUG "-g -DDEBUG ${COMMON_CXX_FLAGS}") +set(CMAKE_C_FLAGS_RELEASE "-O3 -DNDEBUG ${COMMON_C_FLAGS}") +set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG ${COMMON_CXX_FLAGS}") # Set game compilation version set(VERSION us) @@ -552,26 +562,6 @@ endif() if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang|AppleClang") if (CMAKE_SYSTEM_NAME STREQUAL "Darwin" OR CMAKE_SYSTEM_NAME STREQUAL "iOS") target_compile_options(${PROJECT_NAME} PRIVATE - -Wall -Wextra -Wno-error - -Wno-return-type - -Wno-unused-parameter - -Wno-unused-function - -Wno-unused-variable - -Wno-missing-field-initializers - -Wno-parentheses - -Wno-narrowing - -Wno-missing-braces - -Wno-int-conversion - $<$: - -Werror-implicit-function-declaration - -Wno-incompatible-pointer-types - -fpermissive - > - $<$:-fpermissive> - $<$: - -Wno-c++11-narrowing - -Wno-deprecated-enum-enum-conversion - > -pthread ) @@ -580,76 +570,20 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang|AppleClang") ) elseif (CMAKE_SYSTEM_NAME STREQUAL "NintendoSwitch") target_compile_options(${PROJECT_NAME} PRIVATE - -Wall -Wextra -Wno-error - -Wno-return-type - -Wno-unused-parameter - -Wno-unused-function - -Wno-unused-variable - -Wno-missing-field-initializers - -Wno-parentheses - -Wno-narrowing - -Wno-missing-braces - -Wno-int-conversion - $<$: - -Werror-implicit-function-declaration - -Wno-incompatible-pointer-types - -fpermissive - > - $<$:-fpermissive> - $<$: - -Wno-c++11-narrowing - -Wno-deprecated-enum-enum-conversion - > -pthread ) target_link_options(${PROJECT_NAME} PRIVATE -pthread ) - elseif (CMAKE_SYSTEM_NAME STREQUAL "CafeOS") - target_compile_options(${PROJECT_NAME} PRIVATE - -O2 - - # disable some warnings to not clutter output - -Wno-multichar - -Wno-return-type - -Wno-narrowing - -Wno-switch-outside-range - $<$: - -Werror-implicit-function-declaration - -Wno-incompatible-pointer-types - -Wno-discarded-array-qualifiers - -Wno-discarded-qualifiers - -Wno-int-conversion - -Wno-builtin-declaration-mismatch - -Wno-switch-unreachable - -Wno-stringop-overflow - > - ) - else() + elseif (NOT CMAKE_SYSTEM_NAME STREQUAL "CafeOS") if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64") - set(CPU_OPTION -msse2 -mfpmath=sse) + set(CPU_OPTION -msse2 -mfpmath=sse) endif() target_compile_options(${PROJECT_NAME} PRIVATE - -Wall -Wextra -Wno-error - -Wno-unused-parameter - -Wno-unused-function - -Wno-unused-variable - -Wno-missing-field-initializers - -Wno-parentheses - -Wno-narrowing - -Wno-missing-braces - -Wno-int-conversion - $<$: - -Werror-implicit-function-declaration - -Wno-incompatible-pointer-types - -fpermissive - > - $<$:-fpermissive> - $<$:-Wno-deprecated-enum-enum-conversion> -pthread - ${CPU_OPTION} + ${CPU_OPTION} ) target_link_options(${PROJECT_NAME} PRIVATE