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/openh264 | |
Diffstat (limited to 'vcpkg/ports/openh264')
| -rw-r--r-- | vcpkg/ports/openh264/001-add-bsds-to-meson.patch | 22 | ||||
| -rw-r--r-- | vcpkg/ports/openh264/portfile.cmake | 58 | ||||
| -rw-r--r-- | vcpkg/ports/openh264/vcpkg.json | 18 |
3 files changed, 98 insertions, 0 deletions
diff --git a/vcpkg/ports/openh264/001-add-bsds-to-meson.patch b/vcpkg/ports/openh264/001-add-bsds-to-meson.patch new file mode 100644 index 0000000..cc1d2ff --- /dev/null +++ b/vcpkg/ports/openh264/001-add-bsds-to-meson.patch @@ -0,0 +1,22 @@ +diff --git a/meson.build b/meson.build +index 573f6c6..b9519b3 100644 +--- a/meson.build ++++ b/meson.build +@@ -57,7 +57,7 @@ cpp_lib = '-lstdc++' + libm_dep = cpp.find_library('m', required : false) + deps += [libm_dep] + +-if ['linux', 'android', 'ios', 'darwin'].contains(system) ++if ['linux', 'android', 'ios', 'darwin', 'freebsd', 'netbsd', 'openbsd'].contains(system) + asm_format32 = 'elf' + asm_format64 = 'elf64' + if ['ios', 'darwin'].contains(system) +@@ -109,7 +109,7 @@ if ['linux', 'android', 'ios', 'darwin'].contains(system) + error('FIXME: unhandled CPU family @0@ for @1@'.format(cpu_family, system)) + endif + +- if ['ios', 'darwin', 'android'].contains(system) ++ if ['ios', 'darwin', 'android', 'freebsd', 'openbsd'].contains(system) + cpp_lib = '-lc++' + endif + elif system == 'windows' diff --git a/vcpkg/ports/openh264/portfile.cmake b/vcpkg/ports/openh264/portfile.cmake new file mode 100644 index 0000000..330578c --- /dev/null +++ b/vcpkg/ports/openh264/portfile.cmake @@ -0,0 +1,58 @@ +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO cisco/openh264 + REF v${VERSION} + SHA512 26a03acde7153a6b40b99f00641772433a244c72a3cc4bca6d903cf3b770174d028369a2fb73b2f0774e1124db0e269758eed6d88975347a815e0366c820d247 + PATCHES + 001-add-bsds-to-meson.patch +) + +set(cxx_link_libraries "") +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + block(PROPAGATE cxx_link_libraries) + vcpkg_list(APPEND VCPKG_CMAKE_CONFIGURE_OPTIONS "-DVCPKG_DEFAULT_VARS_TO_CHECK=CMAKE_C_IMPLICIT_LINK_LIBRARIES;CMAKE_CXX_IMPLICIT_LINK_LIBRARIES") + vcpkg_cmake_get_vars(cmake_vars_file) + include("${cmake_vars_file}") + list(REMOVE_ITEM VCPKG_DETECTED_CMAKE_CXX_IMPLICIT_LINK_LIBRARIES ${VCPKG_DETECTED_CMAKE_C_IMPLICIT_LINK_LIBRARIES}) + list(TRANSFORM VCPKG_DETECTED_CMAKE_CXX_IMPLICIT_LINK_LIBRARIES REPLACE "^([^/].*)" "-l\\1") + string(JOIN " " cxx_link_libraries ${VCPKG_DETECTED_CMAKE_CXX_IMPLICIT_LINK_LIBRARIES}) + endblock() +endif() + +vcpkg_list(SET additional_binaries) +if((VCPKG_TARGET_ARCHITECTURE STREQUAL "x86" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")) + vcpkg_find_acquire_program(NASM) + vcpkg_list(APPEND additional_binaries "nasm = ['${NASM}']") +elseif(VCPKG_TARGET_IS_WINDOWS) + vcpkg_find_acquire_program(GASPREPROCESSOR) + list(JOIN GASPREPROCESSOR "','" gaspreprocessor) + vcpkg_list(APPEND additional_binaries "gas-preprocessor.pl = ['${gaspreprocessor}']") +endif() + +vcpkg_configure_meson( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + -Dtests=disabled + ADDITIONAL_BINARIES + ${additional_binaries} +) +vcpkg_install_meson() +vcpkg_copy_pdbs() +vcpkg_fixup_pkgconfig() + +if(cxx_link_libraries) + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/openh264.pc" + "(Libs:[^\r\n]*)" + "\\1 ${cxx_link_libraries}" + REGEX + ) + if(NOT VCPKG_BUILD_TYPE) + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/openh264.pc" + "(Libs:[^\r\n]*)" + "\\1 ${cxx_link_libraries}" + REGEX + ) + endif() +endif() + +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") diff --git a/vcpkg/ports/openh264/vcpkg.json b/vcpkg/ports/openh264/vcpkg.json new file mode 100644 index 0000000..912cee1 --- /dev/null +++ b/vcpkg/ports/openh264/vcpkg.json @@ -0,0 +1,18 @@ +{ + "name": "openh264", + "version": "2.6.0", + "port-version": 4, + "description": "OpenH264 is a codec library which supports H.264 encoding and decoding. It is suitable for use in real time applications such as WebRTC.", + "homepage": "https://www.openh264.org/", + "license": "BSD-2-Clause", + "dependencies": [ + { + "name": "vcpkg-cmake-get-vars", + "host": true + }, + { + "name": "vcpkg-tool-meson", + "host": true + } + ] +} |