From 17ebbab6a97e168b6d74232c0eeb1066c62d0ecf Mon Sep 17 00:00:00 2001 From: tartanpaint <35690467+tartanpaint@users.noreply.github.com> Date: Tue, 14 Jul 2026 11:35:24 +0100 Subject: [PATCH 01/36] [libjpeg-turbo] Patch dependencies for 3.2.0 --- ...ITH_SYSTEM_SPNG-and-WITH_SYSTEM_ZLIB.patch | 66 +++++++++++++++++++ ports/libjpeg-turbo/portfile.cmake | 4 ++ ports/libjpeg-turbo/vcpkg.json | 5 +- 3 files changed, 74 insertions(+), 1 deletion(-) create mode 100644 ports/libjpeg-turbo/0001-Fixes-for-WITH_SYSTEM_SPNG-and-WITH_SYSTEM_ZLIB.patch diff --git a/ports/libjpeg-turbo/0001-Fixes-for-WITH_SYSTEM_SPNG-and-WITH_SYSTEM_ZLIB.patch b/ports/libjpeg-turbo/0001-Fixes-for-WITH_SYSTEM_SPNG-and-WITH_SYSTEM_ZLIB.patch new file mode 100644 index 00000000000000..2a20d93363aa54 --- /dev/null +++ b/ports/libjpeg-turbo/0001-Fixes-for-WITH_SYSTEM_SPNG-and-WITH_SYSTEM_ZLIB.patch @@ -0,0 +1,66 @@ +From 64831068d6260f1c631c0f0166e6d19899be1fa5 Mon Sep 17 00:00:00 2001 +From: tartanpaint <35690467+tartanpaint@users.noreply.github.com> +Date: Tue, 14 Jul 2026 10:07:55 +0100 +Subject: [PATCH] Fixes for WITH_SYSTEM_SPNG and WITH_SYSTEM_ZLIB + +--- + CMakeLists.txt | 22 ++++++++++++++++++---- + release/Config.cmake.in | 11 +++++++++++ + 2 files changed, 29 insertions(+), 4 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index f1442728..7d8f9e7a 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -735,10 +735,24 @@ if(WITH_TURBOJPEG OR WITH_TOOLS OR WITH_TESTS) + boolean_number(WITH_SYSTEM_SPNG) + report_option(WITH_SYSTEM_SPNG "System-supplied libspng") + if(WITH_SYSTEM_SPNG) +- include(FindPkgConfig) +- pkg_check_modules(spng REQUIRED spng IMPORTED_TARGET) +- unset(SPNG_STATIC_SOURCES) +- set(SPNG_LIBRARY PkgConfig::spng) ++ find_package(SPNG CONFIG QUIET) ++ if(SPNG_FOUND) ++ unset(SPNG_STATIC_SOURCES) ++ if(TARGET spng::spng) ++ set(SPNG_LIBRARY spng::spng) ++ elseif(TARGET spng::spng_shared) ++ set(SPNG_LIBRARY spng::spng_shared) ++ elseif(TARGET spng::spng_static) ++ set(SPNG_LIBRARY spng::spng_static) ++ else() ++ message(FATAL_ERROR "SPNG_FOUND is true, but no recognized targets were found.") ++ endif() ++ else() ++ include(FindPkgConfig) ++ pkg_search_module(spng REQUIRED IMPORTED_TARGET libspng_static spng_static libspng spng) ++ unset(SPNG_STATIC_SOURCES) ++ set(SPNG_LIBRARY PkgConfig::spng) ++ endif() + else() + option(WITH_SYSTEM_ZLIB + "Build ${CMAKE_PROJECT_NAME} against the system-supplied zlib implementation rather than the implementation in the ${CMAKE_PROJECT_NAME} source tree" +diff --git a/release/Config.cmake.in b/release/Config.cmake.in +index 0c1ba8aa..639cb477 100644 +--- a/release/Config.cmake.in ++++ b/release/Config.cmake.in +@@ -1,4 +1,15 @@ + @PACKAGE_INIT@ + ++include(CMakeFindDependencyMacro) ++ ++# If we built with system SPNG/ZLIB, the downstream consumers need them too ++if(@WITH_SYSTEM_SPNG@) ++ find_dependency(SPNG) ++endif() ++ ++if(@WITH_SYSTEM_ZLIB@ OR @WITH_SYSTEM_SPNG@) ++ find_dependency(ZLIB) ++endif() ++ + include("${CMAKE_CURRENT_LIST_DIR}/@CMAKE_PROJECT_NAME@Targets.cmake") + check_required_components("@CMAKE_PROJECT_NAME@") +-- +2.47.1.windows.1 + diff --git a/ports/libjpeg-turbo/portfile.cmake b/ports/libjpeg-turbo/portfile.cmake index 4aae3d80d50381..f3b335cebd6cef 100644 --- a/ports/libjpeg-turbo/portfile.cmake +++ b/ports/libjpeg-turbo/portfile.cmake @@ -14,6 +14,8 @@ vcpkg_from_github( add-options-for-docs-headers.patch # workaround for vcpkg bug see #5697 on github for more information workaround_cmake_system_processor.patch + # workaround for libjpeg-turbo issue https://github.com/libjpeg-turbo/libjpeg-turbo/issues/901 + 0001-Fixes-for-WITH_SYSTEM_SPNG-and-WITH_SYSTEM_ZLIB.patch ) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "wasm32") @@ -48,6 +50,8 @@ vcpkg_cmake_configure( -DENABLE_STATIC=${ENABLE_STATIC} -DENABLE_SHARED=${ENABLE_SHARED} -DWITH_CRT_DLL=${WITH_CRT_DLL} + -DWITH_SYSTEM_SPNG=ON + -DWITH_SYSTEM_ZLIB=ON ${FEATURE_OPTIONS} ${LIBJPEGTURBO_SIMD} MAYBE_UNUSED_VARIABLES diff --git a/ports/libjpeg-turbo/vcpkg.json b/ports/libjpeg-turbo/vcpkg.json index bda0aee6275d12..02896538032000 100644 --- a/ports/libjpeg-turbo/vcpkg.json +++ b/ports/libjpeg-turbo/vcpkg.json @@ -1,6 +1,7 @@ { "name": "libjpeg-turbo", "version": "3.2.0", + "port-version": 1, "description": "libjpeg-turbo is a JPEG image codec that uses SIMD instructions (MMX, SSE2, NEON, AltiVec) to accelerate baseline JPEG compression and decompression on x86, x86-64, ARM, and PowerPC systems.", "homepage": "https://libjpeg-turbo.org/", "license": "BSD-3-Clause", @@ -12,7 +13,9 @@ { "name": "vcpkg-cmake-config", "host": true - } + }, + "libspng", + "zlib" ], "features": { "jpeg7": { From 41fb84eafcd0fb037a5b53149850d80237d1fae6 Mon Sep 17 00:00:00 2001 From: tartanpaint <35690467+tartanpaint@users.noreply.github.com> Date: Tue, 14 Jul 2026 11:39:12 +0100 Subject: [PATCH 02/36] Fix manifest file formatting --- ports/libjpeg-turbo/vcpkg.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ports/libjpeg-turbo/vcpkg.json b/ports/libjpeg-turbo/vcpkg.json index 02896538032000..7c83082d58e18e 100644 --- a/ports/libjpeg-turbo/vcpkg.json +++ b/ports/libjpeg-turbo/vcpkg.json @@ -6,6 +6,7 @@ "homepage": "https://libjpeg-turbo.org/", "license": "BSD-3-Clause", "dependencies": [ + "libspng", { "name": "vcpkg-cmake", "host": true @@ -14,7 +15,6 @@ "name": "vcpkg-cmake-config", "host": true }, - "libspng", "zlib" ], "features": { From 91a63a5e5c829671f3cc7b348dad0cb2ece97554 Mon Sep 17 00:00:00 2001 From: tartanpaint <35690467+tartanpaint@users.noreply.github.com> Date: Tue, 14 Jul 2026 11:40:03 +0100 Subject: [PATCH 03/36] Update version database --- versions/baseline.json | 2 +- versions/l-/libjpeg-turbo.json | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/versions/baseline.json b/versions/baseline.json index d216d77babba2a..c71441b56c5152 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -5222,7 +5222,7 @@ }, "libjpeg-turbo": { "baseline": "3.2.0", - "port-version": 0 + "port-version": 1 }, "libjuice": { "baseline": "1.7.2", diff --git a/versions/l-/libjpeg-turbo.json b/versions/l-/libjpeg-turbo.json index aa01d6175f8e41..cd538e0d6bcb12 100644 --- a/versions/l-/libjpeg-turbo.json +++ b/versions/l-/libjpeg-turbo.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "cc4dcc7a33e609522277b6eeb3ddee32d67705a9", + "version": "3.2.0", + "port-version": 1 + }, { "git-tree": "c7d2d8cbb868863a698862a0da02b4af225f3c72", "version": "3.2.0", From 5f44fec323808fb18bddbdaccc5c5e9223d685a8 Mon Sep 17 00:00:00 2001 From: tartanpaint <35690467+tartanpaint@users.noreply.github.com> Date: Wed, 15 Jul 2026 10:17:04 +0100 Subject: [PATCH 04/36] Updated libjpeg-turbo patch with Pkg-Config fixes --- ...ITH_SYSTEM_SPNG-and-WITH_SYSTEM_ZLIB.patch | 76 +++++++++++++++++-- 1 file changed, 68 insertions(+), 8 deletions(-) diff --git a/ports/libjpeg-turbo/0001-Fixes-for-WITH_SYSTEM_SPNG-and-WITH_SYSTEM_ZLIB.patch b/ports/libjpeg-turbo/0001-Fixes-for-WITH_SYSTEM_SPNG-and-WITH_SYSTEM_ZLIB.patch index 2a20d93363aa54..c8e3a09aabeec2 100644 --- a/ports/libjpeg-turbo/0001-Fixes-for-WITH_SYSTEM_SPNG-and-WITH_SYSTEM_ZLIB.patch +++ b/ports/libjpeg-turbo/0001-Fixes-for-WITH_SYSTEM_SPNG-and-WITH_SYSTEM_ZLIB.patch @@ -1,20 +1,30 @@ -From 64831068d6260f1c631c0f0166e6d19899be1fa5 Mon Sep 17 00:00:00 2001 +From d8d95916fe397f9af8b4c98d27005190089da9b3 Mon Sep 17 00:00:00 2001 From: tartanpaint <35690467+tartanpaint@users.noreply.github.com> Date: Tue, 14 Jul 2026 10:07:55 +0100 Subject: [PATCH] Fixes for WITH_SYSTEM_SPNG and WITH_SYSTEM_ZLIB --- - CMakeLists.txt | 22 ++++++++++++++++++---- - release/Config.cmake.in | 11 +++++++++++ - 2 files changed, 29 insertions(+), 4 deletions(-) + CMakeLists.txt | 51 +++++++++++++++++++++++++++++++------- + release/Config.cmake.in | 11 ++++++++ + release/libjpeg.pc.in | 2 ++ + release/libturbojpeg.pc.in | 2 ++ + 4 files changed, 57 insertions(+), 9 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt -index f1442728..7d8f9e7a 100644 +index f1442728..9f90dd39 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -735,10 +735,24 @@ if(WITH_TURBOJPEG OR WITH_TOOLS OR WITH_TESTS) +@@ -734,17 +734,33 @@ if(WITH_TURBOJPEG OR WITH_TOOLS OR WITH_TESTS) + OFF) boolean_number(WITH_SYSTEM_SPNG) report_option(WITH_SYSTEM_SPNG "System-supplied libspng") ++ ++ option(WITH_SYSTEM_ZLIB ++ "Build ${CMAKE_PROJECT_NAME} against the system-supplied zlib implementation rather than the implementation in the ${CMAKE_PROJECT_NAME} source tree" ++ OFF) ++ boolean_number(WITH_SYSTEM_ZLIB) ++ report_option(WITH_SYSTEM_ZLIB "System-supplied zlib") ++ if(WITH_SYSTEM_SPNG) - include(FindPkgConfig) - pkg_check_modules(spng REQUIRED spng IMPORTED_TARGET) @@ -39,8 +49,38 @@ index f1442728..7d8f9e7a 100644 + set(SPNG_LIBRARY PkgConfig::spng) + endif() else() - option(WITH_SYSTEM_ZLIB - "Build ${CMAKE_PROJECT_NAME} against the system-supplied zlib implementation rather than the implementation in the ${CMAKE_PROJECT_NAME} source tree" +- option(WITH_SYSTEM_ZLIB +- "Build ${CMAKE_PROJECT_NAME} against the system-supplied zlib implementation rather than the implementation in the ${CMAKE_PROJECT_NAME} source tree" +- OFF) +- boolean_number(WITH_SYSTEM_ZLIB) +- report_option(WITH_SYSTEM_ZLIB "System-supplied zlib") + add_subdirectory(src/spng) + set(SPNG_STATIC_SOURCES $) + unset(SPNG_LIBRARY) +@@ -757,6 +773,23 @@ if(WITH_TURBOJPEG OR WITH_TOOLS OR WITH_TESTS) + set(ZLIB_STATIC_SOURCES $) + unset(ZLIB_LIBRARY) + endif() ++ ++ # Set Pkg-Config variables for dependencies ++ set(PKG_REQUIRES_PRIVATE "") ++ set(PKG_LIBS_PRIVATE "") ++ ++ if(WITH_SYSTEM_SPNG) ++ if(TARGET spng::spng_static) ++ string(APPEND PKG_LIBS_PRIVATE " -lspng_static") ++ else() ++ string(APPEND PKG_LIBS_PRIVATE " -lspng") ++ endif() ++ endif() ++ ++ if(WITH_SYSTEM_ZLIB) ++ set(PKG_REQUIRES_PRIVATE "zlib") ++ endif() ++ + endif() + + if(ENABLE_SHARED) diff --git a/release/Config.cmake.in b/release/Config.cmake.in index 0c1ba8aa..639cb477 100644 --- a/release/Config.cmake.in @@ -61,6 +101,26 @@ index 0c1ba8aa..639cb477 100644 + include("${CMAKE_CURRENT_LIST_DIR}/@CMAKE_PROJECT_NAME@Targets.cmake") check_required_components("@CMAKE_PROJECT_NAME@") +diff --git a/release/libjpeg.pc.in b/release/libjpeg.pc.in +index 74fb7fc6..d47a331e 100644 +--- a/release/libjpeg.pc.in ++++ b/release/libjpeg.pc.in +@@ -8,3 +8,5 @@ Description: A SIMD-accelerated JPEG codec that provides the libjpeg API + Version: @VERSION@ + Libs: -L${libdir} -ljpeg + Cflags: -I${includedir} ++Requires.private: @PKG_REQUIRES_PRIVATE@ ++Libs.private: @PKG_LIBS_PRIVATE@ +diff --git a/release/libturbojpeg.pc.in b/release/libturbojpeg.pc.in +index 81a00632..ebf73550 100644 +--- a/release/libturbojpeg.pc.in ++++ b/release/libturbojpeg.pc.in +@@ -8,3 +8,5 @@ Description: A SIMD-accelerated JPEG codec that provides the TurboJPEG API + Version: @VERSION@ + Libs: -L${libdir} -lturbojpeg + Cflags: -I${includedir} ++Requires.private: @PKG_REQUIRES_PRIVATE@ ++Libs.private: @PKG_LIBS_PRIVATE@ -- 2.47.1.windows.1 From 9be746ef5cc71481d15b8cbd94778566f1fc6fd2 Mon Sep 17 00:00:00 2001 From: tartanpaint <35690467+tartanpaint@users.noreply.github.com> Date: Wed, 15 Jul 2026 10:17:28 +0100 Subject: [PATCH 05/36] Fix libjpeg-turbo license in manifest --- ports/libjpeg-turbo/vcpkg.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ports/libjpeg-turbo/vcpkg.json b/ports/libjpeg-turbo/vcpkg.json index 7c83082d58e18e..f0551121f28594 100644 --- a/ports/libjpeg-turbo/vcpkg.json +++ b/ports/libjpeg-turbo/vcpkg.json @@ -4,7 +4,7 @@ "port-version": 1, "description": "libjpeg-turbo is a JPEG image codec that uses SIMD instructions (MMX, SSE2, NEON, AltiVec) to accelerate baseline JPEG compression and decompression on x86, x86-64, ARM, and PowerPC systems.", "homepage": "https://libjpeg-turbo.org/", - "license": "BSD-3-Clause", + "license": "BSD-3-Clause AND IJG", "dependencies": [ "libspng", { From b666138aae0ad2dacac7c00987d0daaf7c2453e3 Mon Sep 17 00:00:00 2001 From: tartanpaint <35690467+tartanpaint@users.noreply.github.com> Date: Wed, 15 Jul 2026 10:21:16 +0100 Subject: [PATCH 06/36] Update version database --- versions/l-/libjpeg-turbo.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/versions/l-/libjpeg-turbo.json b/versions/l-/libjpeg-turbo.json index cd538e0d6bcb12..91580f26df0f57 100644 --- a/versions/l-/libjpeg-turbo.json +++ b/versions/l-/libjpeg-turbo.json @@ -1,7 +1,7 @@ { "versions": [ { - "git-tree": "cc4dcc7a33e609522277b6eeb3ddee32d67705a9", + "git-tree": "cb421481f685a33f4da212f032ecd6dc38eab690", "version": "3.2.0", "port-version": 1 }, From 1d4b86ec5a37e253706dedc5acb08eef74887537 Mon Sep 17 00:00:00 2001 From: tartanpaint <35690467+tartanpaint@users.noreply.github.com> Date: Fri, 17 Jul 2026 17:56:10 +0100 Subject: [PATCH 07/36] Update with dependency patches from libjpeg-turbo project --- ...Make-pkg-config-file-if-WITH_SYSTEM_.patch | 50 +++++++ ...ITH_SYSTEM_SPNG-and-WITH_SYSTEM_ZLIB.patch | 126 ------------------ ...o-find-libspng-via-CMake-config-file.patch | 80 +++++++++++ ...png-spng_static-if-spng-spng-unavail.patch | 33 +++++ ports/libjpeg-turbo/portfile.cmake | 6 +- 5 files changed, 167 insertions(+), 128 deletions(-) create mode 100644 ports/libjpeg-turbo/0001-Build-Fix-CMake-pkg-config-file-if-WITH_SYSTEM_.patch delete mode 100644 ports/libjpeg-turbo/0001-Fixes-for-WITH_SYSTEM_SPNG-and-WITH_SYSTEM_ZLIB.patch create mode 100644 ports/libjpeg-turbo/0002-Build-Try-to-find-libspng-via-CMake-config-file.patch create mode 100644 ports/libjpeg-turbo/0003-Build-Use-spng-spng_static-if-spng-spng-unavail.patch diff --git a/ports/libjpeg-turbo/0001-Build-Fix-CMake-pkg-config-file-if-WITH_SYSTEM_.patch b/ports/libjpeg-turbo/0001-Build-Fix-CMake-pkg-config-file-if-WITH_SYSTEM_.patch new file mode 100644 index 00000000000000..8ff5e1675f0b09 --- /dev/null +++ b/ports/libjpeg-turbo/0001-Build-Fix-CMake-pkg-config-file-if-WITH_SYSTEM_.patch @@ -0,0 +1,50 @@ +From 95156233739078e7d4de0aeeacc4b0595630f393 Mon Sep 17 00:00:00 2001 +From: DRC +Date: Wed, 15 Jul 2026 13:03:38 -0400 +Subject: [PATCH 1/2] Build: Fix CMake pkg config file if WITH_SYSTEM_* + +If WITH_SYSTEM_ZLIB or WITH_SYSTEM_SPNG is defined, then the generated +CMake package config file will include (respectively) + + INTERFACE_LINK_LIBRARIES "ZLIB::ZLIB" + +or + + INTERFACE_LINK_LIBRARIES "PkgConfig::spng" + +in the libjpeg-turbo::turbojpeg and libjpeg-turbo::turbojpeg-static +target properties. Thus, our CMake package config file needs to find +those dependencies. + +Fixes #901 +--- + release/Config.cmake.in | 15 +++++++++++++++ + 1 file changed, 15 insertions(+) + +diff --git a/release/Config.cmake.in b/release/Config.cmake.in +index 0c1ba8aa..04c147ef 100644 +--- a/release/Config.cmake.in ++++ b/release/Config.cmake.in +@@ -1,4 +1,19 @@ + @PACKAGE_INIT@ + ++set(WITH_SYSTEM_SPNG @WITH_SYSTEM_SPNG@) ++set(WITH_SYSTEM_ZLIB @WITH_SYSTEM_ZLIB@) ++ ++if(WITH_SYSTEM_SPNG OR WITH_SYSTEM_ZLIB) ++ include(CMakeFindDependencyMacro) ++ if(WITH_SYSTEM_SPNG) ++ find_dependency(PkgConfig) ++ if(PkgConfig_FOUND) ++ pkg_check_modules(spng REQUIRED spng IMPORTED_TARGET) ++ endif() ++ else() ++ find_dependency(ZLIB) ++ endif() ++endif() ++ + include("${CMAKE_CURRENT_LIST_DIR}/@CMAKE_PROJECT_NAME@Targets.cmake") + check_required_components("@CMAKE_PROJECT_NAME@") +-- +2.47.1.windows.1 + diff --git a/ports/libjpeg-turbo/0001-Fixes-for-WITH_SYSTEM_SPNG-and-WITH_SYSTEM_ZLIB.patch b/ports/libjpeg-turbo/0001-Fixes-for-WITH_SYSTEM_SPNG-and-WITH_SYSTEM_ZLIB.patch deleted file mode 100644 index c8e3a09aabeec2..00000000000000 --- a/ports/libjpeg-turbo/0001-Fixes-for-WITH_SYSTEM_SPNG-and-WITH_SYSTEM_ZLIB.patch +++ /dev/null @@ -1,126 +0,0 @@ -From d8d95916fe397f9af8b4c98d27005190089da9b3 Mon Sep 17 00:00:00 2001 -From: tartanpaint <35690467+tartanpaint@users.noreply.github.com> -Date: Tue, 14 Jul 2026 10:07:55 +0100 -Subject: [PATCH] Fixes for WITH_SYSTEM_SPNG and WITH_SYSTEM_ZLIB - ---- - CMakeLists.txt | 51 +++++++++++++++++++++++++++++++------- - release/Config.cmake.in | 11 ++++++++ - release/libjpeg.pc.in | 2 ++ - release/libturbojpeg.pc.in | 2 ++ - 4 files changed, 57 insertions(+), 9 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index f1442728..9f90dd39 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -734,17 +734,33 @@ if(WITH_TURBOJPEG OR WITH_TOOLS OR WITH_TESTS) - OFF) - boolean_number(WITH_SYSTEM_SPNG) - report_option(WITH_SYSTEM_SPNG "System-supplied libspng") -+ -+ option(WITH_SYSTEM_ZLIB -+ "Build ${CMAKE_PROJECT_NAME} against the system-supplied zlib implementation rather than the implementation in the ${CMAKE_PROJECT_NAME} source tree" -+ OFF) -+ boolean_number(WITH_SYSTEM_ZLIB) -+ report_option(WITH_SYSTEM_ZLIB "System-supplied zlib") -+ - if(WITH_SYSTEM_SPNG) -- include(FindPkgConfig) -- pkg_check_modules(spng REQUIRED spng IMPORTED_TARGET) -- unset(SPNG_STATIC_SOURCES) -- set(SPNG_LIBRARY PkgConfig::spng) -+ find_package(SPNG CONFIG QUIET) -+ if(SPNG_FOUND) -+ unset(SPNG_STATIC_SOURCES) -+ if(TARGET spng::spng) -+ set(SPNG_LIBRARY spng::spng) -+ elseif(TARGET spng::spng_shared) -+ set(SPNG_LIBRARY spng::spng_shared) -+ elseif(TARGET spng::spng_static) -+ set(SPNG_LIBRARY spng::spng_static) -+ else() -+ message(FATAL_ERROR "SPNG_FOUND is true, but no recognized targets were found.") -+ endif() -+ else() -+ include(FindPkgConfig) -+ pkg_search_module(spng REQUIRED IMPORTED_TARGET libspng_static spng_static libspng spng) -+ unset(SPNG_STATIC_SOURCES) -+ set(SPNG_LIBRARY PkgConfig::spng) -+ endif() - else() -- option(WITH_SYSTEM_ZLIB -- "Build ${CMAKE_PROJECT_NAME} against the system-supplied zlib implementation rather than the implementation in the ${CMAKE_PROJECT_NAME} source tree" -- OFF) -- boolean_number(WITH_SYSTEM_ZLIB) -- report_option(WITH_SYSTEM_ZLIB "System-supplied zlib") - add_subdirectory(src/spng) - set(SPNG_STATIC_SOURCES $) - unset(SPNG_LIBRARY) -@@ -757,6 +773,23 @@ if(WITH_TURBOJPEG OR WITH_TOOLS OR WITH_TESTS) - set(ZLIB_STATIC_SOURCES $) - unset(ZLIB_LIBRARY) - endif() -+ -+ # Set Pkg-Config variables for dependencies -+ set(PKG_REQUIRES_PRIVATE "") -+ set(PKG_LIBS_PRIVATE "") -+ -+ if(WITH_SYSTEM_SPNG) -+ if(TARGET spng::spng_static) -+ string(APPEND PKG_LIBS_PRIVATE " -lspng_static") -+ else() -+ string(APPEND PKG_LIBS_PRIVATE " -lspng") -+ endif() -+ endif() -+ -+ if(WITH_SYSTEM_ZLIB) -+ set(PKG_REQUIRES_PRIVATE "zlib") -+ endif() -+ - endif() - - if(ENABLE_SHARED) -diff --git a/release/Config.cmake.in b/release/Config.cmake.in -index 0c1ba8aa..639cb477 100644 ---- a/release/Config.cmake.in -+++ b/release/Config.cmake.in -@@ -1,4 +1,15 @@ - @PACKAGE_INIT@ - -+include(CMakeFindDependencyMacro) -+ -+# If we built with system SPNG/ZLIB, the downstream consumers need them too -+if(@WITH_SYSTEM_SPNG@) -+ find_dependency(SPNG) -+endif() -+ -+if(@WITH_SYSTEM_ZLIB@ OR @WITH_SYSTEM_SPNG@) -+ find_dependency(ZLIB) -+endif() -+ - include("${CMAKE_CURRENT_LIST_DIR}/@CMAKE_PROJECT_NAME@Targets.cmake") - check_required_components("@CMAKE_PROJECT_NAME@") -diff --git a/release/libjpeg.pc.in b/release/libjpeg.pc.in -index 74fb7fc6..d47a331e 100644 ---- a/release/libjpeg.pc.in -+++ b/release/libjpeg.pc.in -@@ -8,3 +8,5 @@ Description: A SIMD-accelerated JPEG codec that provides the libjpeg API - Version: @VERSION@ - Libs: -L${libdir} -ljpeg - Cflags: -I${includedir} -+Requires.private: @PKG_REQUIRES_PRIVATE@ -+Libs.private: @PKG_LIBS_PRIVATE@ -diff --git a/release/libturbojpeg.pc.in b/release/libturbojpeg.pc.in -index 81a00632..ebf73550 100644 ---- a/release/libturbojpeg.pc.in -+++ b/release/libturbojpeg.pc.in -@@ -8,3 +8,5 @@ Description: A SIMD-accelerated JPEG codec that provides the TurboJPEG API - Version: @VERSION@ - Libs: -L${libdir} -lturbojpeg - Cflags: -I${includedir} -+Requires.private: @PKG_REQUIRES_PRIVATE@ -+Libs.private: @PKG_LIBS_PRIVATE@ --- -2.47.1.windows.1 - diff --git a/ports/libjpeg-turbo/0002-Build-Try-to-find-libspng-via-CMake-config-file.patch b/ports/libjpeg-turbo/0002-Build-Try-to-find-libspng-via-CMake-config-file.patch new file mode 100644 index 00000000000000..90da15ae3c3903 --- /dev/null +++ b/ports/libjpeg-turbo/0002-Build-Try-to-find-libspng-via-CMake-config-file.patch @@ -0,0 +1,80 @@ +From 240e20d87c0b7d17614687ddc55ccd1fc631daf9 Mon Sep 17 00:00:00 2001 +From: DRC +Date: Thu, 16 Jul 2026 11:22:01 -0400 +Subject: [PATCH 2/2] Build: Try to find libspng via CMake config file + +Currently only vcpkg and Slackware seem to provide a libspng CMake +package config file, and the one in Slackware is slightly broken. (It +doesn't include CMakeFindDependencyMacro, so find_dependency() fails.) +Thus, I am only barely confident that this works. + +CMakeLists.txt: + +- If WITH_SYSTEM_SPNG, silently try to find libspng via a CMake package + config file and fall back to using pkg-config. + +- If WITH_SYSTEM_SPNG, allow the imported libspng target to be + overridden with a new CMake variable (SPNG_TARGET.) + +Config.cmake.in: + +- If WITH_SYSTEM_SPNG, call find_dependency(SPNG) if the libspng + imported target doesn't start with PkgConfig::. + +Further addresses limitations discussed in #901 +--- + CMakeLists.txt | 14 +++++++++++--- + release/Config.cmake.in | 11 ++++++++--- + 2 files changed, 19 insertions(+), 6 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index f1442728..767e9068 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -735,10 +735,18 @@ if(WITH_TURBOJPEG OR WITH_TOOLS OR WITH_TESTS) + boolean_number(WITH_SYSTEM_SPNG) + report_option(WITH_SYSTEM_SPNG "System-supplied libspng") + if(WITH_SYSTEM_SPNG) +- include(FindPkgConfig) +- pkg_check_modules(spng REQUIRED spng IMPORTED_TARGET) ++ find_package(SPNG CONFIG QUIET) ++ if(SPNG_FOUND) ++ set(SPNG_TARGET_DEFAULT spng::spng) ++ else() ++ include(FindPkgConfig) ++ pkg_check_modules(spng REQUIRED spng IMPORTED_TARGET) ++ set(SPNG_TARGET_DEFAULT PkgConfig::spng) ++ endif() ++ set(SPNG_TARGET ${SPNG_TARGET_DEFAULT} CACHE STRING ++ "The imported target to use when linking libspng") + unset(SPNG_STATIC_SOURCES) +- set(SPNG_LIBRARY PkgConfig::spng) ++ set(SPNG_LIBRARY ${SPNG_TARGET}) + else() + option(WITH_SYSTEM_ZLIB + "Build ${CMAKE_PROJECT_NAME} against the system-supplied zlib implementation rather than the implementation in the ${CMAKE_PROJECT_NAME} source tree" +diff --git a/release/Config.cmake.in b/release/Config.cmake.in +index 04c147ef..dedc3617 100644 +--- a/release/Config.cmake.in ++++ b/release/Config.cmake.in +@@ -6,9 +6,14 @@ set(WITH_SYSTEM_ZLIB @WITH_SYSTEM_ZLIB@) + if(WITH_SYSTEM_SPNG OR WITH_SYSTEM_ZLIB) + include(CMakeFindDependencyMacro) + if(WITH_SYSTEM_SPNG) +- find_dependency(PkgConfig) +- if(PkgConfig_FOUND) +- pkg_check_modules(spng REQUIRED spng IMPORTED_TARGET) ++ set(SPNG_LIBRARY @SPNG_LIBRARY@) ++ if(SPNG_LIBRARY MATCHES "PkgConfig::") ++ find_dependency(PkgConfig) ++ if(PkgConfig_FOUND) ++ pkg_check_modules(spng REQUIRED spng IMPORTED_TARGET) ++ endif() ++ else() ++ find_dependency(SPNG) + endif() + else() + find_dependency(ZLIB) +-- +2.47.1.windows.1 + diff --git a/ports/libjpeg-turbo/0003-Build-Use-spng-spng_static-if-spng-spng-unavail.patch b/ports/libjpeg-turbo/0003-Build-Use-spng-spng_static-if-spng-spng-unavail.patch new file mode 100644 index 00000000000000..8e189bd8496ab1 --- /dev/null +++ b/ports/libjpeg-turbo/0003-Build-Use-spng-spng_static-if-spng-spng-unavail.patch @@ -0,0 +1,33 @@ +From 204e5c2bed4401309c26dc6ed95001e2fc50f833 Mon Sep 17 00:00:00 2001 +From: DRC +Date: Fri, 17 Jul 2026 12:45:13 -0400 +Subject: [PATCH] Build: Use spng::spng_static if spng::spng unavail + +This will be the case if libspng was built with +-DSPNG_STATIC=1 -DSPNG_SHARED=0 + +Refer to #901 +--- + CMakeLists.txt | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 767e9068..045da2a7 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -737,7 +737,11 @@ if(WITH_TURBOJPEG OR WITH_TOOLS OR WITH_TESTS) + if(WITH_SYSTEM_SPNG) + find_package(SPNG CONFIG QUIET) + if(SPNG_FOUND) +- set(SPNG_TARGET_DEFAULT spng::spng) ++ if(TARGET spng::spng) ++ set(SPNG_TARGET_DEFAULT spng::spng) ++ elseif(TARGET spng::spng_static) ++ set(SPNG_TARGET_DEFAULT spng::spng_static) ++ endif() + else() + include(FindPkgConfig) + pkg_check_modules(spng REQUIRED spng IMPORTED_TARGET) +-- +2.47.1.windows.1 + diff --git a/ports/libjpeg-turbo/portfile.cmake b/ports/libjpeg-turbo/portfile.cmake index f3b335cebd6cef..f49301199054cc 100644 --- a/ports/libjpeg-turbo/portfile.cmake +++ b/ports/libjpeg-turbo/portfile.cmake @@ -14,8 +14,10 @@ vcpkg_from_github( add-options-for-docs-headers.patch # workaround for vcpkg bug see #5697 on github for more information workaround_cmake_system_processor.patch - # workaround for libjpeg-turbo issue https://github.com/libjpeg-turbo/libjpeg-turbo/issues/901 - 0001-Fixes-for-WITH_SYSTEM_SPNG-and-WITH_SYSTEM_ZLIB.patch + # apply libjpeg-turbo patches for dependency issues https://github.com/libjpeg-turbo/libjpeg-turbo/issues/901 + 0001-Build-Fix-CMake-pkg-config-file-if-WITH_SYSTEM_.patch + 0002-Build-Try-to-find-libspng-via-CMake-config-file.patch + 0003-Build-Use-spng-spng_static-if-spng-spng-unavail.patch ) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "wasm32") From 816a4bf20f983d8d60b0ffd4a015abd26d4c5b42 Mon Sep 17 00:00:00 2001 From: tartanpaint <35690467+tartanpaint@users.noreply.github.com> Date: Fri, 17 Jul 2026 18:00:23 +0100 Subject: [PATCH 08/36] Update version database --- versions/l-/libjpeg-turbo.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/versions/l-/libjpeg-turbo.json b/versions/l-/libjpeg-turbo.json index 91580f26df0f57..e8519eb36c9b6a 100644 --- a/versions/l-/libjpeg-turbo.json +++ b/versions/l-/libjpeg-turbo.json @@ -1,7 +1,7 @@ { "versions": [ { - "git-tree": "cb421481f685a33f4da212f032ecd6dc38eab690", + "git-tree": "3a8c5bb75e835d5f1373796ff3d24a2b2cca8c11", "version": "3.2.0", "port-version": 1 }, From 9dd768c4f60a5127e5e61dff37392e43fadcd9b6 Mon Sep 17 00:00:00 2001 From: tartanpaint <35690467+tartanpaint@users.noreply.github.com> Date: Sat, 18 Jul 2026 21:33:33 +0100 Subject: [PATCH 09/36] Patch libfreenect2 FindTurboJPEG.cmake to try to fix CI build --- ...libfreenect2_libjpeg-turbo_cmake_fix.patch | 86 +++++++++++++++++++ ports/libfreenect2/portfile.cmake | 1 + 2 files changed, 87 insertions(+) create mode 100644 ports/libfreenect2/libfreenect2_libjpeg-turbo_cmake_fix.patch diff --git a/ports/libfreenect2/libfreenect2_libjpeg-turbo_cmake_fix.patch b/ports/libfreenect2/libfreenect2_libjpeg-turbo_cmake_fix.patch new file mode 100644 index 00000000000000..f6df755ca40ba4 --- /dev/null +++ b/ports/libfreenect2/libfreenect2_libjpeg-turbo_cmake_fix.patch @@ -0,0 +1,86 @@ +diff --git a/cmake_modules/FindTurboJPEG.cmake b/cmake_modules/FindTurboJPEG.cmake +index 55f7307..804cfeb 100644 +--- a/cmake_modules/FindTurboJPEG.cmake ++++ b/cmake_modules/FindTurboJPEG.cmake +@@ -1,67 +1,14 @@ +-# FindTurboJPEG.cmake +-# Uses environment variable TurboJPEG_ROOT as backup +-# - TurboJPEG_FOUND +-# - TurboJPEG_INCLUDE_DIRS +-# - TurboJPEG_LIBRARIES +- +-FIND_PATH(TurboJPEG_INCLUDE_DIRS +- turbojpeg.h +- DOC "Found TurboJPEG include directory" +- PATHS +- "${DEPENDS_DIR}/libjpeg_turbo" +- "${DEPENDS_DIR}/libjpeg-turbo64" +- "/usr/local/opt/jpeg-turbo" # homebrew +- "/opt/local" # macports +- "C:/libjpeg-turbo64" +- "/opt/libjpeg-turbo" +- ENV TurboJPEG_ROOT +- PATH_SUFFIXES +- include +-) +- +-#Library names: +-# debian sid,strech: libturbojpeg0 +-# debian/ubuntu else: libturbojpeg1-dev #provided by libjpeg-turbo8-dev (ubuntu) +-FIND_LIBRARY(TurboJPEG_LIBRARIES +- NAMES libturbojpeg.so.1 libturbojpeg.so.0 turbojpeg +- DOC "Found TurboJPEG library path" +- PATHS +- "${DEPENDS_DIR}/libjpeg_turbo" +- "${DEPENDS_DIR}/libjpeg-turbo64" +- "/usr/local/opt/jpeg-turbo" # homebrew +- "/opt/local" # macports +- "C:/libjpeg-turbo64" +- "/opt/libjpeg-turbo" +- ENV TurboJPEG_ROOT +- PATH_SUFFIXES +- lib +- lib64 +-) +- +-IF(WIN32) +-FIND_FILE(TurboJPEG_DLL +- turbojpeg.dll +- DOC "Found TurboJPEG DLL path" +- PATHS +- "${DEPENDS_DIR}/libjpeg_turbo" +- "${DEPENDS_DIR}/libjpeg-turbo64" +- "C:/libjpeg-turbo64" +- ENV TurboJPEG_ROOT +- PATH_SUFFIXES +- bin +-) +-ENDIF() +- +-IF(TurboJPEG_INCLUDE_DIRS AND TurboJPEG_LIBRARIES) +-INCLUDE(CheckCSourceCompiles) +-set(CMAKE_REQUIRED_INCLUDES ${TurboJPEG_INCLUDE_DIRS}) +-set(CMAKE_REQUIRED_LIBRARIES ${TurboJPEG_LIBRARIES}) +-check_c_source_compiles("#include \nint main(void) { tjhandle h=tjInitCompress(); return 0; }" TURBOJPEG_WORKS) +-set(CMAKE_REQUIRED_DEFINITIONS) +-set(CMAKE_REQUIRED_INCLUDES) +-set(CMAKE_REQUIRED_LIBRARIES) +-ENDIF() +- +-INCLUDE(FindPackageHandleStandardArgs) +-FIND_PACKAGE_HANDLE_STANDARD_ARGS(TurboJPEG FOUND_VAR TurboJPEG_FOUND +- REQUIRED_VARS TurboJPEG_LIBRARIES TurboJPEG_INCLUDE_DIRS TURBOJPEG_WORKS) ++# Ask vcpkg's official config for the targets ++find_package(libjpeg-turbo CONFIG REQUIRED) ++ ++set(TurboJPEG_FOUND TRUE) ++set(TurboJPEG_INCLUDE_DIRS "") # Targets automatically provide their own include paths ++ ++# Prefer the explicit static target if it exists, otherwise fall back to the default ++if(TARGET libjpeg-turbo::turbojpeg-static) ++ set(TurboJPEG_LIBRARIES libjpeg-turbo::turbojpeg-static) ++elseif(TARGET libjpeg-turbo::turbojpeg) ++ set(TurboJPEG_LIBRARIES libjpeg-turbo::turbojpeg) ++else() ++ message(FATAL_ERROR "Could not find libjpeg-turbo::turbojpeg or libjpeg-turbo::turbojpeg-static") ++endif() diff --git a/ports/libfreenect2/portfile.cmake b/ports/libfreenect2/portfile.cmake index efc6c9980d8c35..dcab1ddba3968b 100644 --- a/ports/libfreenect2/portfile.cmake +++ b/ports/libfreenect2/portfile.cmake @@ -7,6 +7,7 @@ vcpkg_from_github( PATCHES fix-dependency-libusb.patch fix-macbuild.patch + libfreenect2_libjpeg-turbo_cmake_fix.patch ) file(READ "${SOURCE_PATH}/cmake_modules/FindLibUSB.cmake" FINDLIBUSB) From be1bb27fb03a5e54ecc9b2cbaad0d94ba1a1039b Mon Sep 17 00:00:00 2001 From: tartanpaint <35690467+tartanpaint@users.noreply.github.com> Date: Sat, 18 Jul 2026 21:39:56 +0100 Subject: [PATCH 10/36] Expect failures for openslide for x64-windows-static and x64-windows-static-md since MSVC is not supported --- scripts/ci.baseline.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/ci.baseline.txt b/scripts/ci.baseline.txt index d5734dc9c677d1..61fddccadf06e2 100644 --- a/scripts/ci.baseline.txt +++ b/scripts/ci.baseline.txt @@ -983,6 +983,8 @@ openmvs:arm64-windows-static-md=fail # no _M_ARM64 detection openmvs:arm64-windows=fail # no _M_ARM64 detection openslide:x64-windows-release=fail # MSVC is not supported openslide:x64-windows=fail +openslide:x64-windows-static=fail +openslide:x64-windows-static-md=fail opensubdiv:x64-android=fail openvino:arm64-android=skip # conflicts with kleidiai, also incorrect use of arm64 intrinsics in in VS 2022 17.13 broke these with -Zc:arm64-aliased-neon-types- openvino:arm64-linux=skip From 808b8b59f619d25d518677faaa63112b51d877fd Mon Sep 17 00:00:00 2001 From: tartanpaint <35690467+tartanpaint@users.noreply.github.com> Date: Sat, 18 Jul 2026 21:42:17 +0100 Subject: [PATCH 11/36] Bump port version for libfreenect2 --- ports/libfreenect2/vcpkg.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ports/libfreenect2/vcpkg.json b/ports/libfreenect2/vcpkg.json index c8f3262c248a68..cbd8f3f2059325 100644 --- a/ports/libfreenect2/vcpkg.json +++ b/ports/libfreenect2/vcpkg.json @@ -1,7 +1,7 @@ { "name": "libfreenect2", "version": "0.2.1", - "port-version": 2, + "port-version": 3, "description": "Open source drivers for the Kinect for Windows v2 device", "homepage": "https://github.com/OpenKinect/libfreenect2", "license": "GPL-2.0-only OR Apache-2.0", From 12b63c761f4867d3143f5187a519d877751fb7f1 Mon Sep 17 00:00:00 2001 From: tartanpaint <35690467+tartanpaint@users.noreply.github.com> Date: Sat, 18 Jul 2026 21:46:55 +0100 Subject: [PATCH 12/36] Update version database --- versions/baseline.json | 2 +- versions/l-/libfreenect2.json | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/versions/baseline.json b/versions/baseline.json index b23f9f24d1d292..51d09b583b3f9f 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -5062,7 +5062,7 @@ }, "libfreenect2": { "baseline": "0.2.1", - "port-version": 2 + "port-version": 3 }, "libfs": { "baseline": "1.0.10", diff --git a/versions/l-/libfreenect2.json b/versions/l-/libfreenect2.json index 9ede3ca27d12ba..24896c3d3d9fb0 100644 --- a/versions/l-/libfreenect2.json +++ b/versions/l-/libfreenect2.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "57baf987a959e4521af2cacd9df09b2fac20859c", + "version": "0.2.1", + "port-version": 3 + }, { "git-tree": "69f6ddad233507911805c1c313b5030d6c771baa", "version": "0.2.1", From bb02239fbde8102c07f0355347a9945a4781e60d Mon Sep 17 00:00:00 2001 From: tartanpaint <35690467+tartanpaint@users.noreply.github.com> Date: Sat, 18 Jul 2026 22:02:44 +0100 Subject: [PATCH 13/36] Fix format issue --- scripts/ci.baseline.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/ci.baseline.txt b/scripts/ci.baseline.txt index 61fddccadf06e2..5310c12e5cbc36 100644 --- a/scripts/ci.baseline.txt +++ b/scripts/ci.baseline.txt @@ -982,9 +982,9 @@ openmvg:arm64-windows=fail openmvs:arm64-windows-static-md=fail # no _M_ARM64 detection openmvs:arm64-windows=fail # no _M_ARM64 detection openslide:x64-windows-release=fail # MSVC is not supported -openslide:x64-windows=fail -openslide:x64-windows-static=fail openslide:x64-windows-static-md=fail +openslide:x64-windows-static=fail +openslide:x64-windows=fail opensubdiv:x64-android=fail openvino:arm64-android=skip # conflicts with kleidiai, also incorrect use of arm64 intrinsics in in VS 2022 17.13 broke these with -Zc:arm64-aliased-neon-types- openvino:arm64-linux=skip From 87954ac2d61cc7be439b874849695cd2582f38d4 Mon Sep 17 00:00:00 2001 From: tartanpaint <35690467+tartanpaint@users.noreply.github.com> Date: Tue, 4 Aug 2026 16:32:29 +0100 Subject: [PATCH 14/36] Fix libfreenect2 build with patch from https://github.com/OpenKinect/libfreenect2/pull/1209 --- .../CMake_4_and_OpenCL_headers.patch | 58 +++++++++++++ ...libfreenect2_libjpeg-turbo_cmake_fix.patch | 86 ------------------- ports/libfreenect2/portfile.cmake | 9 +- 3 files changed, 66 insertions(+), 87 deletions(-) create mode 100644 ports/libfreenect2/CMake_4_and_OpenCL_headers.patch delete mode 100644 ports/libfreenect2/libfreenect2_libjpeg-turbo_cmake_fix.patch diff --git a/ports/libfreenect2/CMake_4_and_OpenCL_headers.patch b/ports/libfreenect2/CMake_4_and_OpenCL_headers.patch new file mode 100644 index 00000000000000..82f5fc85df4dc3 --- /dev/null +++ b/ports/libfreenect2/CMake_4_and_OpenCL_headers.patch @@ -0,0 +1,58 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index d8ef047..f6e6802 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,4 +1,4 @@ +-CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12.1) ++CMAKE_MINIMUM_REQUIRED(VERSION 3.5) + + SET(PROJECT_VER_MAJOR 0) + SET(PROJECT_VER_MINOR 2) +diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt +index 8741f67..bd79025 100644 +--- a/examples/CMakeLists.txt ++++ b/examples/CMakeLists.txt +@@ -1,4 +1,4 @@ +-CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12.1) ++CMAKE_MINIMUM_REQUIRED(VERSION 3.5) + + if(WIN32 AND NOT MINGW) + if(NOT DEFINED CMAKE_DEBUG_POSTFIX) +diff --git a/src/opencl_depth_packet_processor.cpp b/src/opencl_depth_packet_processor.cpp +index d8db14d..d95f509 100644 +--- a/src/opencl_depth_packet_processor.cpp ++++ b/src/opencl_depth_packet_processor.cpp +@@ -251,6 +251,9 @@ public: + newIrFrame(); + newDepthFrame(); + ++#ifdef CL_ICDL_VERSION ++#undef CL_ICDL_VERSION ++#endif + const int CL_ICDL_VERSION = 2; + typedef cl_int (*icdloader_func)(int, size_t, void*, size_t*); + #ifdef _MSC_VER +diff --git a/src/opencl_kde_depth_packet_processor.cpp b/src/opencl_kde_depth_packet_processor.cpp +index 98dbdff..9d38ac5 100644 +--- a/src/opencl_kde_depth_packet_processor.cpp ++++ b/src/opencl_kde_depth_packet_processor.cpp +@@ -259,6 +259,9 @@ public: + newIrFrame(); + newDepthFrame(); + ++#ifdef CL_ICDL_VERSION ++#undef CL_ICDL_VERSION ++#endif + const int CL_ICDL_VERSION = 2; + typedef cl_int (*icdloader_func)(int, size_t, void*, size_t*); + #ifdef _MSC_VER +diff --git a/tools/streamer_recorder/CMakeLists.txt b/tools/streamer_recorder/CMakeLists.txt +index 77f203f..9986ebc 100644 +--- a/tools/streamer_recorder/CMakeLists.txt ++++ b/tools/streamer_recorder/CMakeLists.txt +@@ -1,4 +1,4 @@ +-CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12.1) ++CMAKE_MINIMUM_REQUIRED(VERSION 3.5) + + if(WIN32 AND NOT MINGW) + if(NOT DEFINED CMAKE_DEBUG_POSTFIX) diff --git a/ports/libfreenect2/libfreenect2_libjpeg-turbo_cmake_fix.patch b/ports/libfreenect2/libfreenect2_libjpeg-turbo_cmake_fix.patch deleted file mode 100644 index f6df755ca40ba4..00000000000000 --- a/ports/libfreenect2/libfreenect2_libjpeg-turbo_cmake_fix.patch +++ /dev/null @@ -1,86 +0,0 @@ -diff --git a/cmake_modules/FindTurboJPEG.cmake b/cmake_modules/FindTurboJPEG.cmake -index 55f7307..804cfeb 100644 ---- a/cmake_modules/FindTurboJPEG.cmake -+++ b/cmake_modules/FindTurboJPEG.cmake -@@ -1,67 +1,14 @@ --# FindTurboJPEG.cmake --# Uses environment variable TurboJPEG_ROOT as backup --# - TurboJPEG_FOUND --# - TurboJPEG_INCLUDE_DIRS --# - TurboJPEG_LIBRARIES -- --FIND_PATH(TurboJPEG_INCLUDE_DIRS -- turbojpeg.h -- DOC "Found TurboJPEG include directory" -- PATHS -- "${DEPENDS_DIR}/libjpeg_turbo" -- "${DEPENDS_DIR}/libjpeg-turbo64" -- "/usr/local/opt/jpeg-turbo" # homebrew -- "/opt/local" # macports -- "C:/libjpeg-turbo64" -- "/opt/libjpeg-turbo" -- ENV TurboJPEG_ROOT -- PATH_SUFFIXES -- include --) -- --#Library names: --# debian sid,strech: libturbojpeg0 --# debian/ubuntu else: libturbojpeg1-dev #provided by libjpeg-turbo8-dev (ubuntu) --FIND_LIBRARY(TurboJPEG_LIBRARIES -- NAMES libturbojpeg.so.1 libturbojpeg.so.0 turbojpeg -- DOC "Found TurboJPEG library path" -- PATHS -- "${DEPENDS_DIR}/libjpeg_turbo" -- "${DEPENDS_DIR}/libjpeg-turbo64" -- "/usr/local/opt/jpeg-turbo" # homebrew -- "/opt/local" # macports -- "C:/libjpeg-turbo64" -- "/opt/libjpeg-turbo" -- ENV TurboJPEG_ROOT -- PATH_SUFFIXES -- lib -- lib64 --) -- --IF(WIN32) --FIND_FILE(TurboJPEG_DLL -- turbojpeg.dll -- DOC "Found TurboJPEG DLL path" -- PATHS -- "${DEPENDS_DIR}/libjpeg_turbo" -- "${DEPENDS_DIR}/libjpeg-turbo64" -- "C:/libjpeg-turbo64" -- ENV TurboJPEG_ROOT -- PATH_SUFFIXES -- bin --) --ENDIF() -- --IF(TurboJPEG_INCLUDE_DIRS AND TurboJPEG_LIBRARIES) --INCLUDE(CheckCSourceCompiles) --set(CMAKE_REQUIRED_INCLUDES ${TurboJPEG_INCLUDE_DIRS}) --set(CMAKE_REQUIRED_LIBRARIES ${TurboJPEG_LIBRARIES}) --check_c_source_compiles("#include \nint main(void) { tjhandle h=tjInitCompress(); return 0; }" TURBOJPEG_WORKS) --set(CMAKE_REQUIRED_DEFINITIONS) --set(CMAKE_REQUIRED_INCLUDES) --set(CMAKE_REQUIRED_LIBRARIES) --ENDIF() -- --INCLUDE(FindPackageHandleStandardArgs) --FIND_PACKAGE_HANDLE_STANDARD_ARGS(TurboJPEG FOUND_VAR TurboJPEG_FOUND -- REQUIRED_VARS TurboJPEG_LIBRARIES TurboJPEG_INCLUDE_DIRS TURBOJPEG_WORKS) -+# Ask vcpkg's official config for the targets -+find_package(libjpeg-turbo CONFIG REQUIRED) -+ -+set(TurboJPEG_FOUND TRUE) -+set(TurboJPEG_INCLUDE_DIRS "") # Targets automatically provide their own include paths -+ -+# Prefer the explicit static target if it exists, otherwise fall back to the default -+if(TARGET libjpeg-turbo::turbojpeg-static) -+ set(TurboJPEG_LIBRARIES libjpeg-turbo::turbojpeg-static) -+elseif(TARGET libjpeg-turbo::turbojpeg) -+ set(TurboJPEG_LIBRARIES libjpeg-turbo::turbojpeg) -+else() -+ message(FATAL_ERROR "Could not find libjpeg-turbo::turbojpeg or libjpeg-turbo::turbojpeg-static") -+endif() diff --git a/ports/libfreenect2/portfile.cmake b/ports/libfreenect2/portfile.cmake index dcab1ddba3968b..9c4bec4a8e4dfd 100644 --- a/ports/libfreenect2/portfile.cmake +++ b/ports/libfreenect2/portfile.cmake @@ -7,7 +7,7 @@ vcpkg_from_github( PATCHES fix-dependency-libusb.patch fix-macbuild.patch - libfreenect2_libjpeg-turbo_cmake_fix.patch + CMake_4_and_OpenCL_headers.patch # https://github.com/OpenKinect/libfreenect2/pull/1209 ) file(READ "${SOURCE_PATH}/cmake_modules/FindLibUSB.cmake" FINDLIBUSB) @@ -33,6 +33,10 @@ endif() vcpkg_backup_env_variables(VARS PKG_CONFIG_PATH) vcpkg_host_path_list(PREPEND ENV{PKG_CONFIG_PATH} "${CURRENT_INSTALLED_DIR}${path_suffix}/lib/pkgconfig") +# force use of OpenCL 1.2 +#string(APPEND VCPKG_CXX_FLAGS " -DCL_TARGET_OPENCL_VERSION=120") +#string(APPEND VCPKG_C_FLAGS " -DCL_TARGET_OPENCL_VERSION=120") + vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS @@ -40,6 +44,9 @@ vcpkg_cmake_configure( -DENABLE_CUDA=OFF -DBUILD_EXAMPLES=OFF ${FEATURE_OPTIONS} + -DCL_TARGET_OPENCL_VERSION=120 + -DCL_HPP_TARGET_OPENCL_VERSION=120 + -DCL_HPP_MINIMUM_OPENCL_VERSION=120 ) vcpkg_restore_env_variables(VARS PKG_CONFIG_PATH) From 50c6f20bd84073f1a756ac652cc91e94cc9f37d3 Mon Sep 17 00:00:00 2001 From: tartanpaint <35690467+tartanpaint@users.noreply.github.com> Date: Tue, 4 Aug 2026 16:39:19 +0100 Subject: [PATCH 15/36] Update version database --- versions/l-/libfreenect2.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/versions/l-/libfreenect2.json b/versions/l-/libfreenect2.json index 24896c3d3d9fb0..3f2ea9b495173a 100644 --- a/versions/l-/libfreenect2.json +++ b/versions/l-/libfreenect2.json @@ -1,7 +1,7 @@ { "versions": [ { - "git-tree": "57baf987a959e4521af2cacd9df09b2fac20859c", + "git-tree": "809b90a1de5665dc92b81a09e51d7ec6a941676c", "version": "0.2.1", "port-version": 3 }, From 57b099a067afcf5ef3f878bb6bdaeba70d94b999 Mon Sep 17 00:00:00 2001 From: tartanpaint <35690467+tartanpaint@users.noreply.github.com> Date: Tue, 4 Aug 2026 22:56:41 +0100 Subject: [PATCH 16/36] Attempt to fix finding libjpeg-turbo and dependencies for libfreenect2 --- ports/libfreenect2/find_libjpegturbo.patch | 39 ++++++++++++++++++++++ ports/libfreenect2/portfile.cmake | 1 + 2 files changed, 40 insertions(+) create mode 100644 ports/libfreenect2/find_libjpegturbo.patch diff --git a/ports/libfreenect2/find_libjpegturbo.patch b/ports/libfreenect2/find_libjpegturbo.patch new file mode 100644 index 00000000000000..a10dc90970d2b1 --- /dev/null +++ b/ports/libfreenect2/find_libjpegturbo.patch @@ -0,0 +1,39 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index d8ef047..e0f615c 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -237,30 +237,25 @@ IF(ENABLE_TEGRAJPEG) + ENDIF() + + IF(LIBFREENECT2_WITH_VT_SUPPORT) +- FIND_PACKAGE(TurboJPEG) ++ find_package(libjpeg-turbo CONFIG) + ELSE() + # VAAPI can fail to start at runtime. It must have a fallback. +- FIND_PACKAGE(TurboJPEG REQUIRED) ++ find_package(libjpeg-turbo CONFIG REQUIRED) + ENDIF() + + SET(HAVE_TurboJPEG no) +-IF(TurboJPEG_FOUND) ++IF(TARGET libjpeg-turbo::turbojpeg OR libjpeg-turbo_FOUND) + SET(LIBFREENECT2_WITH_TURBOJPEG_SUPPORT 1) + SET(HAVE_TurboJPEG yes) + +- INCLUDE_DIRECTORIES(${TurboJPEG_INCLUDE_DIRS}) +- + LIST(APPEND SOURCES + src/turbo_jpeg_rgb_packet_processor.cpp + ) + + LIST(APPEND LIBRARIES +- ${TurboJPEG_LIBRARIES} ++ libjpeg-turbo::turbojpeg + ) + +- LIST(APPEND LIBFREENECT2_DLLS +- ${TurboJPEG_DLL} +- ) + ENDIF() + + SET(HAVE_OpenGL disabled) diff --git a/ports/libfreenect2/portfile.cmake b/ports/libfreenect2/portfile.cmake index 9c4bec4a8e4dfd..9e274bd6b0db9a 100644 --- a/ports/libfreenect2/portfile.cmake +++ b/ports/libfreenect2/portfile.cmake @@ -8,6 +8,7 @@ vcpkg_from_github( fix-dependency-libusb.patch fix-macbuild.patch CMake_4_and_OpenCL_headers.patch # https://github.com/OpenKinect/libfreenect2/pull/1209 + find_libjpegturbo.patch ) file(READ "${SOURCE_PATH}/cmake_modules/FindLibUSB.cmake" FINDLIBUSB) From af1e9e9bf6c6e88f355980a7486b113d6a32ff5e Mon Sep 17 00:00:00 2001 From: tartanpaint <35690467+tartanpaint@users.noreply.github.com> Date: Tue, 4 Aug 2026 22:57:59 +0100 Subject: [PATCH 17/36] Update version database --- versions/l-/libfreenect2.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/versions/l-/libfreenect2.json b/versions/l-/libfreenect2.json index 3f2ea9b495173a..0667fd23a637c4 100644 --- a/versions/l-/libfreenect2.json +++ b/versions/l-/libfreenect2.json @@ -1,7 +1,7 @@ { "versions": [ { - "git-tree": "809b90a1de5665dc92b81a09e51d7ec6a941676c", + "git-tree": "b05eba4400fc4fcf5ed79fb7765bb4befb224f86", "version": "0.2.1", "port-version": 3 }, From 4d62c3410de5ac8c83de185bc686f5eacdf3e714 Mon Sep 17 00:00:00 2001 From: tartanpaint <35690467+tartanpaint@users.noreply.github.com> Date: Thu, 6 Aug 2026 16:58:40 +0100 Subject: [PATCH 18/36] Update libfreenect2 to support finding static libjpeg-turbo libs --- ports/libfreenect2/find_libjpegturbo.patch | 24 ++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/ports/libfreenect2/find_libjpegturbo.patch b/ports/libfreenect2/find_libjpegturbo.patch index a10dc90970d2b1..77a769e4235836 100644 --- a/ports/libfreenect2/find_libjpegturbo.patch +++ b/ports/libfreenect2/find_libjpegturbo.patch @@ -1,8 +1,8 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index d8ef047..e0f615c 100644 +index d8ef047..9f7e326 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -237,30 +237,25 @@ IF(ENABLE_TEGRAJPEG) +@@ -237,30 +237,35 @@ IF(ENABLE_TEGRAJPEG) ENDIF() IF(LIBFREENECT2_WITH_VT_SUPPORT) @@ -16,7 +16,13 @@ index d8ef047..e0f615c 100644 SET(HAVE_TurboJPEG no) -IF(TurboJPEG_FOUND) -+IF(TARGET libjpeg-turbo::turbojpeg OR libjpeg-turbo_FOUND) ++IF(TARGET libjpeg-turbo::turbojpeg) ++ SET(TURBOJPEG_LINK_TARGET libjpeg-turbo::turbojpeg) ++ELSEIF(TARGET libjpeg-turbo::turbojpeg-static) ++ SET(TURBOJPEG_LINK_TARGET libjpeg-turbo::turbojpeg-static) ++ENDIF() ++ ++IF(DEFINED TURBOJPEG_LINK_TARGET OR libjpeg-turbo_FOUND) SET(LIBFREENECT2_WITH_TURBOJPEG_SUPPORT 1) SET(HAVE_TurboJPEG yes) @@ -26,10 +32,16 @@ index d8ef047..e0f615c 100644 src/turbo_jpeg_rgb_packet_processor.cpp ) - LIST(APPEND LIBRARIES +- LIST(APPEND LIBRARIES - ${TurboJPEG_LIBRARIES} -+ libjpeg-turbo::turbojpeg - ) +- ) ++ IF(DEFINED TURBOJPEG_LINK_TARGET) ++ LIST(APPEND LIBRARIES ${TURBOJPEG_LINK_TARGET}) ++ ELSE() ++ # Fallback just in case an older environment sets libjpeg-turbo_FOUND ++ # but doesn't define modern CMake targets ++ LIST(APPEND LIBRARIES turbojpeg) ++ ENDIF() - LIST(APPEND LIBFREENECT2_DLLS - ${TurboJPEG_DLL} From 8714cb629b6bcfb416a42b330738ec1764b1043f Mon Sep 17 00:00:00 2001 From: tartanpaint <35690467+tartanpaint@users.noreply.github.com> Date: Thu, 6 Aug 2026 17:03:41 +0100 Subject: [PATCH 19/36] Update version database --- versions/l-/libfreenect2.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/versions/l-/libfreenect2.json b/versions/l-/libfreenect2.json index 0667fd23a637c4..97d30978efed2f 100644 --- a/versions/l-/libfreenect2.json +++ b/versions/l-/libfreenect2.json @@ -1,7 +1,7 @@ { "versions": [ { - "git-tree": "b05eba4400fc4fcf5ed79fb7765bb4befb224f86", + "git-tree": "fa8fa2b1688744e1399f2fd69be836e63c8ad41e", "version": "0.2.1", "port-version": 3 }, From 924e41f72e433ef2c41d566f01b513207edc33aa Mon Sep 17 00:00:00 2001 From: tartanpaint <35690467+tartanpaint@users.noreply.github.com> Date: Mon, 17 Aug 2026 15:46:20 +0100 Subject: [PATCH 20/36] Fix libfreenect2 cross compile resource generation with patch from Conan https://github.com/conan-io/conan-center-index/pull/7628 --- ports/libfreenect2/fix-cross-compiling.patch | 41 ++++++++++++++++++++ ports/libfreenect2/portfile.cmake | 1 + 2 files changed, 42 insertions(+) create mode 100644 ports/libfreenect2/fix-cross-compiling.patch diff --git a/ports/libfreenect2/fix-cross-compiling.patch b/ports/libfreenect2/fix-cross-compiling.patch new file mode 100644 index 00000000000000..36258bc3f57efe --- /dev/null +++ b/ports/libfreenect2/fix-cross-compiling.patch @@ -0,0 +1,41 @@ +This patch avoids compiling 'generate_resources_tool' to generate C sources of binary resources +and instead uses CMake functionality to generate the files. This patch is necessary to enable +cross-compiling without setting up host compiling environment. @sh0 + +diff --git a/cmake_modules/GenerateResources.cmake b/cmake_modules/GenerateResources.cmake +index 8616e38..6deea9a 100644 +--- a/cmake_modules/GenerateResources.cmake ++++ b/cmake_modules/GenerateResources.cmake +@@ -1,14 +1,23 @@ + FUNCTION(GENERATE_RESOURCES OUTPUT BASE_FOLDER) + +-ADD_EXECUTABLE(generate_resources_tool +- tools/generate_resources.cpp +-) +- +-ADD_CUSTOM_COMMAND( +- OUTPUT ${OUTPUT} +- COMMAND generate_resources_tool ${BASE_FOLDER} ${ARGN} > ${OUTPUT} +- WORKING_DIRECTORY ${BASE_FOLDER} +- DEPENDS generate_resources_tool ${ARGN} ++set(RES_INDEX "0") ++foreach (SRC_ENTRY ${ARGN}) ++ set(SRC_PATH "${CMAKE_CURRENT_SOURCE_DIR}/${SRC_ENTRY}") ++ get_filename_component(SRC_NAME "${SRC_ENTRY}" NAME) ++ file(SIZE "${SRC_PATH}" DATA_SIZE) ++ file(READ "${SRC_PATH}" DATA_BIN HEX) ++ string(REGEX REPLACE "([0-9a-f][0-9a-f])" "0x\\1," DATA_HEX ${DATA_BIN}) ++ string(APPEND RES_CONTENT "static unsigned char resource${RES_INDEX}[] = {\n ${DATA_HEX}\n};\n") ++ string(APPEND RES_DESCRIPTOR " { \"${SRC_NAME}\", resource${RES_INDEX}, sizeof(resource${RES_INDEX}) },\n") ++ math(EXPR RES_INDEX "${RES_INDEX} + 1") ++endforeach () ++file(WRITE "${OUTPUT}" ++ "${RES_CONTENT}" ++ "static ResourceDescriptor resource_descriptors[] = {\n" ++ "${RES_DESCRIPTOR}" ++ " {NULL, NULL, 0},\n" ++ "};\n" ++ "static int resource_descriptors_length = ${RES_INDEX};\n" + ) + + ENDFUNCTION(GENERATE_RESOURCES) diff --git a/ports/libfreenect2/portfile.cmake b/ports/libfreenect2/portfile.cmake index 9e274bd6b0db9a..8dfe4e012d1ae9 100644 --- a/ports/libfreenect2/portfile.cmake +++ b/ports/libfreenect2/portfile.cmake @@ -9,6 +9,7 @@ vcpkg_from_github( fix-macbuild.patch CMake_4_and_OpenCL_headers.patch # https://github.com/OpenKinect/libfreenect2/pull/1209 find_libjpegturbo.patch + fix-cross-compiling.patch # from conan libfreenect2 recipe https://github.com/conan-io/conan-center-index/pull/7628 ) file(READ "${SOURCE_PATH}/cmake_modules/FindLibUSB.cmake" FINDLIBUSB) From b8ebb3b998789d7c2e511b0607ee66aa7aee9d2a Mon Sep 17 00:00:00 2001 From: tartanpaint <35690467+tartanpaint@users.noreply.github.com> Date: Mon, 17 Aug 2026 15:49:24 +0100 Subject: [PATCH 21/36] Update version database --- versions/l-/libfreenect2.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/versions/l-/libfreenect2.json b/versions/l-/libfreenect2.json index 97d30978efed2f..cd7ea4f6f6d78d 100644 --- a/versions/l-/libfreenect2.json +++ b/versions/l-/libfreenect2.json @@ -1,7 +1,7 @@ { "versions": [ { - "git-tree": "fa8fa2b1688744e1399f2fd69be836e63c8ad41e", + "git-tree": "ba18ba197df39c0f636d3762769da0362f867367", "version": "0.2.1", "port-version": 3 }, From c396cd184ab519b53ddf9e98cce63bb156ca2ab9 Mon Sep 17 00:00:00 2001 From: tartanpaint <35690467+tartanpaint@users.noreply.github.com> Date: Wed, 19 Aug 2026 08:00:51 +0100 Subject: [PATCH 22/36] Remove expected failure for libfreenect2:arm64-windows as this now passes --- scripts/ci.feature.baseline.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/scripts/ci.feature.baseline.txt b/scripts/ci.feature.baseline.txt index 784774c593d21e..f6a61efd158042 100644 --- a/scripts/ci.feature.baseline.txt +++ b/scripts/ci.feature.baseline.txt @@ -586,7 +586,6 @@ libcopp:arm64-windows=fail libdc1394:arm64-linux=cascade libedit:arm64-linux=fail libfreenect2:arm64-linux=cascade -libfreenect2:arm64-windows=fail libfreenect2[opengl]:arm64-linux=cascade libfreenect2[openni2]:arm64-linux=cascade libfreenect2[openni2]:arm64-osx=cascade From 622c0b8dd35cc97e0e211e0be2c362b1cf8ff040 Mon Sep 17 00:00:00 2001 From: tartanpaint <35690467+tartanpaint@users.noreply.github.com> Date: Wed, 19 Aug 2026 08:22:17 +0100 Subject: [PATCH 23/36] Update libfreenect2 find_libjpegturbo.patch as per review --- ports/libfreenect2/find_libjpegturbo.patch | 40 +++------------------- 1 file changed, 4 insertions(+), 36 deletions(-) diff --git a/ports/libfreenect2/find_libjpegturbo.patch b/ports/libfreenect2/find_libjpegturbo.patch index 77a769e4235836..95bc42c6ee5cff 100644 --- a/ports/libfreenect2/find_libjpegturbo.patch +++ b/ports/libfreenect2/find_libjpegturbo.patch @@ -1,51 +1,19 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index d8ef047..9f7e326 100644 +index d8ef047..c12f53a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -237,30 +237,35 @@ IF(ENABLE_TEGRAJPEG) +@@ -237,10 +237,12 @@ IF(ENABLE_TEGRAJPEG) ENDIF() IF(LIBFREENECT2_WITH_VT_SUPPORT) - FIND_PACKAGE(TurboJPEG) + find_package(libjpeg-turbo CONFIG) ++ find_package(TurboJPEG NAMES libjpeg-turbo) ELSE() # VAAPI can fail to start at runtime. It must have a fallback. - FIND_PACKAGE(TurboJPEG REQUIRED) + find_package(libjpeg-turbo CONFIG REQUIRED) ++ find_package(TurboJPEG NAMES libjpeg-turbo REQUIRED) ENDIF() SET(HAVE_TurboJPEG no) --IF(TurboJPEG_FOUND) -+IF(TARGET libjpeg-turbo::turbojpeg) -+ SET(TURBOJPEG_LINK_TARGET libjpeg-turbo::turbojpeg) -+ELSEIF(TARGET libjpeg-turbo::turbojpeg-static) -+ SET(TURBOJPEG_LINK_TARGET libjpeg-turbo::turbojpeg-static) -+ENDIF() -+ -+IF(DEFINED TURBOJPEG_LINK_TARGET OR libjpeg-turbo_FOUND) - SET(LIBFREENECT2_WITH_TURBOJPEG_SUPPORT 1) - SET(HAVE_TurboJPEG yes) - -- INCLUDE_DIRECTORIES(${TurboJPEG_INCLUDE_DIRS}) -- - LIST(APPEND SOURCES - src/turbo_jpeg_rgb_packet_processor.cpp - ) - -- LIST(APPEND LIBRARIES -- ${TurboJPEG_LIBRARIES} -- ) -+ IF(DEFINED TURBOJPEG_LINK_TARGET) -+ LIST(APPEND LIBRARIES ${TURBOJPEG_LINK_TARGET}) -+ ELSE() -+ # Fallback just in case an older environment sets libjpeg-turbo_FOUND -+ # but doesn't define modern CMake targets -+ LIST(APPEND LIBRARIES turbojpeg) -+ ENDIF() - -- LIST(APPEND LIBFREENECT2_DLLS -- ${TurboJPEG_DLL} -- ) - ENDIF() - - SET(HAVE_OpenGL disabled) From fdfabe3465702e5320c11df25dcee53622773769 Mon Sep 17 00:00:00 2001 From: tartanpaint <35690467+tartanpaint@users.noreply.github.com> Date: Wed, 19 Aug 2026 08:25:49 +0100 Subject: [PATCH 24/36] Provide comments referencing specific libjpeg-turbo commits used for patches --- ports/libjpeg-turbo/portfile.cmake | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ports/libjpeg-turbo/portfile.cmake b/ports/libjpeg-turbo/portfile.cmake index f49301199054cc..4e9c06e129f5b7 100644 --- a/ports/libjpeg-turbo/portfile.cmake +++ b/ports/libjpeg-turbo/portfile.cmake @@ -15,9 +15,9 @@ vcpkg_from_github( # workaround for vcpkg bug see #5697 on github for more information workaround_cmake_system_processor.patch # apply libjpeg-turbo patches for dependency issues https://github.com/libjpeg-turbo/libjpeg-turbo/issues/901 - 0001-Build-Fix-CMake-pkg-config-file-if-WITH_SYSTEM_.patch - 0002-Build-Try-to-find-libspng-via-CMake-config-file.patch - 0003-Build-Use-spng-spng_static-if-spng-spng-unavail.patch + 0001-Build-Fix-CMake-pkg-config-file-if-WITH_SYSTEM_.patch # https://github.com/libjpeg-turbo/libjpeg-turbo/commit/95156233739078e7d4de0aeeacc4b0595630f393 + 0002-Build-Try-to-find-libspng-via-CMake-config-file.patch # https://github.com/libjpeg-turbo/libjpeg-turbo/commit/240e20d87c0b7d17614687ddc55ccd1fc631daf9 + 0003-Build-Use-spng-spng_static-if-spng-spng-unavail.patch # https://github.com/libjpeg-turbo/libjpeg-turbo/commit/204e5c2bed4401309c26dc6ed95001e2fc50f833 ) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "wasm32") From 63ac7fd41f682067e9eb4876dc7c1c2d4bc5476e Mon Sep 17 00:00:00 2001 From: tartanpaint <35690467+tartanpaint@users.noreply.github.com> Date: Wed, 19 Aug 2026 08:31:04 +0100 Subject: [PATCH 25/36] Update version database --- versions/l-/libfreenect2.json | 2 +- versions/l-/libjpeg-turbo.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/versions/l-/libfreenect2.json b/versions/l-/libfreenect2.json index cd7ea4f6f6d78d..1a365b965f26d4 100644 --- a/versions/l-/libfreenect2.json +++ b/versions/l-/libfreenect2.json @@ -1,7 +1,7 @@ { "versions": [ { - "git-tree": "ba18ba197df39c0f636d3762769da0362f867367", + "git-tree": "0536b2a3cb8f668b07ea955363d90a88a0c1413d", "version": "0.2.1", "port-version": 3 }, diff --git a/versions/l-/libjpeg-turbo.json b/versions/l-/libjpeg-turbo.json index e8519eb36c9b6a..c291658b09068b 100644 --- a/versions/l-/libjpeg-turbo.json +++ b/versions/l-/libjpeg-turbo.json @@ -1,7 +1,7 @@ { "versions": [ { - "git-tree": "3a8c5bb75e835d5f1373796ff3d24a2b2cca8c11", + "git-tree": "783811c2eca31e50ddd871064b491461e69eefd6", "version": "3.2.0", "port-version": 1 }, From 46229a2e92714ab90fe87d32c1976e3f117cde94 Mon Sep 17 00:00:00 2001 From: tartanpaint <35690467+tartanpaint@users.noreply.github.com> Date: Wed, 19 Aug 2026 16:21:38 +0100 Subject: [PATCH 26/36] Attempt to fix libfreenect2 finding libjpeg-turbo files --- ports/libfreenect2/find_libjpegturbo.patch | 107 +++++++++++++++++---- 1 file changed, 90 insertions(+), 17 deletions(-) diff --git a/ports/libfreenect2/find_libjpegturbo.patch b/ports/libfreenect2/find_libjpegturbo.patch index 95bc42c6ee5cff..9f73121ed05000 100644 --- a/ports/libfreenect2/find_libjpegturbo.patch +++ b/ports/libfreenect2/find_libjpegturbo.patch @@ -1,19 +1,92 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index d8ef047..c12f53a 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -237,10 +237,12 @@ IF(ENABLE_TEGRAJPEG) - ENDIF() +diff --git a/cmake_modules/FindTurboJPEG.cmake b/cmake_modules/FindTurboJPEG.cmake +index 55f7307..2b0c019 100644 +--- a/cmake_modules/FindTurboJPEG.cmake ++++ b/cmake_modules/FindTurboJPEG.cmake +@@ -1,67 +1,24 @@ +-# FindTurboJPEG.cmake +-# Uses environment variable TurboJPEG_ROOT as backup +-# - TurboJPEG_FOUND +-# - TurboJPEG_INCLUDE_DIRS +-# - TurboJPEG_LIBRARIES ++# Delegate to the modern config provided by vcpkg's libjpeg-turbo port ++find_package(libjpeg-turbo CONFIG REQUIRED) - IF(LIBFREENECT2_WITH_VT_SUPPORT) -- FIND_PACKAGE(TurboJPEG) -+ find_package(libjpeg-turbo CONFIG) -+ find_package(TurboJPEG NAMES libjpeg-turbo) - ELSE() - # VAAPI can fail to start at runtime. It must have a fallback. -- FIND_PACKAGE(TurboJPEG REQUIRED) -+ find_package(libjpeg-turbo CONFIG REQUIRED) -+ find_package(TurboJPEG NAMES libjpeg-turbo REQUIRED) - ENDIF() +-FIND_PATH(TurboJPEG_INCLUDE_DIRS +- turbojpeg.h +- DOC "Found TurboJPEG include directory" +- PATHS +- "${DEPENDS_DIR}/libjpeg_turbo" +- "${DEPENDS_DIR}/libjpeg-turbo64" +- "/usr/local/opt/jpeg-turbo" # homebrew +- "/opt/local" # macports +- "C:/libjpeg-turbo64" +- "/opt/libjpeg-turbo" +- ENV TurboJPEG_ROOT +- PATH_SUFFIXES +- include +-) ++# Map the modern target back to the legacy variables upstream libfreenect2 expects ++if(TARGET libjpeg-turbo::turbojpeg) ++ set(TurboJPEG_LIBRARIES libjpeg-turbo::turbojpeg) ++ set(TurboJPEG_FOUND TRUE) ++elseif(TARGET libjpeg-turbo::turbojpeg-static) ++ set(TurboJPEG_LIBRARIES libjpeg-turbo::turbojpeg-static) ++ set(TurboJPEG_FOUND TRUE) ++else() ++ set(TurboJPEG_FOUND FALSE) ++endif() - SET(HAVE_TurboJPEG no) +-#Library names: +-# debian sid,strech: libturbojpeg0 +-# debian/ubuntu else: libturbojpeg1-dev #provided by libjpeg-turbo8-dev (ubuntu) +-FIND_LIBRARY(TurboJPEG_LIBRARIES +- NAMES libturbojpeg.so.1 libturbojpeg.so.0 turbojpeg +- DOC "Found TurboJPEG library path" +- PATHS +- "${DEPENDS_DIR}/libjpeg_turbo" +- "${DEPENDS_DIR}/libjpeg-turbo64" +- "/usr/local/opt/jpeg-turbo" # homebrew +- "/opt/local" # macports +- "C:/libjpeg-turbo64" +- "/opt/libjpeg-turbo" +- ENV TurboJPEG_ROOT +- PATH_SUFFIXES +- lib +- lib64 +-) ++# We deliberately leave TurboJPEG_INCLUDE_DIRS unset. ++# Modern CMake targets (like libjpeg-turbo::turbojpeg) automatically ++# propagate their include directories via INTERFACE_INCLUDE_DIRECTORIES ++# when they are appended to the TARGET_LINK_LIBRARIES list. + +-IF(WIN32) +-FIND_FILE(TurboJPEG_DLL +- turbojpeg.dll +- DOC "Found TurboJPEG DLL path" +- PATHS +- "${DEPENDS_DIR}/libjpeg_turbo" +- "${DEPENDS_DIR}/libjpeg-turbo64" +- "C:/libjpeg-turbo64" +- ENV TurboJPEG_ROOT +- PATH_SUFFIXES +- bin ++include(FindPackageHandleStandardArgs) ++find_package_handle_standard_args(TurboJPEG ++ FOUND_VAR TurboJPEG_FOUND ++ REQUIRED_VARS TurboJPEG_LIBRARIES + ) +-ENDIF() +- +-IF(TurboJPEG_INCLUDE_DIRS AND TurboJPEG_LIBRARIES) +-INCLUDE(CheckCSourceCompiles) +-set(CMAKE_REQUIRED_INCLUDES ${TurboJPEG_INCLUDE_DIRS}) +-set(CMAKE_REQUIRED_LIBRARIES ${TurboJPEG_LIBRARIES}) +-check_c_source_compiles("#include \nint main(void) { tjhandle h=tjInitCompress(); return 0; }" TURBOJPEG_WORKS) +-set(CMAKE_REQUIRED_DEFINITIONS) +-set(CMAKE_REQUIRED_INCLUDES) +-set(CMAKE_REQUIRED_LIBRARIES) +-ENDIF() +- +-INCLUDE(FindPackageHandleStandardArgs) +-FIND_PACKAGE_HANDLE_STANDARD_ARGS(TurboJPEG FOUND_VAR TurboJPEG_FOUND +- REQUIRED_VARS TurboJPEG_LIBRARIES TurboJPEG_INCLUDE_DIRS TURBOJPEG_WORKS) From a3fde3ebe3c57bb36de1961051bc6bc6b550d896 Mon Sep 17 00:00:00 2001 From: tartanpaint <35690467+tartanpaint@users.noreply.github.com> Date: Wed, 19 Aug 2026 16:24:47 +0100 Subject: [PATCH 27/36] Update version database --- versions/l-/libfreenect2.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/versions/l-/libfreenect2.json b/versions/l-/libfreenect2.json index 1a365b965f26d4..832eb585bce103 100644 --- a/versions/l-/libfreenect2.json +++ b/versions/l-/libfreenect2.json @@ -1,7 +1,7 @@ { "versions": [ { - "git-tree": "0536b2a3cb8f668b07ea955363d90a88a0c1413d", + "git-tree": "3fb191e27223ebd02ecf3df15bf4e4f06613429a", "version": "0.2.1", "port-version": 3 }, From 863daa7448ddb5d1aae4ed557d6dd05db826887e Mon Sep 17 00:00:00 2001 From: tartanpaint <35690467+tartanpaint@users.noreply.github.com> Date: Wed, 19 Aug 2026 17:02:28 +0100 Subject: [PATCH 28/36] Try to simplify libfreenect2 FindTurboJPEG patch --- ports/libfreenect2/find_libjpegturbo.patch | 59 +++++++++------------- 1 file changed, 24 insertions(+), 35 deletions(-) diff --git a/ports/libfreenect2/find_libjpegturbo.patch b/ports/libfreenect2/find_libjpegturbo.patch index 9f73121ed05000..1343097576b540 100644 --- a/ports/libfreenect2/find_libjpegturbo.patch +++ b/ports/libfreenect2/find_libjpegturbo.patch @@ -1,15 +1,13 @@ diff --git a/cmake_modules/FindTurboJPEG.cmake b/cmake_modules/FindTurboJPEG.cmake -index 55f7307..2b0c019 100644 +index 55f7307..5ee9c34 100644 --- a/cmake_modules/FindTurboJPEG.cmake +++ b/cmake_modules/FindTurboJPEG.cmake -@@ -1,67 +1,24 @@ --# FindTurboJPEG.cmake +@@ -1,58 +1,19 @@ + # FindTurboJPEG.cmake -# Uses environment variable TurboJPEG_ROOT as backup -# - TurboJPEG_FOUND -# - TurboJPEG_INCLUDE_DIRS -# - TurboJPEG_LIBRARIES -+# Delegate to the modern config provided by vcpkg's libjpeg-turbo port -+find_package(libjpeg-turbo CONFIG REQUIRED) -FIND_PATH(TurboJPEG_INCLUDE_DIRS - turbojpeg.h @@ -25,16 +23,7 @@ index 55f7307..2b0c019 100644 - PATH_SUFFIXES - include -) -+# Map the modern target back to the legacy variables upstream libfreenect2 expects -+if(TARGET libjpeg-turbo::turbojpeg) -+ set(TurboJPEG_LIBRARIES libjpeg-turbo::turbojpeg) -+ set(TurboJPEG_FOUND TRUE) -+elseif(TARGET libjpeg-turbo::turbojpeg-static) -+ set(TurboJPEG_LIBRARIES libjpeg-turbo::turbojpeg-static) -+ set(TurboJPEG_FOUND TRUE) -+else() -+ set(TurboJPEG_FOUND FALSE) -+endif() ++find_package(libjpeg-turbo CONFIG REQUIRED) -#Library names: -# debian sid,strech: libturbojpeg0 @@ -54,10 +43,16 @@ index 55f7307..2b0c019 100644 - lib - lib64 -) -+# We deliberately leave TurboJPEG_INCLUDE_DIRS unset. -+# Modern CMake targets (like libjpeg-turbo::turbojpeg) automatically -+# propagate their include directories via INTERFACE_INCLUDE_DIRECTORIES -+# when they are appended to the TARGET_LINK_LIBRARIES list. ++# Map the modern target back to the legacy variables upstream libfreenect2 expects ++if(TARGET libjpeg-turbo::turbojpeg) ++ set(TurboJPEG_LIBRARIES libjpeg-turbo::turbojpeg) ++ set(TurboJPEG_FOUND TRUE) ++elseif(TARGET libjpeg-turbo::turbojpeg-static) ++ set(TurboJPEG_LIBRARIES libjpeg-turbo::turbojpeg-static) ++ set(TurboJPEG_FOUND TRUE) ++else() ++ set(TurboJPEG_FOUND FALSE) ++endif() -IF(WIN32) -FIND_FILE(TurboJPEG_DLL @@ -70,23 +65,17 @@ index 55f7307..2b0c019 100644 - ENV TurboJPEG_ROOT - PATH_SUFFIXES - bin -+include(FindPackageHandleStandardArgs) -+find_package_handle_standard_args(TurboJPEG -+ FOUND_VAR TurboJPEG_FOUND -+ REQUIRED_VARS TurboJPEG_LIBRARIES - ) +-) -ENDIF() - -IF(TurboJPEG_INCLUDE_DIRS AND TurboJPEG_LIBRARIES) --INCLUDE(CheckCSourceCompiles) --set(CMAKE_REQUIRED_INCLUDES ${TurboJPEG_INCLUDE_DIRS}) --set(CMAKE_REQUIRED_LIBRARIES ${TurboJPEG_LIBRARIES}) --check_c_source_compiles("#include \nint main(void) { tjhandle h=tjInitCompress(); return 0; }" TURBOJPEG_WORKS) --set(CMAKE_REQUIRED_DEFINITIONS) --set(CMAKE_REQUIRED_INCLUDES) --set(CMAKE_REQUIRED_LIBRARIES) --ENDIF() -- --INCLUDE(FindPackageHandleStandardArgs) --FIND_PACKAGE_HANDLE_STANDARD_ARGS(TurboJPEG FOUND_VAR TurboJPEG_FOUND ++IF(TurboJPEG_LIBRARIES) + INCLUDE(CheckCSourceCompiles) + set(CMAKE_REQUIRED_INCLUDES ${TurboJPEG_INCLUDE_DIRS}) + set(CMAKE_REQUIRED_LIBRARIES ${TurboJPEG_LIBRARIES}) +@@ -64,4 +25,4 @@ ENDIF() + + INCLUDE(FindPackageHandleStandardArgs) + FIND_PACKAGE_HANDLE_STANDARD_ARGS(TurboJPEG FOUND_VAR TurboJPEG_FOUND - REQUIRED_VARS TurboJPEG_LIBRARIES TurboJPEG_INCLUDE_DIRS TURBOJPEG_WORKS) ++ REQUIRED_VARS TurboJPEG_LIBRARIES TURBOJPEG_WORKS) From adefe48f904e69cf555fdeefd3ec88f1ffe655f3 Mon Sep 17 00:00:00 2001 From: tartanpaint <35690467+tartanpaint@users.noreply.github.com> Date: Wed, 19 Aug 2026 17:03:52 +0100 Subject: [PATCH 29/36] Update version database --- versions/l-/libfreenect2.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/versions/l-/libfreenect2.json b/versions/l-/libfreenect2.json index 832eb585bce103..3dccedc1b0dbfe 100644 --- a/versions/l-/libfreenect2.json +++ b/versions/l-/libfreenect2.json @@ -1,7 +1,7 @@ { "versions": [ { - "git-tree": "3fb191e27223ebd02ecf3df15bf4e4f06613429a", + "git-tree": "c21b39d3f4674bc3b6ed237cd143be677bb0236b", "version": "0.2.1", "port-version": 3 }, From 268667ab6faf2b106b3dfcaa3951f67a9f97c065 Mon Sep 17 00:00:00 2001 From: tartanpaint <35690467+tartanpaint@users.noreply.github.com> Date: Sat, 22 Aug 2026 10:41:09 +0100 Subject: [PATCH 30/36] Consolidate upstream libjpeg-turbo commits in to a single patch file as suggested --- ...Make-pkg-config-file-if-WITH_SYSTEM_.patch | 50 ------------ ...o-find-libspng-via-CMake-config-file.patch | 80 ------------------- ...png-spng_static-if-spng-spng-unavail.patch | 33 -------- ports/libjpeg-turbo/portfile.cmake | 8 +- .../system-dependency-fixes-pr-901.patch | 59 ++++++++++++++ 5 files changed, 64 insertions(+), 166 deletions(-) delete mode 100644 ports/libjpeg-turbo/0001-Build-Fix-CMake-pkg-config-file-if-WITH_SYSTEM_.patch delete mode 100644 ports/libjpeg-turbo/0002-Build-Try-to-find-libspng-via-CMake-config-file.patch delete mode 100644 ports/libjpeg-turbo/0003-Build-Use-spng-spng_static-if-spng-spng-unavail.patch create mode 100644 ports/libjpeg-turbo/system-dependency-fixes-pr-901.patch diff --git a/ports/libjpeg-turbo/0001-Build-Fix-CMake-pkg-config-file-if-WITH_SYSTEM_.patch b/ports/libjpeg-turbo/0001-Build-Fix-CMake-pkg-config-file-if-WITH_SYSTEM_.patch deleted file mode 100644 index 8ff5e1675f0b09..00000000000000 --- a/ports/libjpeg-turbo/0001-Build-Fix-CMake-pkg-config-file-if-WITH_SYSTEM_.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 95156233739078e7d4de0aeeacc4b0595630f393 Mon Sep 17 00:00:00 2001 -From: DRC -Date: Wed, 15 Jul 2026 13:03:38 -0400 -Subject: [PATCH 1/2] Build: Fix CMake pkg config file if WITH_SYSTEM_* - -If WITH_SYSTEM_ZLIB or WITH_SYSTEM_SPNG is defined, then the generated -CMake package config file will include (respectively) - - INTERFACE_LINK_LIBRARIES "ZLIB::ZLIB" - -or - - INTERFACE_LINK_LIBRARIES "PkgConfig::spng" - -in the libjpeg-turbo::turbojpeg and libjpeg-turbo::turbojpeg-static -target properties. Thus, our CMake package config file needs to find -those dependencies. - -Fixes #901 ---- - release/Config.cmake.in | 15 +++++++++++++++ - 1 file changed, 15 insertions(+) - -diff --git a/release/Config.cmake.in b/release/Config.cmake.in -index 0c1ba8aa..04c147ef 100644 ---- a/release/Config.cmake.in -+++ b/release/Config.cmake.in -@@ -1,4 +1,19 @@ - @PACKAGE_INIT@ - -+set(WITH_SYSTEM_SPNG @WITH_SYSTEM_SPNG@) -+set(WITH_SYSTEM_ZLIB @WITH_SYSTEM_ZLIB@) -+ -+if(WITH_SYSTEM_SPNG OR WITH_SYSTEM_ZLIB) -+ include(CMakeFindDependencyMacro) -+ if(WITH_SYSTEM_SPNG) -+ find_dependency(PkgConfig) -+ if(PkgConfig_FOUND) -+ pkg_check_modules(spng REQUIRED spng IMPORTED_TARGET) -+ endif() -+ else() -+ find_dependency(ZLIB) -+ endif() -+endif() -+ - include("${CMAKE_CURRENT_LIST_DIR}/@CMAKE_PROJECT_NAME@Targets.cmake") - check_required_components("@CMAKE_PROJECT_NAME@") --- -2.47.1.windows.1 - diff --git a/ports/libjpeg-turbo/0002-Build-Try-to-find-libspng-via-CMake-config-file.patch b/ports/libjpeg-turbo/0002-Build-Try-to-find-libspng-via-CMake-config-file.patch deleted file mode 100644 index 90da15ae3c3903..00000000000000 --- a/ports/libjpeg-turbo/0002-Build-Try-to-find-libspng-via-CMake-config-file.patch +++ /dev/null @@ -1,80 +0,0 @@ -From 240e20d87c0b7d17614687ddc55ccd1fc631daf9 Mon Sep 17 00:00:00 2001 -From: DRC -Date: Thu, 16 Jul 2026 11:22:01 -0400 -Subject: [PATCH 2/2] Build: Try to find libspng via CMake config file - -Currently only vcpkg and Slackware seem to provide a libspng CMake -package config file, and the one in Slackware is slightly broken. (It -doesn't include CMakeFindDependencyMacro, so find_dependency() fails.) -Thus, I am only barely confident that this works. - -CMakeLists.txt: - -- If WITH_SYSTEM_SPNG, silently try to find libspng via a CMake package - config file and fall back to using pkg-config. - -- If WITH_SYSTEM_SPNG, allow the imported libspng target to be - overridden with a new CMake variable (SPNG_TARGET.) - -Config.cmake.in: - -- If WITH_SYSTEM_SPNG, call find_dependency(SPNG) if the libspng - imported target doesn't start with PkgConfig::. - -Further addresses limitations discussed in #901 ---- - CMakeLists.txt | 14 +++++++++++--- - release/Config.cmake.in | 11 ++++++++--- - 2 files changed, 19 insertions(+), 6 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index f1442728..767e9068 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -735,10 +735,18 @@ if(WITH_TURBOJPEG OR WITH_TOOLS OR WITH_TESTS) - boolean_number(WITH_SYSTEM_SPNG) - report_option(WITH_SYSTEM_SPNG "System-supplied libspng") - if(WITH_SYSTEM_SPNG) -- include(FindPkgConfig) -- pkg_check_modules(spng REQUIRED spng IMPORTED_TARGET) -+ find_package(SPNG CONFIG QUIET) -+ if(SPNG_FOUND) -+ set(SPNG_TARGET_DEFAULT spng::spng) -+ else() -+ include(FindPkgConfig) -+ pkg_check_modules(spng REQUIRED spng IMPORTED_TARGET) -+ set(SPNG_TARGET_DEFAULT PkgConfig::spng) -+ endif() -+ set(SPNG_TARGET ${SPNG_TARGET_DEFAULT} CACHE STRING -+ "The imported target to use when linking libspng") - unset(SPNG_STATIC_SOURCES) -- set(SPNG_LIBRARY PkgConfig::spng) -+ set(SPNG_LIBRARY ${SPNG_TARGET}) - else() - option(WITH_SYSTEM_ZLIB - "Build ${CMAKE_PROJECT_NAME} against the system-supplied zlib implementation rather than the implementation in the ${CMAKE_PROJECT_NAME} source tree" -diff --git a/release/Config.cmake.in b/release/Config.cmake.in -index 04c147ef..dedc3617 100644 ---- a/release/Config.cmake.in -+++ b/release/Config.cmake.in -@@ -6,9 +6,14 @@ set(WITH_SYSTEM_ZLIB @WITH_SYSTEM_ZLIB@) - if(WITH_SYSTEM_SPNG OR WITH_SYSTEM_ZLIB) - include(CMakeFindDependencyMacro) - if(WITH_SYSTEM_SPNG) -- find_dependency(PkgConfig) -- if(PkgConfig_FOUND) -- pkg_check_modules(spng REQUIRED spng IMPORTED_TARGET) -+ set(SPNG_LIBRARY @SPNG_LIBRARY@) -+ if(SPNG_LIBRARY MATCHES "PkgConfig::") -+ find_dependency(PkgConfig) -+ if(PkgConfig_FOUND) -+ pkg_check_modules(spng REQUIRED spng IMPORTED_TARGET) -+ endif() -+ else() -+ find_dependency(SPNG) - endif() - else() - find_dependency(ZLIB) --- -2.47.1.windows.1 - diff --git a/ports/libjpeg-turbo/0003-Build-Use-spng-spng_static-if-spng-spng-unavail.patch b/ports/libjpeg-turbo/0003-Build-Use-spng-spng_static-if-spng-spng-unavail.patch deleted file mode 100644 index 8e189bd8496ab1..00000000000000 --- a/ports/libjpeg-turbo/0003-Build-Use-spng-spng_static-if-spng-spng-unavail.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 204e5c2bed4401309c26dc6ed95001e2fc50f833 Mon Sep 17 00:00:00 2001 -From: DRC -Date: Fri, 17 Jul 2026 12:45:13 -0400 -Subject: [PATCH] Build: Use spng::spng_static if spng::spng unavail - -This will be the case if libspng was built with --DSPNG_STATIC=1 -DSPNG_SHARED=0 - -Refer to #901 ---- - CMakeLists.txt | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 767e9068..045da2a7 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -737,7 +737,11 @@ if(WITH_TURBOJPEG OR WITH_TOOLS OR WITH_TESTS) - if(WITH_SYSTEM_SPNG) - find_package(SPNG CONFIG QUIET) - if(SPNG_FOUND) -- set(SPNG_TARGET_DEFAULT spng::spng) -+ if(TARGET spng::spng) -+ set(SPNG_TARGET_DEFAULT spng::spng) -+ elseif(TARGET spng::spng_static) -+ set(SPNG_TARGET_DEFAULT spng::spng_static) -+ endif() - else() - include(FindPkgConfig) - pkg_check_modules(spng REQUIRED spng IMPORTED_TARGET) --- -2.47.1.windows.1 - diff --git a/ports/libjpeg-turbo/portfile.cmake b/ports/libjpeg-turbo/portfile.cmake index 4e9c06e129f5b7..df0f35f371b4ed 100644 --- a/ports/libjpeg-turbo/portfile.cmake +++ b/ports/libjpeg-turbo/portfile.cmake @@ -15,9 +15,11 @@ vcpkg_from_github( # workaround for vcpkg bug see #5697 on github for more information workaround_cmake_system_processor.patch # apply libjpeg-turbo patches for dependency issues https://github.com/libjpeg-turbo/libjpeg-turbo/issues/901 - 0001-Build-Fix-CMake-pkg-config-file-if-WITH_SYSTEM_.patch # https://github.com/libjpeg-turbo/libjpeg-turbo/commit/95156233739078e7d4de0aeeacc4b0595630f393 - 0002-Build-Try-to-find-libspng-via-CMake-config-file.patch # https://github.com/libjpeg-turbo/libjpeg-turbo/commit/240e20d87c0b7d17614687ddc55ccd1fc631daf9 - 0003-Build-Use-spng-spng_static-if-spng-spng-unavail.patch # https://github.com/libjpeg-turbo/libjpeg-turbo/commit/204e5c2bed4401309c26dc6ed95001e2fc50f833 + # This pacth file contains changes from the following upstream commits: + # https://github.com/libjpeg-turbo/libjpeg-turbo/commit/95156233739078e7d4de0aeeacc4b0595630f393 + # https://github.com/libjpeg-turbo/libjpeg-turbo/commit/240e20d87c0b7d17614687ddc55ccd1fc631daf9 + # https://github.com/libjpeg-turbo/libjpeg-turbo/commit/204e5c2bed4401309c26dc6ed95001e2fc50f833 + system-dependency-fixes-pr-901.patch ) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "wasm32") diff --git a/ports/libjpeg-turbo/system-dependency-fixes-pr-901.patch b/ports/libjpeg-turbo/system-dependency-fixes-pr-901.patch new file mode 100644 index 00000000000000..8778e3b845ab4b --- /dev/null +++ b/ports/libjpeg-turbo/system-dependency-fixes-pr-901.patch @@ -0,0 +1,59 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index a1293dbb..92f981d7 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -735,10 +735,22 @@ if(WITH_TURBOJPEG OR WITH_TOOLS OR WITH_TESTS) + boolean_number(WITH_SYSTEM_SPNG) + report_option(WITH_SYSTEM_SPNG "System-supplied libspng") + if(WITH_SYSTEM_SPNG) +- include(FindPkgConfig) +- pkg_check_modules(spng REQUIRED spng IMPORTED_TARGET) ++ find_package(SPNG CONFIG QUIET) ++ if(SPNG_FOUND) ++ if(TARGET spng::spng) ++ set(SPNG_TARGET_DEFAULT spng::spng) ++ elseif(TARGET spng::spng_static) ++ set(SPNG_TARGET_DEFAULT spng::spng_static) ++ endif() ++ else() ++ include(FindPkgConfig) ++ pkg_check_modules(spng REQUIRED spng IMPORTED_TARGET) ++ set(SPNG_TARGET_DEFAULT PkgConfig::spng) ++ endif() ++ set(SPNG_TARGET ${SPNG_TARGET_DEFAULT} CACHE STRING ++ "The imported target to use when linking libspng") + unset(SPNG_STATIC_SOURCES) +- set(SPNG_LIBRARY PkgConfig::spng) ++ set(SPNG_LIBRARY ${SPNG_TARGET}) + else() + option(WITH_SYSTEM_ZLIB + "Build ${CMAKE_PROJECT_NAME} against the system-supplied zlib implementation rather than the implementation in the ${CMAKE_PROJECT_NAME} source tree" +diff --git a/release/Config.cmake.in b/release/Config.cmake.in +index 0c1ba8aa..dedc3617 100644 +--- a/release/Config.cmake.in ++++ b/release/Config.cmake.in +@@ -1,4 +1,24 @@ + @PACKAGE_INIT@ + ++set(WITH_SYSTEM_SPNG @WITH_SYSTEM_SPNG@) ++set(WITH_SYSTEM_ZLIB @WITH_SYSTEM_ZLIB@) ++ ++if(WITH_SYSTEM_SPNG OR WITH_SYSTEM_ZLIB) ++ include(CMakeFindDependencyMacro) ++ if(WITH_SYSTEM_SPNG) ++ set(SPNG_LIBRARY @SPNG_LIBRARY@) ++ if(SPNG_LIBRARY MATCHES "PkgConfig::") ++ find_dependency(PkgConfig) ++ if(PkgConfig_FOUND) ++ pkg_check_modules(spng REQUIRED spng IMPORTED_TARGET) ++ endif() ++ else() ++ find_dependency(SPNG) ++ endif() ++ else() ++ find_dependency(ZLIB) ++ endif() ++endif() ++ + include("${CMAKE_CURRENT_LIST_DIR}/@CMAKE_PROJECT_NAME@Targets.cmake") + check_required_components("@CMAKE_PROJECT_NAME@") From b27510944970651c89e6f48df1c52b04334c2e5c Mon Sep 17 00:00:00 2001 From: tartanpaint <35690467+tartanpaint@users.noreply.github.com> Date: Sat, 22 Aug 2026 10:43:57 +0100 Subject: [PATCH 31/36] Update version database --- versions/l-/libjpeg-turbo.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/versions/l-/libjpeg-turbo.json b/versions/l-/libjpeg-turbo.json index c291658b09068b..75121c637fa6a6 100644 --- a/versions/l-/libjpeg-turbo.json +++ b/versions/l-/libjpeg-turbo.json @@ -1,7 +1,7 @@ { "versions": [ { - "git-tree": "783811c2eca31e50ddd871064b491461e69eefd6", + "git-tree": "61e24d67ae58b0aaa7b45927c7242d4bd4952142", "version": "3.2.0", "port-version": 1 }, From 9944b289f375999659d25611ea5c7eea23391580 Mon Sep 17 00:00:00 2001 From: tartanpaint <35690467+tartanpaint@users.noreply.github.com> Date: Sat, 22 Aug 2026 13:07:19 +0100 Subject: [PATCH 32/36] Fix libjpeg-turbo port line endings --- ports/libjpeg-turbo/usage | 18 ++--- ports/libjpeg-turbo/vcpkg-cmake-wrapper.cmake | 76 +++++++++---------- 2 files changed, 47 insertions(+), 47 deletions(-) diff --git a/ports/libjpeg-turbo/usage b/ports/libjpeg-turbo/usage index fd8720a89740cc..a467f5114d88bc 100644 --- a/ports/libjpeg-turbo/usage +++ b/ports/libjpeg-turbo/usage @@ -1,9 +1,9 @@ -libjpeg-turbo is compatible with built-in implementation-agnostic CMake targets: - - find_package(JPEG REQUIRED) - target_link_libraries(main PRIVATE JPEG::JPEG) - -libjpeg-turbo provides CMake targets for the TurboJPEG C API: - - find_package(libjpeg-turbo CONFIG REQUIRED) - target_link_libraries(main PRIVATE $,libjpeg-turbo::turbojpeg,libjpeg-turbo::turbojpeg-static>) +libjpeg-turbo is compatible with built-in implementation-agnostic CMake targets: + + find_package(JPEG REQUIRED) + target_link_libraries(main PRIVATE JPEG::JPEG) + +libjpeg-turbo provides CMake targets for the TurboJPEG C API: + + find_package(libjpeg-turbo CONFIG REQUIRED) + target_link_libraries(main PRIVATE $,libjpeg-turbo::turbojpeg,libjpeg-turbo::turbojpeg-static>) diff --git a/ports/libjpeg-turbo/vcpkg-cmake-wrapper.cmake b/ports/libjpeg-turbo/vcpkg-cmake-wrapper.cmake index d63c58b0aaac9a..f45d757b996d2b 100644 --- a/ports/libjpeg-turbo/vcpkg-cmake-wrapper.cmake +++ b/ports/libjpeg-turbo/vcpkg-cmake-wrapper.cmake @@ -1,38 +1,38 @@ -cmake_policy(PUSH) -cmake_policy(SET CMP0012 NEW) -cmake_policy(SET CMP0054 NEW) -find_path(JPEG_INCLUDE_DIR NAMES jpeglib.h PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include" NO_DEFAULT_PATH) -find_library(JPEG_LIBRARY_RELEASE NAMES jpeg PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib" NO_DEFAULT_PATH) -find_library(JPEG_LIBRARY_DEBUG NAMES jpeg PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib" NO_DEFAULT_PATH) -if(CMAKE_VERSION VERSION_LESS 3.12 AND CMAKE_BUILD_TYPE STREQUAL "Debug") - set(JPEG_LIBRARY "${JPEG_LIBRARY_DEBUG}" CACHE FILEPATH "") -endif() -_find_package(${ARGS}) -if(JPEG_FOUND AND NOT TARGET JPEG::JPEG) - # Backfill JPEG::JPEG to versions of cmake before 3.12 - add_library(JPEG::JPEG UNKNOWN IMPORTED) - if(DEFINED JPEG_INCLUDE_DIRS) - set_target_properties(JPEG::JPEG PROPERTIES - INTERFACE_INCLUDE_DIRECTORIES "${JPEG_INCLUDE_DIRS}") - endif() - if(EXISTS "${JPEG_LIBRARY}") - set_target_properties(JPEG::JPEG PROPERTIES - IMPORTED_LINK_INTERFACE_LANGUAGES "C" - IMPORTED_LOCATION "${JPEG_LIBRARY}") - endif() - if(EXISTS "${JPEG_LIBRARY_RELEASE}") - set_property(TARGET JPEG::JPEG APPEND PROPERTY - IMPORTED_CONFIGURATIONS RELEASE) - set_target_properties(JPEG::JPEG PROPERTIES - IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C" - IMPORTED_LOCATION_RELEASE "${JPEG_LIBRARY_RELEASE}") - endif() - if(EXISTS "${JPEG_LIBRARY_DEBUG}") - set_property(TARGET JPEG::JPEG APPEND PROPERTY - IMPORTED_CONFIGURATIONS DEBUG) - set_target_properties(JPEG::JPEG PROPERTIES - IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "C" - IMPORTED_LOCATION_DEBUG "${JPEG_LIBRARY_DEBUG}") - endif() -endif() -cmake_policy(POP) +cmake_policy(PUSH) +cmake_policy(SET CMP0012 NEW) +cmake_policy(SET CMP0054 NEW) +find_path(JPEG_INCLUDE_DIR NAMES jpeglib.h PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include" NO_DEFAULT_PATH) +find_library(JPEG_LIBRARY_RELEASE NAMES jpeg PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib" NO_DEFAULT_PATH) +find_library(JPEG_LIBRARY_DEBUG NAMES jpeg PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib" NO_DEFAULT_PATH) +if(CMAKE_VERSION VERSION_LESS 3.12 AND CMAKE_BUILD_TYPE STREQUAL "Debug") + set(JPEG_LIBRARY "${JPEG_LIBRARY_DEBUG}" CACHE FILEPATH "") +endif() +_find_package(${ARGS}) +if(JPEG_FOUND AND NOT TARGET JPEG::JPEG) + # Backfill JPEG::JPEG to versions of cmake before 3.12 + add_library(JPEG::JPEG UNKNOWN IMPORTED) + if(DEFINED JPEG_INCLUDE_DIRS) + set_target_properties(JPEG::JPEG PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${JPEG_INCLUDE_DIRS}") + endif() + if(EXISTS "${JPEG_LIBRARY}") + set_target_properties(JPEG::JPEG PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES "C" + IMPORTED_LOCATION "${JPEG_LIBRARY}") + endif() + if(EXISTS "${JPEG_LIBRARY_RELEASE}") + set_property(TARGET JPEG::JPEG APPEND PROPERTY + IMPORTED_CONFIGURATIONS RELEASE) + set_target_properties(JPEG::JPEG PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C" + IMPORTED_LOCATION_RELEASE "${JPEG_LIBRARY_RELEASE}") + endif() + if(EXISTS "${JPEG_LIBRARY_DEBUG}") + set_property(TARGET JPEG::JPEG APPEND PROPERTY + IMPORTED_CONFIGURATIONS DEBUG) + set_target_properties(JPEG::JPEG PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "C" + IMPORTED_LOCATION_DEBUG "${JPEG_LIBRARY_DEBUG}") + endif() +endif() +cmake_policy(POP) From 12c6dea0daf83dbcfb8552182b4d045e9ff06611 Mon Sep 17 00:00:00 2001 From: tartanpaint <35690467+tartanpaint@users.noreply.github.com> Date: Sat, 22 Aug 2026 13:09:11 +0100 Subject: [PATCH 33/36] Update version database --- versions/l-/libjpeg-turbo.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/versions/l-/libjpeg-turbo.json b/versions/l-/libjpeg-turbo.json index 75121c637fa6a6..f858bd8e789530 100644 --- a/versions/l-/libjpeg-turbo.json +++ b/versions/l-/libjpeg-turbo.json @@ -1,7 +1,7 @@ { "versions": [ { - "git-tree": "61e24d67ae58b0aaa7b45927c7242d4bd4952142", + "git-tree": "48078c694d4b74a14a6236143ea4d0be337f0801", "version": "3.2.0", "port-version": 1 }, From 8516d07444d40a34a5a3f1b6941ab9f2c9ab5d6e Mon Sep 17 00:00:00 2001 From: tartanpaint <35690467+tartanpaint@users.noreply.github.com> Date: Sat, 22 Aug 2026 13:46:52 +0100 Subject: [PATCH 34/36] Update version database --- versions/l-/libfreenect2.json | 5 ----- 1 file changed, 5 deletions(-) diff --git a/versions/l-/libfreenect2.json b/versions/l-/libfreenect2.json index 3dccedc1b0dbfe..9ede3ca27d12ba 100644 --- a/versions/l-/libfreenect2.json +++ b/versions/l-/libfreenect2.json @@ -1,10 +1,5 @@ { "versions": [ - { - "git-tree": "c21b39d3f4674bc3b6ed237cd143be677bb0236b", - "version": "0.2.1", - "port-version": 3 - }, { "git-tree": "69f6ddad233507911805c1c313b5030d6c771baa", "version": "0.2.1", From 9fa31bc894987c9be4e3724e0f825053610c7171 Mon Sep 17 00:00:00 2001 From: tartanpaint <35690467+tartanpaint@users.noreply.github.com> Date: Mon, 24 Aug 2026 17:23:02 +0100 Subject: [PATCH 35/36] Fix typo in comment --- ports/libjpeg-turbo/portfile.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ports/libjpeg-turbo/portfile.cmake b/ports/libjpeg-turbo/portfile.cmake index df0f35f371b4ed..64f64497da5fad 100644 --- a/ports/libjpeg-turbo/portfile.cmake +++ b/ports/libjpeg-turbo/portfile.cmake @@ -15,7 +15,7 @@ vcpkg_from_github( # workaround for vcpkg bug see #5697 on github for more information workaround_cmake_system_processor.patch # apply libjpeg-turbo patches for dependency issues https://github.com/libjpeg-turbo/libjpeg-turbo/issues/901 - # This pacth file contains changes from the following upstream commits: + # This patch file contains changes from the following upstream commits: # https://github.com/libjpeg-turbo/libjpeg-turbo/commit/95156233739078e7d4de0aeeacc4b0595630f393 # https://github.com/libjpeg-turbo/libjpeg-turbo/commit/240e20d87c0b7d17614687ddc55ccd1fc631daf9 # https://github.com/libjpeg-turbo/libjpeg-turbo/commit/204e5c2bed4401309c26dc6ed95001e2fc50f833 From ad0427e6056d543c149dba8198cd67b2e21b4548 Mon Sep 17 00:00:00 2001 From: tartanpaint <35690467+tartanpaint@users.noreply.github.com> Date: Mon, 24 Aug 2026 17:35:21 +0100 Subject: [PATCH 36/36] Update version database --- versions/l-/libjpeg-turbo.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/versions/l-/libjpeg-turbo.json b/versions/l-/libjpeg-turbo.json index f858bd8e789530..bdff2e069cee5a 100644 --- a/versions/l-/libjpeg-turbo.json +++ b/versions/l-/libjpeg-turbo.json @@ -1,7 +1,7 @@ { "versions": [ { - "git-tree": "48078c694d4b74a14a6236143ea4d0be337f0801", + "git-tree": "61a22603549b0f5c4ef1e5282f8d2c51ec40f952", "version": "3.2.0", "port-version": 1 },