Skip to content

Commit f5eae1c

Browse files
committed
cmake: support find_package(SDL3_ttf) using SDL3_ttf from a build directory
1 parent aaab1b9 commit f5eae1c

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

CMakeLists.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -417,6 +417,7 @@ if(SDLTTF_INSTALL)
417417
endif()
418418

419419
configure_package_config_file(cmake/SDL3_ttfConfig.cmake.in SDL3_ttfConfig.cmake
420+
NO_SET_AND_CHECK_MACRO
420421
INSTALL_DESTINATION "${SDLTTF_INSTALL_CMAKEDIR}"
421422
)
422423
write_basic_package_version_file("${PROJECT_BINARY_DIR}/SDL3_ttfConfigVersion.cmake"
@@ -446,6 +447,8 @@ if(SDLTTF_INSTALL)
446447
COMPONENT devel
447448
)
448449

450+
export(TARGETS ${sdl3_ttf_target_name} NAMESPACE "SDL3_ttf::" FILE "${sdl3_ttf_target_name}-targets.cmake")
451+
449452
if(SDLTTF_RELOCATABLE)
450453
file(RELATIVE_PATH SDL_PATH_PREFIX_RELATIVE_TO_PKGCONFIG "${CMAKE_INSTALL_PREFIX}/${SDLTTF_PKGCONFIG_INSTALLDIR}" "${CMAKE_INSTALL_PREFIX}")
451454
string(REGEX REPLACE "[/]+$" "" SDL_PATH_PREFIX_RELATIVE_TO_PKGCONFIG "${SDL_PATH_PREFIX_RELATIVE_TO_PKGCONFIG}")

cmake/SDL3_ttfConfig.cmake.in

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,13 @@ set(SDLTTF_FREETYPE @SDLTTF_FREETYPE_ENABLED@)
1717
set(SDLTTF_HARFBUZZ_REQUIRED_VERSION @HARFBUZZ_REQUIRED_VERSION@)
1818
set(SDLTTF_SDL3_REQUIRED_VERSION @SDL_REQUIRED_VERSION@)
1919

20+
set(SDL3_ttf_SDL3_ttf-shared_FOUND FALSE)
2021
if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/SDL3_ttf-shared-targets.cmake")
2122
include("${CMAKE_CURRENT_LIST_DIR}/SDL3_ttf-shared-targets.cmake")
23+
set(SDL3_ttf_SDL3_ttf-shared_FOUND TRUE)
2224
endif()
2325

26+
set(SDL3_ttf_SDL3_ttf-static_FOUND FALSE)
2427
if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/SDL3_ttf-static-targets.cmake")
2528
if(SDLTTF_VENDORED)
2629
if(SDLTTF_HARFBUZZ AND NOT MSVC)
@@ -57,6 +60,7 @@ if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/SDL3_ttf-static-targets.cmake")
5760
endif()
5861

5962
include("${CMAKE_CURRENT_LIST_DIR}/SDL3_ttf-static-targets.cmake")
63+
set(SDL3_ttf_SDL3_ttf-static_FOUND TRUE)
6064
endif()
6165

6266
function(_sdl_create_target_alias_compat NEW_TARGET TARGET)
@@ -73,8 +77,13 @@ endfunction()
7377
if(NOT TARGET SDL3_ttf::SDL3_ttf)
7478
if(TARGET SDL3_ttf::SDL3_ttf-shared)
7579
_sdl_create_target_alias_compat(SDL3_ttf::SDL3_ttf SDL3_ttf::SDL3_ttf-shared)
76-
else()
80+
elseif(TARGET SDL3_ttf::SDL3_ttf-static)
7781
_sdl_create_target_alias_compat(SDL3_ttf::SDL3_ttf SDL3_ttf::SDL3_ttf-static)
7882
endif()
7983
endif()
8084

85+
if(NOT SDL3_ttf_COMPONENTS AND NOT TARGET SDL3_ttf::SDL3_ttf-shared AND NOT TARGET SDL3_ttf::SDL3_ttf-static)
86+
set(SDL3_ttf_FOUND FALSE)
87+
endif()
88+
@PACKAGE_INIT@
89+
check_required_components(SDL3_ttf)

0 commit comments

Comments
 (0)