From f5eae1cf3b76670554d4409191f493f6bb9f7042 Mon Sep 17 00:00:00 2001
From: Anonymous Maarten <[EMAIL REDACTED]>
Date: Sat, 1 Mar 2025 18:42:46 +0100
Subject: [PATCH] cmake: support find_package(SDL3_ttf) using SDL3_ttf from a
build directory
---
CMakeLists.txt | 3 +++
cmake/SDL3_ttfConfig.cmake.in | 11 ++++++++++-
2 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6af148fa..5cdedaf7 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -417,6 +417,7 @@ if(SDLTTF_INSTALL)
endif()
configure_package_config_file(cmake/SDL3_ttfConfig.cmake.in SDL3_ttfConfig.cmake
+ NO_SET_AND_CHECK_MACRO
INSTALL_DESTINATION "${SDLTTF_INSTALL_CMAKEDIR}"
)
write_basic_package_version_file("${PROJECT_BINARY_DIR}/SDL3_ttfConfigVersion.cmake"
@@ -446,6 +447,8 @@ if(SDLTTF_INSTALL)
COMPONENT devel
)
+ export(TARGETS ${sdl3_ttf_target_name} NAMESPACE "SDL3_ttf::" FILE "${sdl3_ttf_target_name}-targets.cmake")
+
if(SDLTTF_RELOCATABLE)
file(RELATIVE_PATH SDL_PATH_PREFIX_RELATIVE_TO_PKGCONFIG "${CMAKE_INSTALL_PREFIX}/${SDLTTF_PKGCONFIG_INSTALLDIR}" "${CMAKE_INSTALL_PREFIX}")
string(REGEX REPLACE "[/]+$" "" SDL_PATH_PREFIX_RELATIVE_TO_PKGCONFIG "${SDL_PATH_PREFIX_RELATIVE_TO_PKGCONFIG}")
diff --git a/cmake/SDL3_ttfConfig.cmake.in b/cmake/SDL3_ttfConfig.cmake.in
index fc575e02..4600afd8 100644
--- a/cmake/SDL3_ttfConfig.cmake.in
+++ b/cmake/SDL3_ttfConfig.cmake.in
@@ -17,10 +17,13 @@ set(SDLTTF_FREETYPE @SDLTTF_FREETYPE_ENABLED@)
set(SDLTTF_HARFBUZZ_REQUIRED_VERSION @HARFBUZZ_REQUIRED_VERSION@)
set(SDLTTF_SDL3_REQUIRED_VERSION @SDL_REQUIRED_VERSION@)
+set(SDL3_ttf_SDL3_ttf-shared_FOUND FALSE)
if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/SDL3_ttf-shared-targets.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/SDL3_ttf-shared-targets.cmake")
+ set(SDL3_ttf_SDL3_ttf-shared_FOUND TRUE)
endif()
+set(SDL3_ttf_SDL3_ttf-static_FOUND FALSE)
if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/SDL3_ttf-static-targets.cmake")
if(SDLTTF_VENDORED)
if(SDLTTF_HARFBUZZ AND NOT MSVC)
@@ -57,6 +60,7 @@ if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/SDL3_ttf-static-targets.cmake")
endif()
include("${CMAKE_CURRENT_LIST_DIR}/SDL3_ttf-static-targets.cmake")
+ set(SDL3_ttf_SDL3_ttf-static_FOUND TRUE)
endif()
function(_sdl_create_target_alias_compat NEW_TARGET TARGET)
@@ -73,8 +77,13 @@ endfunction()
if(NOT TARGET SDL3_ttf::SDL3_ttf)
if(TARGET SDL3_ttf::SDL3_ttf-shared)
_sdl_create_target_alias_compat(SDL3_ttf::SDL3_ttf SDL3_ttf::SDL3_ttf-shared)
- else()
+ elseif(TARGET SDL3_ttf::SDL3_ttf-static)
_sdl_create_target_alias_compat(SDL3_ttf::SDL3_ttf SDL3_ttf::SDL3_ttf-static)
endif()
endif()
+if(NOT SDL3_ttf_COMPONENTS AND NOT TARGET SDL3_ttf::SDL3_ttf-shared AND NOT TARGET SDL3_ttf::SDL3_ttf-static)
+ set(SDL3_ttf_FOUND FALSE)
+endif()
+@PACKAGE_INIT@
+check_required_components(SDL3_ttf)