This commit is contained in:
tartanpaint 2026-09-04 07:34:25 +00:00 committed by GitHub
commit 336a55aca3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 127 additions and 50 deletions

View File

@ -14,6 +14,12 @@ 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
# apply libjpeg-turbo patches for dependency issues https://github.com/libjpeg-turbo/libjpeg-turbo/issues/901
# 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
system-dependency-fixes-pr-901.patch
)
if(VCPKG_TARGET_ARCHITECTURE STREQUAL "wasm32")
@ -48,6 +54,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

View File

@ -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@")

View File

@ -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 $<IF:$<TARGET_EXISTS:libjpeg-turbo::turbojpeg>,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 $<IF:$<TARGET_EXISTS:libjpeg-turbo::turbojpeg>,libjpeg-turbo::turbojpeg,libjpeg-turbo::turbojpeg-static>)

View File

@ -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)

View File

@ -1,10 +1,12 @@
{
"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",
"license": "BSD-3-Clause AND IJG",
"dependencies": [
"libspng",
{
"name": "vcpkg-cmake",
"host": true
@ -12,7 +14,8 @@
{
"name": "vcpkg-cmake-config",
"host": true
}
},
"zlib"
],
"features": {
"jpeg7": {

View File

@ -963,6 +963,8 @@ 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-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 <wchar.h> in VS 2022 17.13 broke these with -Zc:arm64-aliased-neon-types-

View File

@ -5246,7 +5246,7 @@
},
"libjpeg-turbo": {
"baseline": "3.2.0",
"port-version": 0
"port-version": 1
},
"libjuice": {
"baseline": "1.7.2",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "61a22603549b0f5c4ef1e5282f8d2c51ec40f952",
"version": "3.2.0",
"port-version": 1
},
{
"git-tree": "c7d2d8cbb868863a698862a0da02b4af225f3c72",
"version": "3.2.0",