diff --git a/ports/highway/fix_dll_export.patch b/ports/highway/fix_dll_export.patch new file mode 100644 index 00000000000000..868c65fc471fed --- /dev/null +++ b/ports/highway/fix_dll_export.patch @@ -0,0 +1,91 @@ +diff --git a/hwy/contrib/thread_pool/topology.cc b/hwy/contrib/thread_pool/topology.cc +index 3d24f4f4..17f35630 100644 +--- a/hwy/contrib/thread_pool/topology.cc ++++ b/hwy/contrib/thread_pool/topology.cc +@@ -64,7 +64,7 @@ + + namespace hwy { + +-HWY_DLLEXPORT bool HaveThreadingSupport() { ++HWY_CONTRIB_DLLEXPORT bool HaveThreadingSupport() { + #if HWY_ARCH_WASM + return emscripten_has_threading_support() != 0; + #else +@@ -72,7 +72,7 @@ HWY_DLLEXPORT bool HaveThreadingSupport() { + #endif + } + +-HWY_DLLEXPORT size_t TotalLogicalProcessors() { ++HWY_CONTRIB_DLLEXPORT size_t TotalLogicalProcessors() { + size_t lp = 0; + #if HWY_ARCH_WASM + const int num_cores = emscripten_num_logical_cores(); +@@ -111,7 +111,7 @@ HWY_DLLEXPORT size_t TotalLogicalProcessors() { + #include + #endif + +-HWY_DLLEXPORT bool GetThreadAffinity(LogicalProcessorSet& lps) { ++HWY_CONTRIB_DLLEXPORT bool GetThreadAffinity(LogicalProcessorSet& lps) { + #if HWY_OS_WIN + // Only support the first 64 because WINE does not support processor groups. + const HANDLE hThread = GetCurrentThread(); +@@ -173,7 +173,7 @@ HWY_DLLEXPORT bool GetThreadAffinity(LogicalProcessorSet& lps) { + #endif + } + +-HWY_DLLEXPORT bool SetThreadAffinity(const LogicalProcessorSet& lps) { ++HWY_CONTRIB_DLLEXPORT bool SetThreadAffinity(const LogicalProcessorSet& lps) { + #if HWY_OS_WIN + const HANDLE hThread = GetCurrentThread(); + const DWORD_PTR prev = SetThreadAffinityMask(hThread, lps.Get64()); +@@ -385,7 +385,7 @@ std::vector DetectPackages(std::vector& lps) { + } // namespace + #endif // HWY_OS_LINUX + +-HWY_DLLEXPORT Topology::Topology() { ++HWY_CONTRIB_DLLEXPORT Topology::Topology() { + #if HWY_OS_LINUX + lps.resize(TotalLogicalProcessors()); + const std::vector& per_package = DetectPackages(lps); +diff --git a/hwy/contrib/thread_pool/topology.h b/hwy/contrib/thread_pool/topology.h +index 95b0835b..f80fc47c 100644 +--- a/hwy/contrib/thread_pool/topology.h ++++ b/hwy/contrib/thread_pool/topology.h +@@ -28,7 +28,7 @@ + namespace hwy { + + // Returns false if std::thread should not be used. +-HWY_DLLEXPORT bool HaveThreadingSupport(); ++HWY_CONTRIB_DLLEXPORT bool HaveThreadingSupport(); + + // Upper bound on logical processors, including hyperthreads. + static constexpr size_t kMaxLogicalProcessors = 1024; // matches glibc +@@ -38,12 +38,12 @@ using LogicalProcessorSet = BitSet4096; + + // Returns false, or sets `lps` to all logical processors which are online and + // available to the current thread. +-HWY_DLLEXPORT bool GetThreadAffinity(LogicalProcessorSet& lps); ++HWY_CONTRIB_DLLEXPORT bool GetThreadAffinity(LogicalProcessorSet& lps); + + // Ensures the current thread can only run on the logical processors in `lps`. + // Returns false if not supported (in particular on Apple), or if the + // intersection between `lps` and `GetThreadAffinity` is the empty set. +-HWY_DLLEXPORT bool SetThreadAffinity(const LogicalProcessorSet& lps); ++HWY_CONTRIB_DLLEXPORT bool SetThreadAffinity(const LogicalProcessorSet& lps); + + // Returns false, or ensures the current thread will only run on `lp`, which + // must not exceed `TotalLogicalProcessors`. Note that this merely calls +@@ -58,11 +58,11 @@ static inline bool PinThreadToLogicalProcessor(size_t lp) { + // provided by the hardware clamped to `kMaxLogicalProcessors`. + // These processors are not necessarily all usable; you can determine which are + // via GetThreadAffinity(). +-HWY_DLLEXPORT size_t TotalLogicalProcessors(); ++HWY_CONTRIB_DLLEXPORT size_t TotalLogicalProcessors(); + + struct Topology { + // Caller must check packages.empty(); if so, do not use any fields. +- HWY_DLLEXPORT Topology(); ++ HWY_CONTRIB_DLLEXPORT Topology(); + + // Clique of cores with lower latency to each other. On Apple M1 these are + // four cores sharing an L2. On Zen4 these 'CCX' are up to eight cores sharing diff --git a/ports/highway/portfile.cmake b/ports/highway/portfile.cmake index f5ea3ac7920ab9..7c7437393f893d 100644 --- a/ports/highway/portfile.cmake +++ b/ports/highway/portfile.cmake @@ -2,8 +2,10 @@ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/highway REF "${VERSION}" - SHA512 513718873ca5d1be5c781f92ef943432da4677582e15d25a247c1d3def087fdbd3fe787608d76f32a9b4f9253df88b40bd8ea570159f8106c338ba37e8a50a8d + SHA512 e94b9cc51c81157ccd6bf4d6163445b1acc1a2667dc2650d1c4aea0a5021989c08dafcb92564fcbecb9445ab2f1779051260be2f5b29c3932803b8a42ed2f824 HEAD_REF master + PATCHES + fix_dll_export.patch #https://github.com/google/highway/pull/2229 ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS diff --git a/ports/highway/vcpkg.json b/ports/highway/vcpkg.json index 64da79bb143fa1..e53821b878af32 100644 --- a/ports/highway/vcpkg.json +++ b/ports/highway/vcpkg.json @@ -1,6 +1,6 @@ { "name": "highway", - "version": "1.1.0", + "version": "1.2.0", "description": "Performance-portable, length-agnostic SIMD with runtime dispatch", "homepage": "https://github.com/google/highway", "license": "Apache-2.0", diff --git a/ports/libjxl/fix-dependencies.patch b/ports/libjxl/fix-dependencies.patch index c399807a688008..d0c6ad2abf96c2 100644 --- a/ports/libjxl/fix-dependencies.patch +++ b/ports/libjxl/fix-dependencies.patch @@ -1,8 +1,20 @@ diff --git a/third_party/CMakeLists.txt b/third_party/CMakeLists.txt -index ea22103..bafb9b6 100644 +index ea22103e..c6dbbe9f 100644 --- a/third_party/CMakeLists.txt +++ b/third_party/CMakeLists.txt -@@ -48,7 +48,11 @@ endif() +@@ -31,8 +31,9 @@ if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/highway/CMakeLists.txt" AND + configure_file("${CMAKE_CURRENT_SOURCE_DIR}/highway/LICENSE" + ${PROJECT_BINARY_DIR}/LICENSE.highway COPYONLY) + else() +- find_package(HWY 1.0.7) +- if (NOT HWY_FOUND) ++ find_package(HWY NAMES hwy REQUIRED) ++ add_library(hwy ALIAS hwy::hwy) ++ if (NOT TARGET hwy::hwy) + message(FATAL_ERROR + "Highway library (hwy) not found. Install libhwy-dev or download it " + "to third_party/highway from https://github.com/google/highway . " +@@ -48,7 +49,11 @@ endif() # brotli if (NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/brotli/c/include/brotli/decode.h" OR JPEGXL_FORCE_SYSTEM_BROTLI) @@ -15,7 +27,7 @@ index ea22103..bafb9b6 100644 if (NOT Brotli_FOUND) message(FATAL_ERROR "Brotli not found, install brotli-dev or download brotli source code to" -@@ -106,7 +110,8 @@ if (JPEGXL_ENABLE_SKCMS) +@@ -106,7 +111,8 @@ if (JPEGXL_ENABLE_SKCMS) endif () if (JPEGXL_ENABLE_VIEWERS OR NOT JPEGXL_ENABLE_SKCMS OR JPEGXL_ENABLE_PLUGINS) if( NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/lcms/.git" OR JPEGXL_FORCE_SYSTEM_LCMS2 ) diff --git a/ports/libjxl/portfile.cmake b/ports/libjxl/portfile.cmake index f8e9bbe14e9f2f..3d01b49beb1054 100644 --- a/ports/libjxl/portfile.cmake +++ b/ports/libjxl/portfile.cmake @@ -28,6 +28,7 @@ vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DJPEGXL_VERSION=${JPEGXL_VERSION}" + -DJPEGXL_FORCE_SYSTEM_HWY=ON -DJPEGXL_FORCE_SYSTEM_BROTLI=ON -DJPEGXL_FORCE_SYSTEM_HWY=ON -DJPEGXL_FORCE_SYSTEM_LCMS2=ON diff --git a/ports/libjxl/vcpkg.json b/ports/libjxl/vcpkg.json index 92e7581acaa89f..907d1a2426d60f 100644 --- a/ports/libjxl/vcpkg.json +++ b/ports/libjxl/vcpkg.json @@ -1,7 +1,7 @@ { "name": "libjxl", "version-semver": "0.10.2", - "port-version": 3, + "port-version": 4, "description": "JPEG XL image format reference implementation", "homepage": "https://github.com/libjxl/libjxl", "license": "BSD-3-Clause", diff --git a/versions/baseline.json b/versions/baseline.json index 9a9604c76d5c79..09d6f08a69b91b 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -3429,7 +3429,7 @@ "port-version": 1 }, "highway": { - "baseline": "1.1.0", + "baseline": "1.2.0", "port-version": 0 }, "hikogui": { @@ -4590,7 +4590,7 @@ }, "libjxl": { "baseline": "0.10.2", - "port-version": 3 + "port-version": 4 }, "libkeyfinder": { "baseline": "2.2.8", diff --git a/versions/h-/highway.json b/versions/h-/highway.json index 80d42ef8f2ae96..b9853f9b087e92 100644 --- a/versions/h-/highway.json +++ b/versions/h-/highway.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "6084fa0969d208dd78997f44e8b4b406aa174345", + "version": "1.2.0", + "port-version": 0 + }, { "git-tree": "c5063ea7c7a83d9bb3d70a9ac0ea8e3fc96730c8", "version": "1.1.0", diff --git a/versions/l-/libjxl.json b/versions/l-/libjxl.json index 5ba9f18f2a4c9b..1ad64a03bcaa96 100644 --- a/versions/l-/libjxl.json +++ b/versions/l-/libjxl.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "41e26aeaddac21391e72200277a3bcda04cd7072", + "version-semver": "0.10.2", + "port-version": 4 + }, { "git-tree": "d400085f5ae0a78f03ae828d6c51ea9882e80f76", "version-semver": "0.10.2",