diff options
| author | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
|---|---|---|
| committer | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
| commit | 54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch) | |
| tree | d915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/selene | |
Diffstat (limited to 'vcpkg/ports/selene')
| -rw-r--r-- | vcpkg/ports/selene/disable_x86_intrinsics_on_arm.patch | 13 | ||||
| -rw-r--r-- | vcpkg/ports/selene/portfile.cmake | 34 | ||||
| -rw-r--r-- | vcpkg/ports/selene/tiff-deprecated-typedefs.patch | 14 | ||||
| -rw-r--r-- | vcpkg/ports/selene/trivial-pixel.patch | 23 | ||||
| -rw-r--r-- | vcpkg/ports/selene/vcpkg.json | 40 |
5 files changed, 124 insertions, 0 deletions
diff --git a/vcpkg/ports/selene/disable_x86_intrinsics_on_arm.patch b/vcpkg/ports/selene/disable_x86_intrinsics_on_arm.patch new file mode 100644 index 0000000..79e38c5 --- /dev/null +++ b/vcpkg/ports/selene/disable_x86_intrinsics_on_arm.patch @@ -0,0 +1,13 @@ +diff --git a/selene/base/Bitcount.hpp b/selene/base/Bitcount.hpp +index a4d69e4..709f650 100755 +--- a/selene/base/Bitcount.hpp ++++ b/selene/base/Bitcount.hpp +@@ -69,7 +69,7 @@ inline std::size_t bit_count(unsigned long long x) + return static_cast<std::size_t>(__builtin_popcountll(x)); + } + +-#elif defined(_MSC_VER) ++#elif defined(_MSC_VER) && !defined(_M_ARM) && !defined(_M_ARM64) + + /** \brief Performs a bit count on the supplied value. + * diff --git a/vcpkg/ports/selene/portfile.cmake b/vcpkg/ports/selene/portfile.cmake new file mode 100644 index 0000000..abc6e87 --- /dev/null +++ b/vcpkg/ports/selene/portfile.cmake @@ -0,0 +1,34 @@ +vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO kmhofmann/selene
+ REF v0.3.1
+ SHA512 7bc57ebe9e2442da2716eb5c1af11f8d610b0b09fe96e3122d1028575732b6045a987c499bbf7de53003edd627b8809d86c80ea4975fc2264a1c61d5891a46c3
+ HEAD_REF master
+ PATCHES
+ disable_x86_intrinsics_on_arm.patch
+ tiff-deprecated-typedefs.patch
+ trivial-pixel.patch
+)
+
+vcpkg_check_features(
+ OUT_FEATURE_OPTIONS FEATURE_OPTIONS
+ FEATURES
+ "opencv" SELENE_USE_OPENCV
+)
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS
+ -DSELENE_ARCH_NATIVE=OFF
+ ${FEATURE_OPTIONS}
+)
+
+vcpkg_cmake_install()
+vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/selene)
+vcpkg_copy_pdbs()
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+
+file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
diff --git a/vcpkg/ports/selene/tiff-deprecated-typedefs.patch b/vcpkg/ports/selene/tiff-deprecated-typedefs.patch new file mode 100644 index 0000000..e242913 --- /dev/null +++ b/vcpkg/ports/selene/tiff-deprecated-typedefs.patch @@ -0,0 +1,14 @@ +diff --git a/selene/CMakeLists.txt b/selene/CMakeLists.txt +index ab2760c..d1e1e6c 100644 +--- a/selene/CMakeLists.txt ++++ b/selene/CMakeLists.txt +@@ -229,6 +229,9 @@ if(TIFF_FOUND) + ) + + target_compile_options(selene_img_io_tiff PRIVATE ${SELENE_COMPILER_OPTIONS} ${SELENE_IMG_COMPILER_OPTIONS}) ++ if(MSVC) ++ target_compile_options(selene_img_io_tiff PRIVATE /wd4996) ++ endif() + + target_compile_definitions(selene_img_io_tiff PRIVATE ${SELENE_COMPILER_DEFINITIONS}) + diff --git a/vcpkg/ports/selene/trivial-pixel.patch b/vcpkg/ports/selene/trivial-pixel.patch new file mode 100644 index 0000000..9aeb7e4 --- /dev/null +++ b/vcpkg/ports/selene/trivial-pixel.patch @@ -0,0 +1,23 @@ +--- a/selene/img/pixel/Pixel.hpp ++++ b/selene/img/pixel/Pixel.hpp +@@ -45,6 +45,6 @@ + constexpr Pixel() noexcept = default; ///< Default constructor. Pixel values are uninitialized. + +- template <typename... Args, typename = std::enable_if_t<sizeof...(Args) == nr_channels_>> +- constexpr Pixel(Args... args) noexcept; ++ template <typename Arg1, typename... Args, typename = std::enable_if_t<sizeof...(Args) + 1 == nr_channels_>> ++ constexpr Pixel(Arg1 arg1, Args... args) noexcept; + + constexpr explicit Pixel(const std::array<T, nr_channels>& arr) noexcept; +@@ -216,8 +216,8 @@ + template <typename T, std::size_t nr_channels_, PixelFormat pixel_format_> +-template <typename... Args, typename> +-constexpr Pixel<T, nr_channels_, pixel_format_>::Pixel(Args... args) noexcept +- : data_{{static_cast<T>(args)...}} ++template <typename Arg1, typename... Args, typename> ++constexpr Pixel<T, nr_channels_, pixel_format_>::Pixel(Arg1 arg1, Args... args) noexcept ++ : data_{{static_cast<T>(arg1), static_cast<T>(args)...}} + { + static_assert(std::is_trivial<Pixel<T, nr_channels_, pixel_format_>>::value, "Pixel type is not trivial"); + static_assert(std::is_standard_layout<Pixel<T, nr_channels_, pixel_format_>>::value, + "Pixel type is not standard layout"); diff --git a/vcpkg/ports/selene/vcpkg.json b/vcpkg/ports/selene/vcpkg.json new file mode 100644 index 0000000..238e4aa --- /dev/null +++ b/vcpkg/ports/selene/vcpkg.json @@ -0,0 +1,40 @@ +{ + "name": "selene", + "version": "0.3.1", + "port-version": 8, + "description": "A C++17 image representation, processing and I/O library.", + "homepage": "https://github.com/kmhofmann/selene", + "dependencies": [ + "libjpeg-turbo", + "libpng", + { + "name": "tiff", + "default-features": false + }, + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + }, + "zlib" + ], + "features": { + "opencv": { + "description": "Enable using OpenCV", + "dependencies": [ + { + "name": "opencv", + "default-features": false, + "features": [ + "fs", + "intrinsics", + "thread" + ] + } + ] + } + } +} |