From 0003559adf590c2f41ebd76bdd0f5fc61ef07597 Mon Sep 17 00:00:00 2001
From: Anonymous Maarten <[EMAIL REDACTED]>
Date: Sat, 7 Jan 2023 18:08:46 +0100
Subject: [PATCH] cmake: handle macos current and compatibility version through
VERSION/SOVERSION properties
---
CMakeLists.txt | 16 ++++++++++++----
1 file changed, 12 insertions(+), 4 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5e297e8560fa..58af4a87e371 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -621,9 +621,10 @@ if(USE_GCC OR USE_CLANG)
endif()
cmake_pop_check_state()
- # FIXME: use generator expression instead of appending to EXTRA_LDFLAGS_BUILD
- list(APPEND EXTRA_LDFLAGS_BUILD "-Wl,-compatibility_version,${SDL_DYLIB_COMPAT_VERSION}")
- list(APPEND EXTRA_LDFLAGS_BUILD "-Wl,-current_version,${SDL_DYLIB_CURRENT_VERSION}")
+ if(CMAKE_VERSION VERSION_LESS "3.6")
+ list(APPEND EXTRA_LDFLAGS_BUILD "-Wl,-compatibility_version,${SDL_DYLIB_COMPAT_VERSION}")
+ list(APPEND EXTRA_LDFLAGS_BUILD "-Wl,-current_version,${SDL_DYLIB_CURRENT_VERSION}")
+ endif()
elseif(NOT OPENBSD)
cmake_push_check_state()
set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -Wl,--no-undefined")
@@ -3124,7 +3125,14 @@ if(SDL_SHARED)
endif()
if(APPLE)
set_target_properties(SDL3 PROPERTIES
- MACOSX_RPATH 1)
+ MACOSX_RPATH 1
+ )
+ if(NOT CMAKE_VERSION VERSION_LESS "3.6")
+ set_target_properties(SDL3 PROPERTIES
+ SOVERSION "${SDL_DYLIB_COMPAT_VERSION}" # SOVERSION corresponds to compatibility version
+ VERSION "${SDL_DYLIB_CURRENT_VERSION}" # VERSION corresponds to the current version
+ )
+ endif()
elseif(UNIX AND NOT ANDROID)
set_target_properties(SDL3 PROPERTIES
VERSION "${SDL_SO_VERSION}"