Skip to content

Commit

Permalink
cmake: support find_package(SDL3_ttf) using SDL3_ttf from a build dir…
Browse files Browse the repository at this point in the history
…ectory
  • Loading branch information
madebr committed Mar 1, 2025
1 parent aaab1b9 commit f5eae1c
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 1 deletion.
3 changes: 3 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down Expand Up @@ -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}")
Expand Down
11 changes: 10 additions & 1 deletion cmake/SDL3_ttfConfig.cmake.in
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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)
Expand All @@ -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)

0 comments on commit f5eae1c

Please sign in to comment.