aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/libavif
diff options
context:
space:
mode:
authorEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
committerEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
commit54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch)
treed915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/libavif
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/libavif')
-rw-r--r--vcpkg/ports/libavif/dependencies.diff52
-rw-r--r--vcpkg/ports/libavif/disable-source-utf8.patch15
-rw-r--r--vcpkg/ports/libavif/portfile.cmake37
-rw-r--r--vcpkg/ports/libavif/vcpkg.json33
4 files changed, 137 insertions, 0 deletions
diff --git a/vcpkg/ports/libavif/dependencies.diff b/vcpkg/ports/libavif/dependencies.diff
new file mode 100644
index 0000000..2a0f489
--- /dev/null
+++ b/vcpkg/ports/libavif/dependencies.diff
@@ -0,0 +1,52 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index a28e6c3..aaeb5d2 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -248,6 +248,7 @@ if(AVIF_LIBYUV_ENABLED)
+ target_compile_definitions(avif_obj PRIVATE -DAVIF_LIBYUV_ENABLED=1)
+ avif_target_link_library(yuv::yuv)
+ set(AVIF_PKG_CONFIG_EXTRA_LIBS_PRIVATE "${AVIF_PKG_CONFIG_EXTRA_LIBS_PRIVATE} -lyuv")
++ set(AVIF_PKG_CONFIG_EXTRA_REQUIRES_PRIVATE "${AVIF_PKG_CONFIG_EXTRA_REQUIRES_PRIVATE} libjpeg")
+ set(AVIF_LIB_USE_CXX ON)
+ endif(AVIF_LIBYUV_ENABLED)
+
+@@ -849,13 +850,38 @@ if(NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL)
+
+ # Enable CMake configs in VCPKG mode
+ if(BUILD_SHARED_LIBS OR VCPKG_TARGET_TRIPLET)
+- install(EXPORT ${PROJECT_NAME}-config DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME})
++ install(EXPORT ${PROJECT_NAME}-config DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME} FILE ${PROJECT_NAME}-targets.cmake)
++ if(NOT BUILD_SHARED_LIBS)
++ target_include_directories(avif_static PUBLIC $<INSTALL_INTERFACE:include>)
++ set(avif_static_link_libs yuv)
++ set(avif_find_dependencies "find_dependency(libyuv CONFIG)\n")
++ if(AVIF_CODEC_AOM_ENABLED)
++ find_package(AOM CONFIG REQUIRED)
++ list(APPEND avif_static_link_libs AOM::aom)
++ string(APPEND avif_find_dependencies "find_dependency(AOM CONFIG)\n")
++ endif()
++ if(AVIF_CODEC_DAV1D_ENABLED)
++ list(APPEND avif_static_link_libs ${DAV1D_LIBRARIES} ${CMAKE_DL_LIBS})
++ endif()
++ if(UNIX OR MINGW)
++ list(APPEND avif_static_link_libs Threads::Threads m)
++ string(APPEND avif_find_dependencies "set(THREADS_PREFER_PTHREAD_FLAG ON)\nfind_dependency(Threads)\n")
++ endif()
++ target_link_libraries(avif_static INTERFACE ${avif_static_link_libs})
++ endif()
++ file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake"
++"# Generated by vcpkg
++include(CMakeFindDependencyMacro)
++${avif_find_dependencies}
++include(\"\${CMAKE_CURRENT_LIST_DIR}/${PROJECT_NAME}-targets.cmake\")
++")
+
+ include(CMakePackageConfigHelpers)
+ write_basic_package_version_file(
+ ${PROJECT_NAME}-config-version.cmake VERSION ${PROJECT_VERSION} COMPATIBILITY SameMajorVersion
+ )
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config-version.cmake
++ ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}
+ )
+ endif()
diff --git a/vcpkg/ports/libavif/disable-source-utf8.patch b/vcpkg/ports/libavif/disable-source-utf8.patch
new file mode 100644
index 0000000..3cb92be
--- /dev/null
+++ b/vcpkg/ports/libavif/disable-source-utf8.patch
@@ -0,0 +1,15 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index baf5964..a28e6c3 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -296,8 +296,8 @@ if(MSVC)
+ # A C4556 warning will be generated on violation.
+ # Commonly used /utf-8 flag assumes UTF-8 for both source and console, which is usually not the case.
+ # Warnings can be suppressed but there will still be random characters printed to the console.
+- /source-charset:utf-8
+- /execution-charset:us-ascii
++ #/source-charset:utf-8
++ #/execution-charset:us-ascii
+ >
+ )
+ endif()
diff --git a/vcpkg/ports/libavif/portfile.cmake b/vcpkg/ports/libavif/portfile.cmake
new file mode 100644
index 0000000..ca6b231
--- /dev/null
+++ b/vcpkg/ports/libavif/portfile.cmake
@@ -0,0 +1,37 @@
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO AOMediaCodec/libavif
+ REF "v${VERSION}"
+ SHA512 a411579c851b7c46ddbd93c3549295e0901d822c817f5378b2c75b6a4f16eba1dffdf611bd1789dedeba776e701690a7437f9caeb9eb6dc382fc64935949dbf4
+ HEAD_REF master
+ PATCHES
+ dependencies.diff
+ disable-source-utf8.patch
+)
+file(REMOVE_RECURSE "${SOURCE_PATH}/third_party")
+
+set(FEATURE_OPTIONS "")
+if("aom" IN_LIST FEATURES)
+ list(APPEND FEATURE_OPTIONS "-DAVIF_CODEC_AOM=SYSTEM")
+endif()
+if("dav1d" IN_LIST FEATURES)
+ list(APPEND FEATURE_OPTIONS "-DAVIF_CODEC_DAV1D=SYSTEM")
+endif()
+
+vcpkg_find_acquire_program(PKGCONFIG)
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS
+ ${FEATURE_OPTIONS}
+ "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}"
+)
+vcpkg_cmake_install()
+vcpkg_copy_pdbs()
+vcpkg_fixup_pkgconfig()
+vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT})
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include"
+ "${CURRENT_PACKAGES_DIR}/debug/share")
+
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")
diff --git a/vcpkg/ports/libavif/vcpkg.json b/vcpkg/ports/libavif/vcpkg.json
new file mode 100644
index 0000000..63646d9
--- /dev/null
+++ b/vcpkg/ports/libavif/vcpkg.json
@@ -0,0 +1,33 @@
+{
+ "name": "libavif",
+ "version-semver": "1.3.0",
+ "port-version": 1,
+ "description": "Library for encoding and decoding AVIF files",
+ "homepage": "https://github.com/AOMediaCodec/libavif",
+ "license": "BSD-2-Clause AND Apache-2.0",
+ "dependencies": [
+ "libyuv",
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake-config",
+ "host": true
+ }
+ ],
+ "features": {
+ "aom": {
+ "description": "AV1 codec library",
+ "dependencies": [
+ "aom"
+ ]
+ },
+ "dav1d": {
+ "description": "dav1d decoder library",
+ "dependencies": [
+ "dav1d"
+ ]
+ }
+ }
+}