From a4d53e905f32d6a0c4ec1c1e0aad41979b03e764 Mon Sep 17 00:00:00 2001
From: Anonymous Maarten <[EMAIL REDACTED]>
Date: Tue, 28 Jan 2025 20:34:21 +0100
Subject: [PATCH] cmake: move plutosvg to the bottom
plutosvg depends on libfreetype
---
CMakeLists.txt | 82 +++++++++++++++++++++++------------------------
external/plutosvg | 2 +-
2 files changed, 42 insertions(+), 42 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index b8e3b3a3..a7e6173c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -232,47 +232,6 @@ set(PC_REQUIRES)
# Build freetype and harfbuzz as a static library
set(BUILD_SHARED_LIBS OFF)
-list(APPEND SDLTTF_BACKENDS PLUTOSVG)
-set(SDLTTF_PLUTOSVG_ENABLED FALSE)
-if(SDLTTF_PLUTOSVG)
- set(plutosvg_include_directories)
- set(plutosvg_link_libraries)
- set(plutosvg_sources)
- if(SDLTTF_PLUTOSVG_VENDORED)
- message(STATUS "${PROJECT_NAME}: Using vendored plutosvg library")
- set(BUILD_SHARED_LIBS OFF)
- set(PLUTOSVG_ENABLE_FREETYPE ON CACHE BOOL "plutosvg enable freetype" FORCE)
- set(PLUTOVG_BUILD_EXAMPLES OFF CACHE BOOL "plutosvg build examples" FORCE)
- sdl_check_project_in_subfolder(external/plutovg plutovg SDLTTF_VENDORED)
- add_subdirectory(external/plutovg EXCLUDE_FROM_ALL)
- sdl_check_project_in_subfolder(external/plutosvg plutosvg SDLTTF_VENDORED)
- add_subdirectory(external/plutosvg EXCLUDE_FROM_ALL)
- set(SDLTTF_PLUTOSVG_ENABLED TRUE)
- if(SDLTTF_BUILD_SHARED_LIBS)
- set(plutosvg_link_libraries plutosvg::plutosvg)
- else()
- set(plutosvg_include_directories $<TARGET_PROPERTY:plutosvg::plutosvg,INTERFACE_INCLUDE_DIRECTORIES>)
- set(plutosvg_sources $<TARGET_OBJECTS:plutosvg> $<TARGET_OBJECTS:plutovg>)
- endif()
- else()
- find_package(plutosvg ${find_package_strict_arg})
- if(plutosvg_FOUND)
- message(STATUS "${PROJECT_NAME}: Using system plutosvg library")
- set(plutosvg_link_libraries plutosvg::plutosvg)
- list(APPEND PC_REQUIRES plutosvg)
- set(SDLTTF_PLUTOSVG_ENABLED TRUE)
- else()
- message(${fatal_error} "plutosvg NOT found")
- endif()
- endif()
- if(SDLTTF_PLUTOSVG_ENABLED)
- target_compile_definitions(${sdl3_ttf_target_name} PRIVATE TTF_USE_PLUTOSVG=1)
- target_sources(${sdl3_ttf_target_name} PRIVATE ${plutosvg_sources})
- target_include_directories(${sdl3_ttf_target_name} PRIVATE ${plutosvg_include_directories})
- target_link_libraries(${sdl3_ttf_target_name} PRIVATE ${plutosvg_link_libraries})
- endif()
-endif()
-
list(APPEND SDLTTF_BACKENDS HARFBUZZ)
set(SDLTTF_HARFBUZZ_ENABLED FALSE)
if(SDLTTF_HARFBUZZ)
@@ -370,6 +329,47 @@ if(SDLTTF_FREETYPE)
set(SDLTTF_FREETYPE_ENABLED TRUE)
endif()
+list(APPEND SDLTTF_BACKENDS PLUTOSVG)
+set(SDLTTF_PLUTOSVG_ENABLED FALSE)
+if(SDLTTF_PLUTOSVG)
+ set(plutosvg_include_directories)
+ set(plutosvg_link_libraries)
+ set(plutosvg_sources)
+ if(SDLTTF_PLUTOSVG_VENDORED)
+ message(STATUS "${PROJECT_NAME}: Using vendored plutosvg library")
+ set(BUILD_SHARED_LIBS OFF)
+ set(PLUTOSVG_ENABLE_FREETYPE ON CACHE BOOL "plutosvg enable freetype" FORCE)
+ set(PLUTOVG_BUILD_EXAMPLES OFF CACHE BOOL "plutosvg build examples" FORCE)
+ sdl_check_project_in_subfolder(external/plutovg plutovg SDLTTF_VENDORED)
+ add_subdirectory(external/plutovg EXCLUDE_FROM_ALL)
+ sdl_check_project_in_subfolder(external/plutosvg plutosvg SDLTTF_VENDORED)
+ add_subdirectory(external/plutosvg EXCLUDE_FROM_ALL)
+ set(SDLTTF_PLUTOSVG_ENABLED TRUE)
+ if(SDLTTF_BUILD_SHARED_LIBS)
+ set(plutosvg_link_libraries plutosvg::plutosvg)
+ else()
+ set(plutosvg_include_directories $<TARGET_PROPERTY:plutosvg::plutosvg,INTERFACE_INCLUDE_DIRECTORIES>)
+ set(plutosvg_sources $<TARGET_OBJECTS:plutosvg> $<TARGET_OBJECTS:plutovg>)
+ endif()
+ else()
+ find_package(plutosvg ${find_package_strict_arg})
+ if(plutosvg_FOUND)
+ message(STATUS "${PROJECT_NAME}: Using system plutosvg library")
+ set(plutosvg_link_libraries plutosvg::plutosvg)
+ list(APPEND PC_REQUIRES plutosvg)
+ set(SDLTTF_PLUTOSVG_ENABLED TRUE)
+ else()
+ message(${fatal_error} "plutosvg NOT found")
+ endif()
+ endif()
+ if(SDLTTF_PLUTOSVG_ENABLED)
+ target_compile_definitions(${sdl3_ttf_target_name} PRIVATE TTF_USE_PLUTOSVG=1)
+ target_sources(${sdl3_ttf_target_name} PRIVATE ${plutosvg_sources})
+ target_include_directories(${sdl3_ttf_target_name} PRIVATE ${plutosvg_include_directories})
+ target_link_libraries(${sdl3_ttf_target_name} PRIVATE ${plutosvg_link_libraries})
+ endif()
+endif()
+
# Restore BUILD_SHARED_LIBS variable
set(BUILD_SHARED_LIBS ${SDLTTF_BUILD_SHARED_LIBS})
diff --git a/external/plutosvg b/external/plutosvg
index 978dfe7e..7969ed4c 160000
--- a/external/plutosvg
+++ b/external/plutosvg
@@ -1 +1 @@
-Subproject commit 978dfe7ef30ccab1360703e87320cb3913d6ce2c
+Subproject commit 7969ed4c642063ec4c04a71e14811bb5faee40d5