diff --git a/ports/libjpeg-turbo/portfile.cmake b/ports/libjpeg-turbo/portfile.cmake index 4aae3d80d50381..64f64497da5fad 100644 --- a/ports/libjpeg-turbo/portfile.cmake +++ b/ports/libjpeg-turbo/portfile.cmake @@ -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 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@") 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) diff --git a/ports/libjpeg-turbo/vcpkg.json b/ports/libjpeg-turbo/vcpkg.json index bda0aee6275d12..f0551121f28594 100644 --- a/ports/libjpeg-turbo/vcpkg.json +++ b/ports/libjpeg-turbo/vcpkg.json @@ -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": { diff --git a/scripts/ci.baseline.txt b/scripts/ci.baseline.txt index 5a3d8ac478a811..20d3adc4b03db7 100644 --- a/scripts/ci.baseline.txt +++ b/scripts/ci.baseline.txt @@ -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 in VS 2022 17.13 broke these with -Zc:arm64-aliased-neon-types- diff --git a/versions/baseline.json b/versions/baseline.json index 151b3db6d8ae0c..207ae3f3303ff3 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -5234,7 +5234,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..bdff2e069cee5a 100644 --- a/versions/l-/libjpeg-turbo.json +++ b/versions/l-/libjpeg-turbo.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "61a22603549b0f5c4ef1e5282f8d2c51ec40f952", + "version": "3.2.0", + "port-version": 1 + }, { "git-tree": "c7d2d8cbb868863a698862a0da02b4af225f3c72", "version": "3.2.0",