SDL_ttf: cmake: configure external subprojects in different directory (28abf)

From 28abfe10e357526b6cca967bfaa4e88fe81bb99f Mon Sep 17 00:00:00 2001
From: Anonymous Maarten <[EMAIL REDACTED]>
Date: Wed, 2 Apr 2025 18:44:10 +0200
Subject: [PATCH] cmake: configure external subprojects in different directory

(This avoid in-tree builds of external projects when doing in-tree SDL builds)

(cherry picked from commit 6d671428f1ee9a562f7f0f2513940f73798addcf)
---
 CMakeLists.txt | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 85d5e4bd..2aac8d89 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -269,7 +269,7 @@ if(SDLTTF_HARFBUZZ)
         set(HAVE_FT_DONE_MM_VAR 1 CACHE BOOL "FT_Done_MM_Var" FORCE)
         set(HAVE_FT_GET_TRANSFORM 1 CACHE BOOL "FT_Get_Transform" FORCE)
         sdl_check_project_in_subfolder(external/harfbuzz harfbuzz SDLTTF_VENDORED)
-        add_subdirectory(external/harfbuzz EXCLUDE_FROM_ALL)
+        add_subdirectory(external/harfbuzz external/harfbuzz-build EXCLUDE_FROM_ALL)
         # harfbuzz is a c++ project, enable c++ here to ensure linking to the c++ standard library.
         enable_language(CXX)
         if(NOT TARGET harfbuzz::harfbuzz)
@@ -344,7 +344,7 @@ if(SDLTTF_FREETYPE)
         if(NOT EXISTS "${PROJECT_SOURCE_DIR}/external/freetype/CMakeLists.txt")
             message(FATAL_ERROR "No freetype sources found. Install a freetype development package or run the download script in the external folder.")
         endif()
-        add_subdirectory(external/freetype EXCLUDE_FROM_ALL)
+        add_subdirectory(external/freetype external/freetype-build EXCLUDE_FROM_ALL)
         if(NOT TARGET Freetype::Freetype)
             add_library(Freetype::Freetype ALIAS freetype)
         endif()
@@ -377,9 +377,9 @@ if(SDLTTF_PLUTOSVG)
         set(PLUTOSVG_BUILD_EXAMPLES OFF CACHE BOOL "plutosvg build examples" FORCE)
         set(PLUTOVG_BUILD_EXAMPLES OFF CACHE BOOL "plutovg build examples" FORCE)
         sdl_check_project_in_subfolder(external/plutovg plutovg SDLTTF_VENDORED)
-        add_subdirectory(external/plutovg EXCLUDE_FROM_ALL)
+        add_subdirectory(external/plutovg external/plutovg-build EXCLUDE_FROM_ALL)
         sdl_check_project_in_subfolder(external/plutosvg plutosvg SDLTTF_VENDORED)
-        add_subdirectory(external/plutosvg EXCLUDE_FROM_ALL)
+        add_subdirectory(external/plutosvg external/plutosvg-guild EXCLUDE_FROM_ALL)
         set(SDLTTF_PLUTOSVG_ENABLED TRUE)
         if(SDLTTF_BUILD_SHARED_LIBS)
             set(plutosvg_link_libraries plutosvg::plutosvg)