From 0856685456187c164da5a309150b73411693f78f Mon Sep 17 00:00:00 2001
From: Anonymous Maarten <[EMAIL REDACTED]>
Date: Tue, 29 Nov 2022 15:57:42 +0100
Subject: [PATCH] cmake: add -Wl,--no-undefined if available
---
CMakeLists.txt | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9ba35e4..27f64f8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -22,6 +22,7 @@ include(CheckCSourceCompiles)
include(CheckIncludeFile)
include(CheckCCompilerFlag)
include(CMakePackageConfigHelpers)
+include(CMakePushCheckState)
include(GNUInstallDirs)
include("${CMAKE_CURRENT_LIST_DIR}/cmake/sdlchecks.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/cmake/sdlplatform.cmake")
@@ -29,6 +30,17 @@ include("${CMAKE_CURRENT_LIST_DIR}/cmake/sdlplatform.cmake")
SDL_DetectCMakePlatform()
CheckOpenGLES()
+if(NOT MSVC AND NOT APPLE AND NOT OPENBSD)
+ cmake_push_check_state()
+ set(CMAKE_REQUIRED_FLAGS "-Wl,--no-undefined")
+ check_c_compiler_flag("" HAVE_NO_UNDEFINED)
+ cmake_pop_check_state()
+ if(HAVE_NO_UNDEFINED)
+ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--no-undefined")
+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined")
+ endif()
+endif()
+
set(CMAKE_SKIP_RPATH TRUE)
find_package(SDL3 QUIET)