cmake: fix detection of library functions when -Werror is enabled. (Reference issue: https://github.com/libsdl-org/SDL/issues/7011)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 32e9dff..ef6e20d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -483,26 +483,6 @@ set_option(SDL_INSTALL_TESTS "Install test-cases" OFF)
set(HAVE_STATIC_PIC "${SDL_STATIC_PIC}")
-if(SDL_WERROR)
- if(MSVC)
- cmake_push_check_state(RESET)
- check_c_compiler_flag(/WX HAVE_WX)
- if(HAVE_WX)
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /WX")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /WX")
- endif()
- elseif(USE_GCC OR USE_CLANG)
- cmake_push_check_state(RESET)
- check_c_compiler_flag(-Werror HAVE_WERROR)
- if(HAVE_WERROR)
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror")
- set(CMAKE_OBJC_FLAGS "${CMAKE_OBJC_FLAGS} -Werror")
- endif()
- cmake_pop_check_state()
- endif()
-endif()
-
if(SDL_HIDAPI)
if(HIDAPI_ONLY_LIBUSB)
set(SDL_HIDAPI_LIBUSB ON CACHE BOOL "" FORCE)
@@ -2943,6 +2923,26 @@ if(NOT SDLMAIN_SOURCES)
file(GLOB SDLMAIN_SOURCES ${SDL2_SOURCE_DIR}/src/main/dummy/*.c)
endif()
+if(SDL_WERROR)
+ if(MSVC)
+ cmake_push_check_state(RESET)
+ check_c_compiler_flag(/WX HAVE_WX)
+ if(HAVE_WX)
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /WX")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /WX")
+ endif()
+ elseif(USE_GCC OR USE_CLANG)
+ cmake_push_check_state(RESET)
+ check_c_compiler_flag(-Werror HAVE_WERROR)
+ if(HAVE_WERROR)
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror")
+ set(CMAKE_OBJC_FLAGS "${CMAKE_OBJC_FLAGS} -Werror")
+ endif()
+ cmake_pop_check_state()
+ endif()
+endif()
+
# Append the -MMD -MT flags
# if(DEPENDENCY_TRACKING)
# if(COMPILER_IS_GNUCC)