From bcd671706928f9592320eb7ee598c356d061bc05 Mon Sep 17 00:00:00 2001 From: Kai Pastor Date: Fri, 31 Jan 2025 18:19:41 +0100 Subject: [PATCH 1/5] [plutovg] New port --- ports/plutovg/portfile.cmake | 26 ++++++++++++++++++++++++++ ports/plutovg/vcpkg.json | 17 +++++++++++++++++ versions/baseline.json | 4 ++++ versions/p-/plutovg.json | 9 +++++++++ 4 files changed, 56 insertions(+) create mode 100644 ports/plutovg/portfile.cmake create mode 100644 ports/plutovg/vcpkg.json create mode 100644 versions/p-/plutovg.json diff --git a/ports/plutovg/portfile.cmake b/ports/plutovg/portfile.cmake new file mode 100644 index 00000000000000..6a81e6b3820952 --- /dev/null +++ b/ports/plutovg/portfile.cmake @@ -0,0 +1,26 @@ +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO sammycage/plutovg + REF "v${VERSION}" + SHA512 e68e6c186d7577bd17e5c46c3109fbeaba0bd0698599c401d195430c3375170d5d5ed45379fdc2c6f1fea817e1ae01cddaf6b3de9130f5896b8adc9f2bab105b + HEAD_REF master + PATCHES +) + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + -DPLUTOVG_BUILD_EXAMPLES=OFF + -DBUILD_SHARED_LIBS=OFF +) +vcpkg_cmake_install() +vcpkg_copy_pdbs() +vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/plutovg) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/plutovg/plutovg.h" "defined(PLUTOVG_BUILD_STATIC)" "1") +endif() + +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") + +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") diff --git a/ports/plutovg/vcpkg.json b/ports/plutovg/vcpkg.json new file mode 100644 index 00000000000000..79f88718cc38b7 --- /dev/null +++ b/ports/plutovg/vcpkg.json @@ -0,0 +1,17 @@ +{ + "name": "plutovg", + "version": "0.0.12", + "description": " Tiny 2D vector graphics library in C", + "homepage": "https://github.com/sammycage/plutovg", + "license": "MIT", + "dependencies": [ + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ] +} diff --git a/versions/baseline.json b/versions/baseline.json index 9b16d64961a0aa..c401cd679f8eba 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -7108,6 +7108,10 @@ "baseline": "0.4.0", "port-version": 4 }, + "plutovg": { + "baseline": "0.0.12", + "port-version": 0 + }, "pmdk": { "baseline": "1.12.0", "port-version": 2 diff --git a/versions/p-/plutovg.json b/versions/p-/plutovg.json new file mode 100644 index 00000000000000..7a9ba42d410c1a --- /dev/null +++ b/versions/p-/plutovg.json @@ -0,0 +1,9 @@ +{ + "versions": [ + { + "git-tree": "4982b70bf616619bfd9f75a1c34376a6c7e9bea0", + "version": "0.0.12", + "port-version": 0 + } + ] +} From 9325851667ec3a7ec735da8cfebd61a6c1917d1e Mon Sep 17 00:00:00 2001 From: Kai Pastor Date: Fri, 31 Jan 2025 18:28:43 +0100 Subject: [PATCH 2/5] [lunasvg] Update to 3.1.1 --- ports/lunasvg/fix-cmake.patch | 28 ---------------------------- ports/lunasvg/portfile.cmake | 11 ++++------- ports/lunasvg/vcpkg.json | 3 ++- versions/baseline.json | 2 +- versions/l-/lunasvg.json | 5 +++++ 5 files changed, 12 insertions(+), 37 deletions(-) delete mode 100644 ports/lunasvg/fix-cmake.patch diff --git a/ports/lunasvg/fix-cmake.patch b/ports/lunasvg/fix-cmake.patch deleted file mode 100644 index 9e60400d1b1d47..00000000000000 --- a/ports/lunasvg/fix-cmake.patch +++ /dev/null @@ -1,28 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index ea4b2d2..f622d45 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -32,7 +32,11 @@ install(FILES - ) - - install(TARGETS lunasvg -+ EXPORT unofficial-lunasvg-config -+ PUBLIC_HEADER DESTINATION include -+ RUNTIME DESTINATION bin - LIBRARY DESTINATION ${LUNASVG_LIBDIR} - ARCHIVE DESTINATION ${LUNASVG_LIBDIR} - INCLUDES DESTINATION ${LUNASVG_INCDIR} - ) -+install(EXPORT unofficial-lunasvg-config NAMESPACE unofficial::lunasvg:: DESTINATION share/unofficial-lunasvg) -\ No newline at end of file -diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt -index de58954..74149dc 100644 ---- a/include/CMakeLists.txt -+++ b/include/CMakeLists.txt -@@ -1,4 +1,5 @@ - target_include_directories(lunasvg - PUBLIC -- "${CMAKE_CURRENT_LIST_DIR}" -+ $ -+ $ - ) diff --git a/ports/lunasvg/portfile.cmake b/ports/lunasvg/portfile.cmake index bfddc37e421a07..251f6de71cdf90 100644 --- a/ports/lunasvg/portfile.cmake +++ b/ports/lunasvg/portfile.cmake @@ -2,28 +2,25 @@ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO sammycage/lunasvg REF "v${VERSION}" - SHA512 4c771c292d73d4a1c1498011fe8969b9f04a58853d2977c3ce4895d5ad6c1a282c8bfba5e4f1d045e56e0820e57a3a21d3cc0d178efe6ad73c82121aa75b1cdf + SHA512 d79c7e35164df971a29145427316adca778416866635a97050f090ffdea1c313cba11255d9993ba7e4cbb3c7faa5b6ff0767e8c7739a680d34be377e6b9c5091 HEAD_REF master - PATCHES - fix-cmake.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS + -DCMAKE_REQUIRE_FIND_PACKAGE_plutovg=1 -DLUNASVG_BUILD_EXAMPLES=OFF - -DBUILD_SHARED_LIBS=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() -vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-lunasvg) +vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/lunasvg) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") - vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/lunasvg.h" "defined(LUNASVG_BUILD_STATIC)" "1") + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/lunasvg/lunasvg.h" "defined(LUNASVG_BUILD_STATIC)" "1") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") -file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") diff --git a/ports/lunasvg/vcpkg.json b/ports/lunasvg/vcpkg.json index ab5d407ed61d0b..40a8f67a2622ca 100644 --- a/ports/lunasvg/vcpkg.json +++ b/ports/lunasvg/vcpkg.json @@ -1,10 +1,11 @@ { "name": "lunasvg", - "version": "2.4.1", + "version": "3.1.1", "description": "lunasvg is a standalone SVG rendering library in C++", "homepage": "https://github.com/sammycage/lunasvg", "license": "MIT", "dependencies": [ + "plutovg", { "name": "vcpkg-cmake", "host": true diff --git a/versions/baseline.json b/versions/baseline.json index c401cd679f8eba..55757ca7ee0069 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -5693,7 +5693,7 @@ "port-version": 0 }, "lunasvg": { - "baseline": "2.4.1", + "baseline": "3.1.1", "port-version": 0 }, "luv": { diff --git a/versions/l-/lunasvg.json b/versions/l-/lunasvg.json index 96a51f1689c318..7151d1d8760b92 100644 --- a/versions/l-/lunasvg.json +++ b/versions/l-/lunasvg.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "c87cb314b0be4857b9e658c6e9a22bc28be5c089", + "version": "3.1.1", + "port-version": 0 + }, { "git-tree": "666a55527b76f4e912f24bf671c4f81893f197fc", "version": "2.4.1", From 33820b66a601e9cd6baafa7c4387a971c7aa1d4f Mon Sep 17 00:00:00 2001 From: Kai Pastor Date: Sat, 1 Feb 2025 09:36:59 +0100 Subject: [PATCH 3/5] [plutosvg] New port --- ports/plutosvg/portfile.cmake | 22 ++++++++++++++++++++++ ports/plutosvg/vcpkg.json | 18 ++++++++++++++++++ versions/baseline.json | 4 ++++ versions/p-/plutosvg.json | 9 +++++++++ 4 files changed, 53 insertions(+) create mode 100644 ports/plutosvg/portfile.cmake create mode 100644 ports/plutosvg/vcpkg.json create mode 100644 versions/p-/plutosvg.json diff --git a/ports/plutosvg/portfile.cmake b/ports/plutosvg/portfile.cmake new file mode 100644 index 00000000000000..f912491a7f8a3e --- /dev/null +++ b/ports/plutosvg/portfile.cmake @@ -0,0 +1,22 @@ +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO sammycage/plutosvg + REF "v${VERSION}" + SHA512 31f989aef2329ac41c19f8c4852f5a1d5c37dc7726192d230ba2a74262bdc6356facf3295b4d8a05f2be79ba313bcc3f01bd52e4024382c9ce09e259a5421440 + HEAD_REF master +) + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" +) +vcpkg_cmake_install() +vcpkg_copy_pdbs() +vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/plutosvg) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/plutosvg/plutosvg.h" "defined(PLUTOSVG_BUILD_STATIC)" "1") +endif() + +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") + +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") diff --git a/ports/plutosvg/vcpkg.json b/ports/plutosvg/vcpkg.json new file mode 100644 index 00000000000000..b381a7de2f0865 --- /dev/null +++ b/ports/plutosvg/vcpkg.json @@ -0,0 +1,18 @@ +{ + "name": "plutosvg", + "version": "0.0.4", + "description": "Tiny SVG rendering library in C", + "homepage": "https://github.com/sammycage/plutosvg", + "license": "MIT", + "dependencies": [ + "plutovg", + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ] +} diff --git a/versions/baseline.json b/versions/baseline.json index 7261ac0554dcd0..1943c7955f7faa 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -7108,6 +7108,10 @@ "baseline": "0.4.0", "port-version": 4 }, + "plutosvg": { + "baseline": "0.0.4", + "port-version": 0 + }, "plutovg": { "baseline": "0.0.12", "port-version": 0 diff --git a/versions/p-/plutosvg.json b/versions/p-/plutosvg.json new file mode 100644 index 00000000000000..9ba39f0a97e7b4 --- /dev/null +++ b/versions/p-/plutosvg.json @@ -0,0 +1,9 @@ +{ + "versions": [ + { + "git-tree": "08d8622e01e343badb679c27698af33b7044b1d4", + "version": "0.0.4", + "port-version": 0 + } + ] +} From f78c6c9f9e57d64cc09812adbcef9a31e7525ee6 Mon Sep 17 00:00:00 2001 From: Kai Pastor Date: Sat, 1 Feb 2025 09:47:16 +0100 Subject: [PATCH 4/5] [imgui] Switch to plutosvg Still doesn't build with lunasvg 3, and imgui misc/freetype/imgui_freetype.cpp states: 2024/10/17: added plutosvg support for SVG Fonts (seems faster/better than lunasvg). --- ports/imgui/CMakeLists.txt | 8 ++++---- ports/imgui/imgui-config.cmake.in | 4 ++-- ports/imgui/portfile.cmake | 2 +- ports/imgui/vcpkg.json | 7 ++++--- versions/baseline.json | 2 +- versions/i-/imgui.json | 5 +++++ 6 files changed, 17 insertions(+), 11 deletions(-) diff --git a/ports/imgui/CMakeLists.txt b/ports/imgui/CMakeLists.txt index 68a5c40c705caa..a6ca635c9db13b 100644 --- a/ports/imgui/CMakeLists.txt +++ b/ports/imgui/CMakeLists.txt @@ -116,10 +116,10 @@ if(IMGUI_FREETYPE) target_compile_definitions(${PROJECT_NAME} PUBLIC IMGUI_ENABLE_FREETYPE) endif() -if(IMGUI_FREETYPE_LUNASVG) - find_package(unofficial-lunasvg CONFIG REQUIRED) - target_link_libraries(${PROJECT_NAME} PUBLIC unofficial::lunasvg::lunasvg) - target_compile_definitions(${PROJECT_NAME} PUBLIC IMGUI_ENABLE_FREETYPE_LUNASVG) +if(IMGUI_FREETYPE_SVG) + find_package(plutosvg CONFIG REQUIRED) + target_link_libraries(${PROJECT_NAME} PUBLIC plutosvg::plutosvg) + target_compile_definitions(${PROJECT_NAME} PUBLIC IMGUI_ENABLE_FREETYPE_PLUTOSVG) endif() if(IMGUI_USE_WCHAR32) diff --git a/ports/imgui/imgui-config.cmake.in b/ports/imgui/imgui-config.cmake.in index a996b04c00b06b..8c10b8b4998474 100644 --- a/ports/imgui/imgui-config.cmake.in +++ b/ports/imgui/imgui-config.cmake.in @@ -26,8 +26,8 @@ if (@IMGUI_FREETYPE@) find_dependency(freetype CONFIG) endif() -if (@IMGUI_FREETYPE_LUNASVG@) - find_dependency(unofficial-lunasvg CONFIG) +if (@IMGUI_FREETYPE_SVG@) + find_dependency(plutosvg CONFIG) endif() if (@IMGUI_BUILD_ALLEGRO5_BINDING@) diff --git a/ports/imgui/portfile.cmake b/ports/imgui/portfile.cmake index 448784f008ed60..7a7790a09e890a 100644 --- a/ports/imgui/portfile.cmake +++ b/ports/imgui/portfile.cmake @@ -40,7 +40,7 @@ vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS vulkan-binding IMGUI_BUILD_VULKAN_BINDING win32-binding IMGUI_BUILD_WIN32_BINDING freetype IMGUI_FREETYPE - freetype-lunasvg IMGUI_FREETYPE_LUNASVG + freetype-svg IMGUI_FREETYPE_SVG wchar32 IMGUI_USE_WCHAR32 test-engine IMGUI_TEST_ENGINE ) diff --git a/ports/imgui/vcpkg.json b/ports/imgui/vcpkg.json index 787c1600d90bdb..8ab72f5d891008 100644 --- a/ports/imgui/vcpkg.json +++ b/ports/imgui/vcpkg.json @@ -1,6 +1,7 @@ { "name": "imgui", "version": "1.91.8", + "port-version": 1, "description": "Bloat-free Immediate Mode Graphical User interface for C++ with minimal dependencies.", "homepage": "https://github.com/ocornut/imgui", "license": "MIT", @@ -50,8 +51,8 @@ "freetype" ] }, - "freetype-lunasvg": { - "description": "Add support to render OpenType SVG fonts using LunaSVG", + "freetype-svg": { + "description": "Add support to render OpenType SVG fonts", "dependencies": [ { "name": "imgui", @@ -59,7 +60,7 @@ "freetype" ] }, - "lunasvg" + "plutosvg" ] }, "glfw-binding": { diff --git a/versions/baseline.json b/versions/baseline.json index 1943c7955f7faa..170aa9186c44b7 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -3682,7 +3682,7 @@ }, "imgui": { "baseline": "1.91.8", - "port-version": 0 + "port-version": 1 }, "imgui-node-editor": { "baseline": "0.9.3", diff --git a/versions/i-/imgui.json b/versions/i-/imgui.json index 3d2869c4688e88..a653ac33774e09 100644 --- a/versions/i-/imgui.json +++ b/versions/i-/imgui.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "0acf8f3c1aefea0176cdb6e5a610bbeaf2d610f6", + "version": "1.91.8", + "port-version": 1 + }, { "git-tree": "7da1879e3d83f8699c2be2dfb1553db32e033d42", "version": "1.91.8", From 80c8bdfbf60f8e86ba454738b48f5639df23a7ad Mon Sep 17 00:00:00 2001 From: Kai Pastor Date: Wed, 5 Feb 2025 21:59:28 +0100 Subject: [PATCH 5/5] Fixup --- ports/plutosvg/find-package-plutovg.diff | 13 +++++++++++++ ports/plutosvg/portfile.cmake | 4 ++++ ports/plutovg/portfile.cmake | 2 -- versions/p-/plutosvg.json | 2 +- versions/p-/plutovg.json | 2 +- 5 files changed, 19 insertions(+), 4 deletions(-) create mode 100644 ports/plutosvg/find-package-plutovg.diff diff --git a/ports/plutosvg/find-package-plutovg.diff b/ports/plutosvg/find-package-plutovg.diff new file mode 100644 index 00000000000000..fba20764afedc5 --- /dev/null +++ b/ports/plutosvg/find-package-plutovg.diff @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index c83a15d..8abc9be 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -14,7 +14,7 @@ FetchContent_Declare(plutovg + FIND_PACKAGE_ARGS 0.0.3 + ) + +-FetchContent_MakeAvailable(plutovg) ++find_package(plutovg REQUIRED) + + set(plutosvg_sources source/plutosvg.c) + set(plutosvg_headers source/plutosvg.h) diff --git a/ports/plutosvg/portfile.cmake b/ports/plutosvg/portfile.cmake index f912491a7f8a3e..0287b9bb2efb55 100644 --- a/ports/plutosvg/portfile.cmake +++ b/ports/plutosvg/portfile.cmake @@ -4,10 +4,14 @@ vcpkg_from_github( REF "v${VERSION}" SHA512 31f989aef2329ac41c19f8c4852f5a1d5c37dc7726192d230ba2a74262bdc6356facf3295b4d8a05f2be79ba313bcc3f01bd52e4024382c9ce09e259a5421440 HEAD_REF master + PATCHES + find-package-plutovg.diff ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + -DPLUTOSVG_BUILD_EXAMPLES=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() diff --git a/ports/plutovg/portfile.cmake b/ports/plutovg/portfile.cmake index 6a81e6b3820952..2263d02908671b 100644 --- a/ports/plutovg/portfile.cmake +++ b/ports/plutovg/portfile.cmake @@ -4,14 +4,12 @@ vcpkg_from_github( REF "v${VERSION}" SHA512 e68e6c186d7577bd17e5c46c3109fbeaba0bd0698599c401d195430c3375170d5d5ed45379fdc2c6f1fea817e1ae01cddaf6b3de9130f5896b8adc9f2bab105b HEAD_REF master - PATCHES ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DPLUTOVG_BUILD_EXAMPLES=OFF - -DBUILD_SHARED_LIBS=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() diff --git a/versions/p-/plutosvg.json b/versions/p-/plutosvg.json index 9ba39f0a97e7b4..9c3ac5314a086f 100644 --- a/versions/p-/plutosvg.json +++ b/versions/p-/plutosvg.json @@ -1,7 +1,7 @@ { "versions": [ { - "git-tree": "08d8622e01e343badb679c27698af33b7044b1d4", + "git-tree": "4c6ae6d002c88567fb9e7e4d88fd586e18b33660", "version": "0.0.4", "port-version": 0 } diff --git a/versions/p-/plutovg.json b/versions/p-/plutovg.json index 7a9ba42d410c1a..fdc74a8cc4abbf 100644 --- a/versions/p-/plutovg.json +++ b/versions/p-/plutovg.json @@ -1,7 +1,7 @@ { "versions": [ { - "git-tree": "4982b70bf616619bfd9f75a1c34376a6c7e9bea0", + "git-tree": "ccdaf45cf0cc6c8c2a8763e0f442979fce2605bf", "version": "0.0.12", "port-version": 0 }