From d24cad405aa6c648bfac3329cf76571fc1d2bf44 Mon Sep 17 00:00:00 2001 From: Gerard Ryan Date: Tue, 6 Sep 2022 15:44:06 +1000 Subject: [PATCH 01/11] Update to GStreamer v1.20.3 --- ports/gstreamer/fix-clang-cl-bad.patch | 48 +++---- ports/gstreamer/fix-clang-cl-base.patch | 6 +- ports/gstreamer/fix-clang-cl-good.patch | 6 +- ports/gstreamer/fix-clang-cl-gstreamer.patch | 14 +- ports/gstreamer/fix-clang-cl-ugly.patch | 6 +- ports/gstreamer/fix-clang-cl.patch | 2 +- .../gstreamer/gstreamer-disable-hot-doc.patch | 2 +- .../gstreamer-disable-no-unused.patch | 6 +- .../plugin-base-disable-no-unused.patch | 6 +- ports/gstreamer/plugins-base-use-zlib.patch | 13 -- ports/gstreamer/plugins-base-x11.patch | 6 +- ports/gstreamer/plugins-good-use-zlib.patch | 13 -- .../gstreamer/plugins-ugly-disable-doc.patch | 6 +- ports/gstreamer/portfile.cmake | 135 +++++++----------- ports/gstreamer/vcpkg.json | 15 +- 15 files changed, 116 insertions(+), 168 deletions(-) delete mode 100644 ports/gstreamer/plugins-base-use-zlib.patch delete mode 100644 ports/gstreamer/plugins-good-use-zlib.patch diff --git a/ports/gstreamer/fix-clang-cl-bad.patch b/ports/gstreamer/fix-clang-cl-bad.patch index 92e96f3c44c02c..1cfab239f384d4 100644 --- a/ports/gstreamer/fix-clang-cl-bad.patch +++ b/ports/gstreamer/fix-clang-cl-bad.patch @@ -1,7 +1,7 @@ -diff --git a/ext/dts/meson.build b/ext/dts/meson.build +diff --git a/subprojects/gst-plugins-bad/ext/dts/meson.build b/subprojects/gst-plugins-bad/ext/dts/meson.build index 8ab3fc917..c19aa2264 100644 ---- a/ext/dts/meson.build -+++ b/ext/dts/meson.build +--- a/subprojects/gst-plugins-bad/ext/dts/meson.build ++++ b/subprojects/gst-plugins-bad/ext/dts/meson.build @@ -15,7 +15,7 @@ if not dca_dep.found() endif @@ -11,10 +11,10 @@ index 8ab3fc917..c19aa2264 100644 # autotools didn't use the libdca pkg-config cflags, and they # can point to a non-existing location (/usr/include/dca) no_warn_c_args = ['-Wno-missing-include-dirs'] -diff --git a/gst-libs/gst/d3d11/meson.build b/gst-libs/gst/d3d11/meson.build +diff --git a/subprojects/gst-plugins-bad/gst-libs/gst/d3d11/meson.build b/subprojects/gst-plugins-bad/gst-libs/gst/d3d11/meson.build index 4a844ef75..cd97e8f7a 100644 ---- a/gst-libs/gst/d3d11/meson.build -+++ b/gst-libs/gst/d3d11/meson.build +--- a/subprojects/gst-plugins-bad/gst-libs/gst/d3d11/meson.build ++++ b/subprojects/gst-plugins-bad/gst-libs/gst/d3d11/meson.build @@ -174,7 +174,7 @@ endif # MinGW 32bits compiler seems to be complaining about redundant-decls @@ -24,10 +24,10 @@ index 4a844ef75..cd97e8f7a 100644 extra_args = cc.get_supported_arguments([ '-Wno-redundant-decls', ]) -diff --git a/meson.build b/meson.build +diff --git a/subprojects/gst-plugins-bad/meson.build b/subprojects/gst-plugins-bad/meson.build index 7cab556e0..35531110b 100644 ---- a/meson.build -+++ b/meson.build +--- a/subprojects/gst-plugins-bad/meson.build ++++ b/subprojects/gst-plugins-bad/meson.build @@ -45,7 +45,7 @@ endif cdata = configuration_data() @@ -37,10 +37,10 @@ index 7cab556e0..35531110b 100644 msvc_args = [ # Ignore several spurious warnings for things gstreamer does very commonly # If a warning is completely useless and spammy, use '/wdXXXX' to suppress it -diff --git a/sys/asio/meson.build b/sys/asio/meson.build +diff --git a/subprojects/gst-plugins-bad/sys/asio/meson.build b/subprojects/gst-plugins-bad/sys/asio/meson.build index 3006d26ce..1afbd0022 100644 ---- a/sys/asio/meson.build -+++ b/sys/asio/meson.build +--- a/subprojects/gst-plugins-bad/sys/asio/meson.build ++++ b/subprojects/gst-plugins-bad/sys/asio/meson.build @@ -15,7 +15,7 @@ endif # FIXME: non-msvc is not tested, and unlikely supported yet because of @@ -50,10 +50,10 @@ index 3006d26ce..1afbd0022 100644 if asio_option.enabled() error('asio plugin can only be built with MSVC') else -diff --git a/sys/d3d11/meson.build b/sys/d3d11/meson.build +diff --git a/subprojects/gst-plugins-bad/sys/d3d11/meson.build b/subprojects/gst-plugins-bad/sys/d3d11/meson.build index 43f213d9c..9c9e9b535 100644 ---- a/sys/d3d11/meson.build -+++ b/sys/d3d11/meson.build +--- a/subprojects/gst-plugins-bad/sys/d3d11/meson.build ++++ b/subprojects/gst-plugins-bad/sys/d3d11/meson.build @@ -102,7 +102,7 @@ endif # MinGW 32bits compiler seems to be complaining about redundant-decls @@ -63,10 +63,10 @@ index 43f213d9c..9c9e9b535 100644 extra_mingw_args = cc.get_supported_arguments([ '-Wno-redundant-decls', ]) -diff --git a/sys/decklink/meson.build b/sys/decklink/meson.build +diff --git a/subprojects/gst-plugins-bad/sys/decklink/meson.build b/subprojects/gst-plugins-bad/sys/decklink/meson.build index d869e79a4..c7b37a7c6 100644 ---- a/sys/decklink/meson.build -+++ b/sys/decklink/meson.build +--- a/subprojects/gst-plugins-bad/sys/decklink/meson.build ++++ b/subprojects/gst-plugins-bad/sys/decklink/meson.build @@ -18,7 +18,7 @@ decklink_libs = [] if host_system == 'windows' @@ -76,10 +76,10 @@ index d869e79a4..c7b37a7c6 100644 # FIXME: Use commsuppwd.lib for debug builds? comutil_dep = cxx.find_library('comsuppw', required : get_option('decklink')) if comutil_dep.found() -diff --git a/sys/mediafoundation/meson.build b/sys/mediafoundation/meson.build +diff --git a/subprojects/gst-plugins-bad/sys/mediafoundation/meson.build b/subprojects/gst-plugins-bad/sys/mediafoundation/meson.build index 828954909..af570f9ff 100644 ---- a/sys/mediafoundation/meson.build -+++ b/sys/mediafoundation/meson.build +--- a/subprojects/gst-plugins-bad/sys/mediafoundation/meson.build ++++ b/subprojects/gst-plugins-bad/sys/mediafoundation/meson.build @@ -48,7 +48,7 @@ if host_system != 'windows' or mf_option.disabled() subdir_done() endif @@ -89,10 +89,10 @@ index 828954909..af570f9ff 100644 if mf_option.enabled() error('mediafoundation plugin can only be built with MSVC') endif -diff --git a/sys/msdk/meson.build b/sys/msdk/meson.build +diff --git a/subprojects/gst-plugins-bad/sys/msdk/meson.build b/subprojects/gst-plugins-bad/sys/msdk/meson.build index a77160049..7c834d8ed 100644 ---- a/sys/msdk/meson.build -+++ b/sys/msdk/meson.build +--- a/subprojects/gst-plugins-bad/sys/msdk/meson.build ++++ b/subprojects/gst-plugins-bad/sys/msdk/meson.build @@ -139,13 +139,13 @@ if have_mfx_ver134 endif diff --git a/ports/gstreamer/fix-clang-cl-base.patch b/ports/gstreamer/fix-clang-cl-base.patch index 4c406427dc5aa1..99a4f7db86618c 100644 --- a/ports/gstreamer/fix-clang-cl-base.patch +++ b/ports/gstreamer/fix-clang-cl-base.patch @@ -1,7 +1,7 @@ -diff --git a/meson.build b/meson.build +diff --git a/subprojects/gst-plugins-base/meson.build b/subprojects/gst-plugins-base/meson.build index 495671ebb..fff3ea518 100644 ---- a/meson.build -+++ b/meson.build +--- a/subprojects/gst-plugins-base/meson.build ++++ b/subprojects/gst-plugins-base/meson.build @@ -43,7 +43,7 @@ plugins = [] cc = meson.get_compiler('c') diff --git a/ports/gstreamer/fix-clang-cl-good.patch b/ports/gstreamer/fix-clang-cl-good.patch index d2ed46e83ffe59..10be6030a4572c 100644 --- a/ports/gstreamer/fix-clang-cl-good.patch +++ b/ports/gstreamer/fix-clang-cl-good.patch @@ -1,7 +1,7 @@ -diff --git a/meson.build b/meson.build +diff --git a/subprojects/gst-plugins-good/meson.build b/subprojects/gst-plugins-good/meson.build index 64705379f..0c55b9732 100644 ---- a/meson.build -+++ b/meson.build +--- a/subprojects/gst-plugins-good/meson.build ++++ b/subprojects/gst-plugins-good/meson.build @@ -30,7 +30,7 @@ plugins = [] cc = meson.get_compiler('c') host_system = host_machine.system() diff --git a/ports/gstreamer/fix-clang-cl-gstreamer.patch b/ports/gstreamer/fix-clang-cl-gstreamer.patch index 928a5785fe8d89..19be6c1e5e51c0 100644 --- a/ports/gstreamer/fix-clang-cl-gstreamer.patch +++ b/ports/gstreamer/fix-clang-cl-gstreamer.patch @@ -1,20 +1,20 @@ -diff --git a/gst/parse/meson.build b/gst/parse/meson.build +diff --git a/subprojects/gstreamer/gst/parse/meson.build b/subprojects/gstreamer/gst/parse/meson.build index 35ed6f2f4..5e38e49ea 100644 ---- a/gst/parse/meson.build -+++ b/gst/parse/meson.build +--- a/subprojects/gstreamer/gst/parse/meson.build ++++ b/subprojects/gstreamer/gst/parse/meson.build @@ -16,7 +16,7 @@ else endif - flex_cdata.set('FLEX', flex.path()) + flex_cdata.set('FLEX', flex.full_path()) -if cc.get_id() == 'msvc' +if cc.get_argument_syntax() == 'msvc' flex_cdata.set('FLEX_ARGS', '--nounistd') else flex_cdata.set('FLEX_ARGS', '') -diff --git a/meson.build b/meson.build +diff --git a/subprojects/gstreamer/meson.build b/subprojects/gstreamer/meson.build index 772809e15..70b1eafc5 100644 ---- a/meson.build -+++ b/meson.build +--- a/subprojects/gstreamer/meson.build ++++ b/subprojects/gstreamer/meson.build @@ -36,7 +36,7 @@ cc = meson.get_compiler('c') cdata = configuration_data() diff --git a/ports/gstreamer/fix-clang-cl-ugly.patch b/ports/gstreamer/fix-clang-cl-ugly.patch index ae83ee48294796..100b6a7b628ef7 100644 --- a/ports/gstreamer/fix-clang-cl-ugly.patch +++ b/ports/gstreamer/fix-clang-cl-ugly.patch @@ -1,7 +1,7 @@ -diff --git a/meson.build b/meson.build +diff --git a/subprojects/gst-plugins-ugly/meson.build b/subprojects/gst-plugins-ugly/meson.build index 14be48c4c..83d019874 100644 ---- a/meson.build -+++ b/meson.build +--- a/subprojects/gst-plugins-ugly/meson.build ++++ b/subprojects/gst-plugins-ugly/meson.build @@ -31,7 +31,7 @@ if have_cxx cxx = meson.get_compiler('cpp') endif diff --git a/ports/gstreamer/fix-clang-cl.patch b/ports/gstreamer/fix-clang-cl.patch index d6eded2f573279..ac00b9e1357b21 100644 --- a/ports/gstreamer/fix-clang-cl.patch +++ b/ports/gstreamer/fix-clang-cl.patch @@ -19,4 +19,4 @@ index 1316366ed..daeaf3cb1 100644 + elif cc.get_argument_syntax() == 'msvc' warning('FIXME: Provide a def file to publish the public symbols') else - error('Failed to link with version script (' + symbol_map + '), check logs for details') + warning('FIXME: Linker does not support the supplied version script (' + symbol_map + '), please disable the "gst-full-version-script" option') diff --git a/ports/gstreamer/gstreamer-disable-hot-doc.patch b/ports/gstreamer/gstreamer-disable-hot-doc.patch index e952046f7ff8a7..5925d962e4e1da 100644 --- a/ports/gstreamer/gstreamer-disable-hot-doc.patch +++ b/ports/gstreamer/gstreamer-disable-hot-doc.patch @@ -30,5 +30,5 @@ index 4a2eb27..1316366 100644 + ['gstreamer-vaapi', { 'option': get_option('vaapi'), 'build-hotdoc': false}], + ['gst-omx', { 'option': get_option('omx'), 'build-hotdoc': false}], ['gstreamer-sharp', { 'option': get_option('sharp') }], - ['pygobject', { 'option': get_option('python'), 'match_gst_version': false }], + ['pygobject', { 'option': get_option('python'), 'match_gst_version': false, 'sysdep': 'pygobject-3.0', 'sysdep_version': '>= 3.8' }], ['gst-python', { 'option': get_option('python')}], diff --git a/ports/gstreamer/gstreamer-disable-no-unused.patch b/ports/gstreamer/gstreamer-disable-no-unused.patch index f8e7d0bce0107d..971d80295946e3 100644 --- a/ports/gstreamer/gstreamer-disable-no-unused.patch +++ b/ports/gstreamer/gstreamer-disable-no-unused.patch @@ -1,7 +1,7 @@ -diff --git a/meson.build b/meson.build +diff --git a/subprojects/gstreamer/meson.build b/subprojects/gstreamer/meson.build index bed8c4e..772809e 100644 ---- a/meson.build -+++ b/meson.build +--- a/subprojects/gstreamer/meson.build ++++ b/subprojects/gstreamer/meson.build @@ -435,8 +435,8 @@ if cc.has_header('execinfo.h') endif endif diff --git a/ports/gstreamer/plugin-base-disable-no-unused.patch b/ports/gstreamer/plugin-base-disable-no-unused.patch index dbd5d345f7fea6..f8c249d9618f4f 100644 --- a/ports/gstreamer/plugin-base-disable-no-unused.patch +++ b/ports/gstreamer/plugin-base-disable-no-unused.patch @@ -1,7 +1,7 @@ -diff --git a/meson.build b/meson.build +diff --git a/subprojects/gst-plugins-base/meson.build b/subprojects/gst-plugins-base/meson.build index 9b00253..495671e 100644 ---- a/meson.build -+++ b/meson.build +--- a/subprojects/gst-plugins-base/meson.build ++++ b/subprojects/gst-plugins-base/meson.build @@ -388,10 +388,11 @@ int32x4_t testfunc(int16_t *a, int16_t *b) { endif endif diff --git a/ports/gstreamer/plugins-base-use-zlib.patch b/ports/gstreamer/plugins-base-use-zlib.patch deleted file mode 100644 index 57b997ca7d9d8c..00000000000000 --- a/ports/gstreamer/plugins-base-use-zlib.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/gst-libs/gst/tag/meson.build b/gst-libs/gst/tag/meson.build -index 5ec3739..a6cff8d 100644 ---- a/gst-libs/gst/tag/meson.build -+++ b/gst-libs/gst/tag/meson.build -@@ -70,7 +70,7 @@ endif - core_conf.set('HAVE_ISO_CODES', have_iso_codes) - - # could drop optional zlib dep and use g_zlib_decompressor_new() --zlib_dep = dependency('zlib', required : false) -+zlib_dep = dependency('zlib', required : true) - if not zlib_dep.found() - zlib_dep = cc.find_library('z', required : false) - if not zlib_dep.found() or not cc.has_header('zlib.h') diff --git a/ports/gstreamer/plugins-base-x11.patch b/ports/gstreamer/plugins-base-x11.patch index 9860308a9730b0..f42551948ca852 100644 --- a/ports/gstreamer/plugins-base-x11.patch +++ b/ports/gstreamer/plugins-base-x11.patch @@ -1,7 +1,7 @@ -diff --git a/meson.build b/meson.build +diff --git a/subprojects/gst-plugins-base/meson.build b/subprojects/gst-plugins-base/meson.build index 9b00253a0f..e3c3a0d920 100644 ---- a/meson.build -+++ b/meson.build +--- a/subprojects/gst-plugins-base/meson.build ++++ b/subprojects/gst-plugins-base/meson.build @@ -316,7 +316,7 @@ else gtk_quartz_dep = dependency('', required : false) endif diff --git a/ports/gstreamer/plugins-good-use-zlib.patch b/ports/gstreamer/plugins-good-use-zlib.patch deleted file mode 100644 index efea351f165ea6..00000000000000 --- a/ports/gstreamer/plugins-good-use-zlib.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/meson.build b/meson.build -index 9de3b01..091a7f0 100644 ---- a/meson.build -+++ b/meson.build -@@ -326,7 +326,7 @@ if have_gstgl - endif - endif - --zlib_dep = dependency('zlib', required : false) -+zlib_dep = dependency('zlib', required : true) - if not zlib_dep.found() - zlib_dep = cc.find_library('z', required : false) - if not zlib_dep.found() or not cc.has_header('zlib.h') diff --git a/ports/gstreamer/plugins-ugly-disable-doc.patch b/ports/gstreamer/plugins-ugly-disable-doc.patch index 46adcbeeb666c2..a3f78aa867d5eb 100644 --- a/ports/gstreamer/plugins-ugly-disable-doc.patch +++ b/ports/gstreamer/plugins-ugly-disable-doc.patch @@ -1,7 +1,7 @@ -diff --git a/meson.build b/meson.build +diff --git a/subprojects/gst-plugins-ugly/meson.build b/subprojects/gst-plugins-ugly/meson.build index c5c78fc..14be48c 100644 ---- a/meson.build -+++ b/meson.build +--- a/subprojects/gst-plugins-ugly/meson.build ++++ b/subprojects/gst-plugins-ugly/meson.build @@ -281,7 +281,11 @@ if find_program('xgettext', required : get_option('nls')).found() cdata.set('ENABLE_NLS', 1) subdir('po') diff --git a/ports/gstreamer/portfile.cmake b/ports/gstreamer/portfile.cmake index d9379e00a757c5..1a1e9ee12f3c84 100644 --- a/ports/gstreamer/portfile.cmake +++ b/ports/gstreamer/portfile.cmake @@ -1,84 +1,30 @@ -vcpkg_from_github( - OUT_SOURCE_PATH GST_BUILD_SOURCE_PATH - REPO gstreamer/gst-build - REF 1.19.2 - SHA512 d6b8e9fc195a60dfb83fe8a49040c21ca5603e3ada2036d56851e6e61a1cd2653ad45f33e39388bde859dfb4806f4a60d9dbfac5fe41b6d2a8b395c44d4525e3 - HEAD_REF master - PATCHES gstreamer-disable-hot-doc.patch fix-clang-cl.patch -) -vcpkg_from_github( - OUT_SOURCE_PATH GST_SOURCE_PATH - REPO gstreamer/gstreamer - REF 1.19.2 - SHA512 6070f1febf2a1bcc6e68f1e03c1b76891db210773065696e26fac20f0bd3ff47e1634222a49f93a10f6e47717ff21084c9ae0feed6a20facb9650aeb879cc380 - HEAD_REF master - PATCHES gstreamer-disable-no-unused.patch fix-clang-cl-gstreamer.patch -) if(VCPKG_TARGET_IS_WINDOWS) - list(APPEND PLUGIN_BASE_PATCHES plugins-base-use-zlib.patch plugin-base-disable-no-unused.patch plugins-base-x11.patch) - list(APPEND PLUGIN_GOOD_PATCHES plugins-good-use-zlib.patch) - list(APPEND PLUGIN_UGLY_PATCHES plugins-ugly-disable-doc.patch) + set(PATCHES + plugin-base-disable-no-unused.patch + plugins-base-x11.patch + plugins-ugly-disable-doc.patch + ) endif() -vcpkg_from_github( - OUT_SOURCE_PATH GST_PLUGIN_BASE_SOURCE_PATH - REPO gstreamer/gst-plugins-base - REF 1.19.2 - SHA512 d2005e6a3bda5f08395b131347e8f4054c2469e04e65d1acc1a1572bf10d81d4dad4e43d6a8600346b6175a2310f81157a0cd27398ef69b5363b16346febfb39 - HEAD_REF master - PATCHES ${PLUGIN_BASE_PATCHES} fix-clang-cl-base.patch -) -vcpkg_from_github( - OUT_SOURCE_PATH GST_PLUGIN_GOOD_SOURCE_PATH - REPO gstreamer/gst-plugins-good - REF 1.19.2 - SHA512 71e9f36d407db3b75d9a68f6447093aa011b2b586b06e0a1bb79c7db37c9114de505699e99a4dad06d8d9c742e91f48dd35457283babe440f88a9e40d3da465b - HEAD_REF master - PATCHES ${PLUGIN_GOOD_PATCHES} fix-clang-cl-good.patch -) -vcpkg_from_github( - OUT_SOURCE_PATH GST_PLUGIN_BAD_SOURCE_PATH - REPO gstreamer/gst-plugins-bad - REF 1.19.2 - SHA512 f63ca3abf380bba92dca4ac3a51cba5ea95093693cf64d167a7a9c0bf6341c35a74fd42332673dbd1581ea70da0a35026aa3e2ce99b5e573268ccb55b5491c1d - HEAD_REF master - PATCHES fix-clang-cl-bad.patch -) -vcpkg_from_github( - OUT_SOURCE_PATH GST_PLUGIN_UGLY_SOURCE_PATH - REPO gstreamer/gst-plugins-ugly - REF 1.19.2 - SHA512 70dcd4a36d3bd35f680eaa3c980842fbb57f55f17d1453c6a95640709b1b33a263689bf54caa367154267d281e5474686fedaa980de24094de91886a57b6547a - HEAD_REF master - PATCHES ${PLUGIN_UGLY_PATCHES} fix-clang-cl-ugly.patch remove_x264_define.patch -) + vcpkg_from_gitlab( - GITLAB_URL https://gitlab.freedesktop.org - OUT_SOURCE_PATH GST_MESON_PORTS_SOURCE_PATH - REPO gstreamer/meson-ports/gl-headers - REF 5c8c7c0d3ca1f0b783272dac0b95e09414e49bc8 # master commit. Date 2021-04-21 - SHA512 d001535e1c1b5bb515ac96c7d15b25ca51460a5af0c858df53b11c7bae87c4a494e4a1b1b9c3c41a5989001db083645dde2054b82acbbeab7f9939308b676f9c + GITLAB_URL https://gitlab.freedesktop.org/ + OUT_SOURCE_PATH SOURCE_PATH + REPO gstreamer/gstreamer + REF 1.20.3 + SHA512 f3f2e27e64af615e687419c350216f975be2a6115cd66ac25c4a488bad1e3b7ba2a9f4a9d0d68293cdccfc23abf6bbbd4513e2719778b6189fd43ae89da52b07 HEAD_REF master + PATCHES + gstreamer-disable-hot-doc.patch + fix-clang-cl.patch + fix-clang-cl-gstreamer.patch + fix-clang-cl-base.patch + fix-clang-cl-good.patch + fix-clang-cl-bad.patch + fix-clang-cl-ugly.patch + gstreamer-disable-no-unused.patch + ${PATCHES} ) -if (NOT EXISTS "${GST_BUILD_SOURCE_PATH}/subprojects/gstreamer") - file(RENAME "${GST_SOURCE_PATH}" "${GST_BUILD_SOURCE_PATH}/subprojects/gstreamer") -endif() -if (NOT EXISTS "${GST_BUILD_SOURCE_PATH}/subprojects/gst-plugins-base") - file(RENAME "${GST_PLUGIN_BASE_SOURCE_PATH}" "${GST_BUILD_SOURCE_PATH}/subprojects/gst-plugins-base") -endif() -if (NOT EXISTS "${GST_BUILD_SOURCE_PATH}/subprojects/gst-plugins-good") - file(RENAME "${GST_PLUGIN_GOOD_SOURCE_PATH}" "${GST_BUILD_SOURCE_PATH}/subprojects/gst-plugins-good") -endif() -if (NOT EXISTS "${GST_BUILD_SOURCE_PATH}/subprojects/gst-plugins-bad") - file(RENAME "${GST_PLUGIN_BAD_SOURCE_PATH}" "${GST_BUILD_SOURCE_PATH}/subprojects/gst-plugins-bad") -endif() -if (NOT EXISTS "${GST_BUILD_SOURCE_PATH}/subprojects/gst-plugins-ugly") - file(RENAME "${GST_PLUGIN_UGLY_SOURCE_PATH}" "${GST_BUILD_SOURCE_PATH}/subprojects/gst-plugins-ugly") -endif() -if (NOT EXISTS "${GST_BUILD_SOURCE_PATH}/subprojects/gl-headers") - file(RENAME "${GST_MESON_PORTS_SOURCE_PATH}" "${GST_BUILD_SOURCE_PATH}/subprojects/gl-headers") -endif() - if(VCPKG_TARGET_IS_OSX) # In Darwin platform, there can be an old version of `bison`, # Which can't be used for `gst-build`. It requires 2.4+ @@ -101,7 +47,13 @@ get_filename_component(GLIB_TOOL_DIR "${CURRENT_INSTALLED_DIR}/tools/glib" ABSOL message(STATUS "Using glib tools: ${GLIB_TOOL_DIR}") vcpkg_add_to_path(PREPEND "${GLIB_TOOL_DIR}") -if ("x264" IN_LIST FEATURES) +if ("gpl" IN_LIST FEATURES) + set(LICENSE_GPL enabled) +else() + set(LICENSE_GPL disabled) +endif() + +if ("gpl" IN_LIST FEATURES AND "x264" IN_LIST FEATURES) set(PLUGIN_UGLY_X264 enabled) else() set(PLUGIN_UGLY_X264 disabled) @@ -181,7 +133,7 @@ endif() # https://github.com/GStreamer/gst-plugins-ugly/blob/1.18.4/meson_options.txt # vcpkg_configure_meson( - SOURCE_PATH "${GST_BUILD_SOURCE_PATH}" + SOURCE_PATH "${SOURCE_PATH}" OPTIONS # gstreamer -Dgstreamer:default_library=${LIBRARY_LINKAGE} @@ -259,6 +211,7 @@ vcpkg_configure_meson( -Drs=disabled -Dgst-examples=disabled -Dtls=disabled + -Dgpl=${LICENSE_GPL} -Dtests=disabled # common options -Dexamples=disabled -Dintrospection=disabled @@ -307,14 +260,6 @@ file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share" ) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") - # Move plugin pkg-config files - file(GLOB pc_files "${CURRENT_PACKAGES_DIR}/lib/gstreamer-1.0/pkgconfig/*") - file(COPY ${pc_files} DESTINATION "${CURRENT_PACKAGES_DIR}/lib/pkgconfig") - file(GLOB pc_files_dbg "${CURRENT_PACKAGES_DIR}/debug/lib/gstreamer-1.0/pkgconfig/*") - file(COPY ${pc_files_dbg} DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig") - file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib/gstreamer-1.0/pkgconfig/" - "${CURRENT_PACKAGES_DIR}/lib/gstreamer-1.0/pkgconfig/") - file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin" "${CURRENT_PACKAGES_DIR}/bin" ) @@ -340,6 +285,24 @@ if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") file(REMOVE ${DBG_BINS} ${REL_BINS}) endif() +# vcpkg errors if pkgconfig files aren't in the standard directory, so we move them to keep it happy. +# This may make it easier to unintentionally find and link plugins into an application. +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + file(GLOB DBG_PLUGIN_PCS RELATIVE "${CURRENT_PACKAGES_DIR}/debug/lib/gstreamer-1.0/pkgconfig" "${CURRENT_PACKAGES_DIR}/debug/lib/gstreamer-1.0/pkgconfig/*.pc") + file(GLOB REL_PLUGIN_PCS RELATIVE "${CURRENT_PACKAGES_DIR}/lib/gstreamer-1.0/pkgconfig" "${CURRENT_PACKAGES_DIR}/lib/gstreamer-1.0/pkgconfig/*.pc") + + foreach(PC ${DBG_PLUGIN_PCS}) + debug_message("Moving ${CURRENT_PACKAGES_DIR}/debug/lib/gstreamer-1.0/pkgconfig/${PC} -> ${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/${PC}") + file(RENAME "${CURRENT_PACKAGES_DIR}/debug/lib/gstreamer-1.0/pkgconfig/${PC}" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/${PC}") + endforeach() + foreach(PC ${REL_PLUGIN_PCS}) + debug_message("Moving ${CURRENT_PACKAGES_DIR}/lib/gstreamer-1.0/pkgconfig/${PC} -> ${CURRENT_PACKAGES_DIR}/lib/pkgconfig/${PC}") + file(RENAME "${CURRENT_PACKAGES_DIR}/lib/gstreamer-1.0/pkgconfig/${PC}" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/${PC}") + endforeach() + + file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib/gstreamer-1.0/pkgconfig" "${CURRENT_PACKAGES_DIR}/lib/gstreamer-1.0/pkgconfig") +endif() + vcpkg_fixup_pkgconfig() -file(INSTALL "${GST_BUILD_SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) +file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) diff --git a/ports/gstreamer/vcpkg.json b/ports/gstreamer/vcpkg.json index 81e9e3c9f5174a..ffc7307d90e705 100644 --- a/ports/gstreamer/vcpkg.json +++ b/ports/gstreamer/vcpkg.json @@ -1,7 +1,6 @@ { "name": "gstreamer", - "version": "1.19.2", - "port-version": 11, + "version": "1.20.3", "description": "GStreamer open-source multimedia framework core library", "homepage": "https://gstreamer.freedesktop.org/", "license": "LGPL-2.0-only", @@ -62,6 +61,10 @@ "graphene" ] }, + "gpl": { + "description": "Allow build of plugins that have (A)GPL-licensed dependencies", + "supports": "!arm" + }, "opus": { "description": "Opus de/encoding via libopus", "dependencies": [ @@ -148,6 +151,14 @@ "description": "Colon separated list of additional x264 library paths, e.g. for 10-bit version", "supports": "!arm", "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "gpl" + ], + "platform": "!arm" + }, "x264" ] } From 99770727d3666de7179aee7545d65249b8dd3e8c Mon Sep 17 00:00:00 2001 From: Gerard Ryan Date: Mon, 12 Sep 2022 12:16:21 +1000 Subject: [PATCH 02/11] Fixed gst-plugins-bad * Made optional dependences features * Added webrtc feature --- ports/gstreamer/portfile.cmake | 41 ++++++++++++++--------- ports/gstreamer/vcpkg.json | 59 +++++++++++++++++++++++++--------- 2 files changed, 70 insertions(+), 30 deletions(-) diff --git a/ports/gstreamer/portfile.cmake b/ports/gstreamer/portfile.cmake index 1a1e9ee12f3c84..663c15659fe173 100644 --- a/ports/gstreamer/portfile.cmake +++ b/ports/gstreamer/portfile.cmake @@ -65,8 +65,6 @@ else() set(PLUGIN_BASE_SUPPORT disabled) endif() if("plugins-bad" IN_LIST FEATURES) - # requires 'libdrm', 'dssim', 'libmicrodns' - message(FATAL_ERROR "The feature 'plugins-bad' is not supported in this port version") set(PLUGIN_BAD_SUPPORT enabled) else() set(PLUGIN_BAD_SUPPORT disabled) @@ -83,6 +81,18 @@ else() set(GL_GRAPHENE disabled) endif() +if ("webrtc" IN_LIST FEATURES) + set(PLUGIN_BAD_WEBRTC enabled) +else() + set(PLUGIN_BAD_WEBRTC disabled) +endif() + +if ("videoparsers" IN_LIST FEATURES) + set(PLUGIN_BAD_VIDEOPARSERS enabled) +else() + set(PLUGIN_BAD_VIDEOPARSERS disabled) +endif() + if ("flac" IN_LIST FEATURES) set(PLUGIN_GOOD_FLAC enabled) else() @@ -184,11 +194,13 @@ vcpkg_configure_meson( -Dgst-plugins-bad:default_library=${LIBRARY_LINKAGE} -Dgst-plugins-bad:opencv=disabled -Dgst-plugins-bad:hls-crypto=openssl + -Dgst-plugins-bad:webrtc=${PLUGIN_BAD_WEBRTC} + -Dgst-plugins-bad:videoparsers=${PLUGIN_BAD_VIDEOPARSERS} -Dgst-plugins-bad:examples=disabled -Dgst-plugins-bad:tests=disabled -Dgst-plugins-bad:doc=disabled -Dgst-plugins-bad:introspection=disabled - -Dgst-plugins-bad:nls=${LIBRARY_LINKAGE} + -Dgst-plugins-bad:nls=disabled -Dgst-plugins-bad:orc=disabled # gst-plugins-ugly -Dugly=${PLUGIN_UGLY_SUPPORT} @@ -242,22 +254,21 @@ vcpkg_configure_meson( vcpkg_install_meson() # Remove duplicated GL headers (we already have `opengl-registry`) -file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/KHR" - "${CURRENT_PACKAGES_DIR}/include/GL" -) -if(NOT VCPKG_TARGET_IS_LINUX) +if (GL_GRAPHENE STREQUAL "enabled") + file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/KHR" + "${CURRENT_PACKAGES_DIR}/include/GL" + ) file(RENAME "${CURRENT_PACKAGES_DIR}/lib/gstreamer-1.0/include/gst/gl/gstglconfig.h" "${CURRENT_PACKAGES_DIR}/include/gstreamer-1.0/gst/gl/gstglconfig.h" ) -endif() - -file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share" - "${CURRENT_PACKAGES_DIR}/debug/libexec" - "${CURRENT_PACKAGES_DIR}/debug/lib/gstreamer-1.0/include" - "${CURRENT_PACKAGES_DIR}/libexec" - "${CURRENT_PACKAGES_DIR}/lib/gstreamer-1.0/include" + file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share" + "${CURRENT_PACKAGES_DIR}/debug/libexec" + "${CURRENT_PACKAGES_DIR}/debug/lib/gstreamer-1.0/include" + "${CURRENT_PACKAGES_DIR}/libexec" + "${CURRENT_PACKAGES_DIR}/lib/gstreamer-1.0/include" "${CURRENT_PACKAGES_DIR}/share/gdb" -) + ) +endif () if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin" diff --git a/ports/gstreamer/vcpkg.json b/ports/gstreamer/vcpkg.json index ffc7307d90e705..f5fa1c3c4ad791 100644 --- a/ports/gstreamer/vcpkg.json +++ b/ports/gstreamer/vcpkg.json @@ -25,7 +25,6 @@ "name": "glib", "host": true }, - "libnice", "libxml2", { "name": "opengl", @@ -58,7 +57,15 @@ "description": "Use Graphene in OpenGL plugin", "supports": "!arm", "dependencies": [ - "graphene" + "graphene", + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-base" + ], + "platform": "!arm" + } ] }, "gpl": { @@ -74,14 +81,7 @@ "plugins-bad": { "description": "'Bad' GStreamer plugins and helper libraries", "dependencies": [ - { - "name": "gstreamer", - "default-features": false, - "features": [ - "rawparse" - ], - "platform": "!arm" - }, + "libnice", "openh264" ] }, @@ -91,10 +91,6 @@ { "name": "gstreamer", "default-features": false, - "features": [ - "gl-graphene", - "rawparse" - ], "platform": "!arm" } ] @@ -116,7 +112,6 @@ "libpng", "libvpx", "mpg123", - "speex", "taglib" ] }, @@ -137,9 +132,43 @@ "description": "Build with libraw support", "supports": "!arm", "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ], + "platform": "!arm" + }, "libraw" ] }, + "videoparsers": { + "description": "'Bad' GStreamer videoparsersbad plugins. https://gstreamer.freedesktop.org/documentation/videoparsersbad/index.html", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ], + "platform": "!arm" + } + ] + }, + "webrtc": { + "description": "'Bad' GStreamer WebRTC plugin. https://gstreamer.freedesktop.org/documentation/webrtc/index.html", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ], + "platform": "!arm" + } + ] + }, "x11": { "description": "Use x11 window system", "supports": "!windows", From 1319810dc74bd5fd5b1478aaad0ca42d96552270 Mon Sep 17 00:00:00 2001 From: David Ely Date: Tue, 20 Sep 2022 11:52:39 +1000 Subject: [PATCH 03/11] webrtc dependency fixes Set meson option 'gst_debug' to true for both debug and release configurations Enabled dtls and srtp plugins Fixed srtp plugin --- ports/gstreamer/portfile.cmake | 21 ++++----------------- ports/gstreamer/srtp_fix.patch | 29 +++++++++++++++++++++++++++++ ports/gstreamer/vcpkg.json | 1 + 3 files changed, 34 insertions(+), 17 deletions(-) create mode 100644 ports/gstreamer/srtp_fix.patch diff --git a/ports/gstreamer/portfile.cmake b/ports/gstreamer/portfile.cmake index 663c15659fe173..8c1c2ca0f11677 100644 --- a/ports/gstreamer/portfile.cmake +++ b/ports/gstreamer/portfile.cmake @@ -22,6 +22,7 @@ vcpkg_from_gitlab( fix-clang-cl-bad.patch fix-clang-cl-ugly.patch gstreamer-disable-no-unused.patch + srtp_fix.patch ${PATCHES} ) @@ -160,6 +161,7 @@ vcpkg_configure_meson( -Dgstreamer:doc=disabled -Dgstreamer:introspection=disabled -Dgstreamer:nls=disabled + -Dgstreamer:gst_debug=true # gst-plugins-base -Dbase=${PLUGIN_BASE_SUPPORT} -Dgst-plugins-base:default_library=${LIBRARY_LINKAGE} @@ -202,6 +204,8 @@ vcpkg_configure_meson( -Dgst-plugins-bad:introspection=disabled -Dgst-plugins-bad:nls=disabled -Dgst-plugins-bad:orc=disabled + -Dgst-plugins-bad:dtls=enabled + -Dgst-plugins-bad:srtp=enabled # gst-plugins-ugly -Dugly=${PLUGIN_UGLY_SUPPORT} -Dgst-plugins-ugly:default_library=${LIBRARY_LINKAGE} @@ -232,10 +236,7 @@ vcpkg_configure_meson( -Ddoc=disabled -Dgtk_doc=disabled -Ddevtools=disabled - OPTIONS_DEBUG - -Dgstreamer:gst_debug=true # plugins will reference this value OPTIONS_RELEASE - -Dgstreamer:gst_debug=false -Dgstreamer:gobject-cast-checks=disabled -Dgstreamer:glib-asserts=disabled -Dgstreamer:glib-checks=disabled @@ -282,20 +283,6 @@ if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/gstreamer-1.0/gst/gstconfig.h" "!defined(GST_STATIC_COMPILATION)" "0") endif() -if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") - if (NOT VCPKG_BUILD_TYPE) - file(GLOB DBG_BINS "${CURRENT_PACKAGES_DIR}/debug/lib/gstreamer-1.0/*.dll" - "${CURRENT_PACKAGES_DIR}/debug/lib/gstreamer-1.0/*.pdb" - ) - file(COPY ${DBG_BINS} DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin") - endif() - file(GLOB REL_BINS "${CURRENT_PACKAGES_DIR}/lib/gstreamer-1.0/*.dll" - "${CURRENT_PACKAGES_DIR}/lib/gstreamer-1.0/*.pdb" - ) - file(COPY ${REL_BINS} DESTINATION "${CURRENT_PACKAGES_DIR}/bin") - file(REMOVE ${DBG_BINS} ${REL_BINS}) -endif() - # vcpkg errors if pkgconfig files aren't in the standard directory, so we move them to keep it happy. # This may make it easier to unintentionally find and link plugins into an application. if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") diff --git a/ports/gstreamer/srtp_fix.patch b/ports/gstreamer/srtp_fix.patch new file mode 100644 index 00000000000000..cc73cd11b8a116 --- /dev/null +++ b/ports/gstreamer/srtp_fix.patch @@ -0,0 +1,29 @@ +diff --git a/subprojects/gst-plugins-bad/ext/srtp/meson.build b/subprojects/gst-plugins-bad/ext/srtp/meson.build +index 7f947191ae..b4a8e9c2a8 100644 +--- a/subprojects/gst-plugins-bad/ext/srtp/meson.build ++++ b/subprojects/gst-plugins-bad/ext/srtp/meson.build +@@ -6,12 +6,14 @@ srtp_sources = [ + 'gstsrtpenc.c', + ] + ++gst_plugins_install_dir = join_paths(get_option('libdir'), 'gstreamer-1.0') ++ + srtp_cargs = [] + if get_option('srtp').disabled() + subdir_done() + endif + +-srtp_dep = dependency('libsrtp2', version : '>= 2.1.0', required : false) ++srtp_dep = dependency('libSRTP', modules: ['libSRTP::srtp2'], version : '>= 2.1.0', required : false) + if srtp_dep.found() + srtp_cargs += ['-DHAVE_SRTP2'] + else +@@ -37,7 +39,7 @@ if srtp_dep.found() + include_directories : [configinc], + dependencies : [gstrtp_dep, gstvideo_dep, srtp_dep], + install : true, +- install_dir : plugins_install_dir, ++ install_dir : gst_plugins_install_dir, + ) + pkgconfig.generate(gstsrtp, install_dir : plugins_pkgconfig_install_dir) + plugins += [gstsrtp] diff --git a/ports/gstreamer/vcpkg.json b/ports/gstreamer/vcpkg.json index f5fa1c3c4ad791..0d28c20692251f 100644 --- a/ports/gstreamer/vcpkg.json +++ b/ports/gstreamer/vcpkg.json @@ -82,6 +82,7 @@ "description": "'Bad' GStreamer plugins and helper libraries", "dependencies": [ "libnice", + "libsrtp", "openh264" ] }, From d6d5a3c25526990a6305957dc383c01c53440fa0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20GNIEWEK?= Date: Sat, 29 Oct 2022 19:29:31 +0200 Subject: [PATCH 04/11] [gstreamer] Changed version to 1.20.4 --- ports/gstreamer/portfile.cmake | 4 ++-- ports/gstreamer/vcpkg.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ports/gstreamer/portfile.cmake b/ports/gstreamer/portfile.cmake index 8c1c2ca0f11677..ff1ad5e15d11e9 100644 --- a/ports/gstreamer/portfile.cmake +++ b/ports/gstreamer/portfile.cmake @@ -10,8 +10,8 @@ vcpkg_from_gitlab( GITLAB_URL https://gitlab.freedesktop.org/ OUT_SOURCE_PATH SOURCE_PATH REPO gstreamer/gstreamer - REF 1.20.3 - SHA512 f3f2e27e64af615e687419c350216f975be2a6115cd66ac25c4a488bad1e3b7ba2a9f4a9d0d68293cdccfc23abf6bbbd4513e2719778b6189fd43ae89da52b07 + REF 1.20.4 + SHA512 bd2e3812f719c530027513f1ac6715e093c4fb3c56553e4ad82506dfc5fd81616777ee08489723809faee693e68f010abf716cc23c82a7d17490b6942ce5cac4 HEAD_REF master PATCHES gstreamer-disable-hot-doc.patch diff --git a/ports/gstreamer/vcpkg.json b/ports/gstreamer/vcpkg.json index 0d28c20692251f..d348b3a3bd5866 100644 --- a/ports/gstreamer/vcpkg.json +++ b/ports/gstreamer/vcpkg.json @@ -1,6 +1,6 @@ { "name": "gstreamer", - "version": "1.20.3", + "version": "1.20.4", "description": "GStreamer open-source multimedia framework core library", "homepage": "https://gstreamer.freedesktop.org/", "license": "LGPL-2.0-only", From 8d7098774a381afca7b3dd48e5b025fdc2cb2dcc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20GNIEWEK?= Date: Sun, 13 Nov 2022 05:04:28 +0100 Subject: [PATCH 05/11] [gstreamer] Reworked port file --- .../gstreamer/gstreamer-disable-hot-doc.patch | 34 - .../gstreamer/plugins-ugly-disable-doc.patch | 16 - ports/gstreamer/portfile.cmake | 720 ++++++++++++++---- ports/gstreamer/vcpkg.json | 680 +++++++++++++++-- scripts/ci.baseline.txt | 2 - 5 files changed, 1161 insertions(+), 291 deletions(-) delete mode 100644 ports/gstreamer/gstreamer-disable-hot-doc.patch delete mode 100644 ports/gstreamer/plugins-ugly-disable-doc.patch diff --git a/ports/gstreamer/gstreamer-disable-hot-doc.patch b/ports/gstreamer/gstreamer-disable-hot-doc.patch deleted file mode 100644 index 5925d962e4e1da..00000000000000 --- a/ports/gstreamer/gstreamer-disable-hot-doc.patch +++ /dev/null @@ -1,34 +0,0 @@ -diff --git a/meson.build b/meson.build -index 4a2eb27..1316366 100644 ---- a/meson.build -+++ b/meson.build -@@ -70,19 +70,19 @@ endif - - # Ordered list of subprojects (dict has no ordering guarantees) - subprojects = [ -- ['gstreamer', {'build-hotdoc': true}], -- ['gst-plugins-base', {'option': get_option('base'), 'build-hotdoc': true}], -- ['gst-plugins-good', {'option': get_option('good'), 'build-hotdoc': true}], -+ ['gstreamer', {'build-hotdoc': false}], -+ ['gst-plugins-base', {'option': get_option('base'), 'build-hotdoc': false}], -+ ['gst-plugins-good', {'option': get_option('good'), 'build-hotdoc': false}], - ['libnice', { 'option': get_option('libnice'), 'match_gst_version': false}], - ['gst-plugins-bad', { 'option': get_option('bad'), 'build-hotdoc': true}], -- ['gst-plugins-ugly', { 'option': get_option('ugly'), 'build-hotdoc': true}], -- ['gst-libav', { 'option': get_option('libav'), 'build-hotdoc': true}], -- ['gst-rtsp-server', { 'option': get_option('rtsp_server'), 'build-hotdoc': true}], -- ['gst-devtools', { 'option': get_option('devtools'), 'build-hotdoc': true }], -+ ['gst-plugins-ugly', { 'option': get_option('ugly'), 'build-hotdoc': false}], -+ ['gst-libav', { 'option': get_option('libav'), 'build-hotdoc': false}], -+ ['gst-rtsp-server', { 'option': get_option('rtsp_server'), 'build-hotdoc': false}], -+ ['gst-devtools', { 'option': get_option('devtools'), 'build-hotdoc': false }], - ['gst-integration-testsuites', { 'option': get_option('devtools') }], -- ['gst-editing-services', { 'option': get_option('ges'), 'build-hotdoc': true}], -- ['gstreamer-vaapi', { 'option': get_option('vaapi'), 'build-hotdoc': true}], -- ['gst-omx', { 'option': get_option('omx'), 'build-hotdoc': true}], -+ ['gst-editing-services', { 'option': get_option('ges'), 'build-hotdoc': false}], -+ ['gstreamer-vaapi', { 'option': get_option('vaapi'), 'build-hotdoc': false}], -+ ['gst-omx', { 'option': get_option('omx'), 'build-hotdoc': false}], - ['gstreamer-sharp', { 'option': get_option('sharp') }], - ['pygobject', { 'option': get_option('python'), 'match_gst_version': false, 'sysdep': 'pygobject-3.0', 'sysdep_version': '>= 3.8' }], - ['gst-python', { 'option': get_option('python')}], diff --git a/ports/gstreamer/plugins-ugly-disable-doc.patch b/ports/gstreamer/plugins-ugly-disable-doc.patch deleted file mode 100644 index a3f78aa867d5eb..00000000000000 --- a/ports/gstreamer/plugins-ugly-disable-doc.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff --git a/subprojects/gst-plugins-ugly/meson.build b/subprojects/gst-plugins-ugly/meson.build -index c5c78fc..14be48c 100644 ---- a/subprojects/gst-plugins-ugly/meson.build -+++ b/subprojects/gst-plugins-ugly/meson.build -@@ -281,7 +281,11 @@ if find_program('xgettext', required : get_option('nls')).found() - cdata.set('ENABLE_NLS', 1) - subdir('po') - endif -+ -+enable_doc = get_option('doc') -+if enable_doc.enabled() - subdir('docs') -+endif - subdir('scripts') - - # Set release date diff --git a/ports/gstreamer/portfile.cmake b/ports/gstreamer/portfile.cmake index ff1ad5e15d11e9..4500b115a0f2b9 100644 --- a/ports/gstreamer/portfile.cmake +++ b/ports/gstreamer/portfile.cmake @@ -1,8 +1,6 @@ if(VCPKG_TARGET_IS_WINDOWS) set(PATCHES plugin-base-disable-no-unused.patch - plugins-base-x11.patch - plugins-ugly-disable-doc.patch ) endif() @@ -14,7 +12,6 @@ vcpkg_from_gitlab( SHA512 bd2e3812f719c530027513f1ac6715e093c4fb3c56553e4ad82506dfc5fd81616777ee08489723809faee693e68f010abf716cc23c82a7d17490b6942ce5cac4 HEAD_REF master PATCHES - gstreamer-disable-hot-doc.patch fix-clang-cl.patch fix-clang-cl-gstreamer.patch fix-clang-cl-base.patch @@ -26,10 +23,13 @@ vcpkg_from_gitlab( ${PATCHES} ) +vcpkg_find_acquire_program(FLEX) +vcpkg_find_acquire_program(BISON) +vcpkg_find_acquire_program(NASM) + if(VCPKG_TARGET_IS_OSX) # In Darwin platform, there can be an old version of `bison`, # Which can't be used for `gst-build`. It requires 2.4+ - vcpkg_find_acquire_program(BISON) execute_process( COMMAND ${BISON} --version OUTPUT_VARIABLE BISON_OUTPUT @@ -43,21 +43,18 @@ if(VCPKG_TARGET_IS_OSX) endif() endif() -# make tools like 'glib-mkenums' visible -get_filename_component(GLIB_TOOL_DIR "${CURRENT_INSTALLED_DIR}/tools/glib" ABSOLUTE) -message(STATUS "Using glib tools: ${GLIB_TOOL_DIR}") -vcpkg_add_to_path(PREPEND "${GLIB_TOOL_DIR}") +# General features -if ("gpl" IN_LIST FEATURES) +if("gpl" IN_LIST FEATURES) set(LICENSE_GPL enabled) else() set(LICENSE_GPL disabled) endif() -if ("gpl" IN_LIST FEATURES AND "x264" IN_LIST FEATURES) - set(PLUGIN_UGLY_X264 enabled) +if("nls" IN_LIST FEATURES) + set(NLS enabled) else() - set(PLUGIN_UGLY_X264 disabled) + set(NLS disabled) endif() if("plugins-base" IN_LIST FEATURES) @@ -65,213 +62,616 @@ if("plugins-base" IN_LIST FEATURES) else() set(PLUGIN_BASE_SUPPORT disabled) endif() -if("plugins-bad" IN_LIST FEATURES) - set(PLUGIN_BAD_SUPPORT enabled) + +if("plugins-good" IN_LIST FEATURES) + set(PLUGIN_GOOD_SUPPORT enabled) else() - set(PLUGIN_BAD_SUPPORT disabled) + set(PLUGIN_GOOD_SUPPORT disabled) endif() + if("plugins-ugly" IN_LIST FEATURES) set(PLUGIN_UGLY_SUPPORT enabled) else() set(PLUGIN_UGLY_SUPPORT disabled) endif() -if ("gl-graphene" IN_LIST FEATURES) +if("plugins-bad" IN_LIST FEATURES) + set(PLUGIN_BAD_SUPPORT enabled) +else() + set(PLUGIN_BAD_SUPPORT disabled) +endif() + +if("gl-graphene" IN_LIST FEATURES) set(GL_GRAPHENE enabled) else() set(GL_GRAPHENE disabled) endif() -if ("webrtc" IN_LIST FEATURES) - set(PLUGIN_BAD_WEBRTC enabled) +# Base optional plugins + +if(VCPKG_TARGET_IS_WINDOWS) + set(PLUGIN_BASE_WINDOW_SYSTEM win32) + set(PLUGIN_BASE_GL_PLATFORM wgl) else() - set(PLUGIN_BAD_WEBRTC disabled) + set(PLUGIN_BASE_WINDOW_SYSTEM auto) + set(PLUGIN_BASE_GL_PLATFORM auto) endif() -if ("videoparsers" IN_LIST FEATURES) - set(PLUGIN_BAD_VIDEOPARSERS enabled) +if("alsa" IN_LIST FEATURES AND VCPKG_TARGET_IS_LINUX) + set(PLUGIN_BASE_ALSA enabled) else() - set(PLUGIN_BAD_VIDEOPARSERS disabled) + set(PLUGIN_BASE_ALSA disabled) endif() -if ("flac" IN_LIST FEATURES) - set(PLUGIN_GOOD_FLAC enabled) +if("ogg" IN_LIST FEATURES) + set(PLUGIN_BASE_OGG enabled) else() - set(PLUGIN_GOOD_FLAC disabled) + set(PLUGIN_BASE_OGG disabled) +endif() + +if("opus-base" IN_LIST FEATURES) + set(PLUGIN_BASE_OPUS enabled) +else() + set(PLUGIN_BASE_OPUS disabled) +endif() + +if("pango" IN_LIST FEATURES) + set(PLUGIN_BASE_PANGO enabled) +else() + set(PLUGIN_BASE_PANGO disabled) +endif() + +if("vorbis" IN_LIST FEATURES) + set(PLUGIN_BASE_VORBIS enabled) +else() + set(PLUGIN_BASE_VORBIS disabled) endif() -if ("x11" IN_LIST FEATURES) +if("x11-base" IN_LIST FEATURES AND NOT VCPKG_TARGET_IS_WINDOWS) set(PLUGIN_BASE_X11 enabled) else() set(PLUGIN_BASE_X11 disabled) endif() -if ("opus" IN_LIST FEATURES) - set(PLUGIN_BASE_OPUS enabled) +# Good optional plugins + +if("cairo" IN_LIST FEATURES) + set(PLUGIN_GOOD_CAIRO enabled) else() - set(PLUGIN_BASE_OPUS disabled) + set(PLUGIN_GOOD_CAIRO disabled) endif() -if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") - set(LIBRARY_LINKAGE "shared") +if("flac" IN_LIST FEATURES) + set(PLUGIN_GOOD_FLAC enabled) else() - set(LIBRARY_LINKAGE "static") + set(PLUGIN_GOOD_FLAC disabled) endif() -# gst-build's meson configuration needs git. Make the tool visible. -vcpkg_find_acquire_program(GIT) -get_filename_component(GIT_DIR "${GIT}" DIRECTORY) -vcpkg_add_to_path("${GIT_DIR}") +if("gdk-pixbuf" IN_LIST FEATURES) + set(PLUGIN_GOOD_GDK_PIXBUF enabled) +else() + set(PLUGIN_GOOD_GDK_PIXBUF disabled) +endif() -if(VCPKG_TARGET_IS_WINDOWS) - set(PLUGIN_BASE_WIN - -Dgst-plugins-base:xvideo=disabled - -Dgst-plugins-base:xshm=disabled - -Dgst-plugins-base:gl_winsys=win32 - -Dgst-plugins-base:gl_platform=wgl) - # TODO: gstreamer has a lot of 'auto' options which probably should be controlled by vcpkg! +if("jpeg" IN_LIST FEATURES) + set(PLUGIN_GOOD_JPEG enabled) +else() + set(PLUGIN_GOOD_JPEG disabled) +endif() + +if("mpg123" IN_LIST FEATURES) + set(PLUGIN_GOOD_MPG123 enabled) +else() + set(PLUGIN_GOOD_MPG123 disabled) +endif() + +if("png" IN_LIST FEATURES) + set(PLUGIN_GOOD_PNG enabled) +else() + set(PLUGIN_GOOD_PNG disabled) +endif() + +if("speex" IN_LIST FEATURES) + set(PLUGIN_GOOD_SPEEX enabled) +else() + set(PLUGIN_GOOD_SPEEX disabled) +endif() + +if("taglib" IN_LIST FEATURES) + set(PLUGIN_GOOD_TAGLIB enabled) +else() + set(PLUGIN_GOOD_TAGLIB disabled) +endif() + +if("vpx" IN_LIST FEATURES) + set(PLUGIN_GOOD_VPX enabled) +else() + set(PLUGIN_GOOD_VPX disabled) +endif() + +# Ugly optional plugins + +if("gpl" IN_LIST FEATURES AND "x264" IN_LIST FEATURES) + set(PLUGIN_UGLY_X264 enabled) +else() + set(PLUGIN_UGLY_X264 disabled) +endif() + +# Bad optional plugins + +if("aes" IN_LIST FEATURES) + set(PLUGIN_BAD_AES enabled) +else() + set(PLUGIN_BAD_AES disabled) +endif() + +if("asio" IN_LIST FEATURES) + set(PLUGIN_BAD_ASIO enabled) + set(PLUGIN_BAD_ASIO_SDK_PATH ${CURRENT_INSTALLED_DIR}/include/asiosdk) +else() + set(PLUGIN_BAD_ASIO disabled) + set(PLUGIN_BAD_ASIO_SDK_PATH "") +endif() + +if("assrender" IN_LIST FEATURES) + set(PLUGIN_BAD_ASSRENDER enabled) +else() + set(PLUGIN_BAD_ASSRENDER disabled) +endif() + +if("chromaprint" IN_LIST FEATURES) + set(PLUGIN_BAD_CHROMAPRINT enabled) +else() + set(PLUGIN_BAD_CHROMAPRINT disabled) +endif() + +if("closedcaption" IN_LIST FEATURES) + set(PLUGIN_BAD_CLOSEDCAPTION enabled) +else() + set(PLUGIN_BAD_CLOSEDCAPTION disabled) +endif() + +if("colormanagement" IN_LIST FEATURES) + set(PLUGIN_BAD_COLORMANAGEMENT enabled) +else() + set(PLUGIN_BAD_COLORMANAGEMENT disabled) +endif() + +if("dash" IN_LIST FEATURES) + set(PLUGIN_BAD_DASH enabled) +else() + set(PLUGIN_BAD_DASH disabled) +endif() + +if("dc1394" IN_LIST FEATURES AND NOT VCPKG_TARGET_IS_WINDOWS) + set(PLUGIN_BAD_DC1394 enabled) +else() + set(PLUGIN_BAD_DC1394 disabled) +endif() + +if("dtls" IN_LIST FEATURES) + set(PLUGIN_BAD_DTLS enabled) +else() + set(PLUGIN_BAD_DTLS disabled) +endif() + +if("gpl" IN_LIST FEATURES AND "faad" IN_LIST FEATURES) + set(PLUGIN_BAD_FAAD enabled) +else() + set(PLUGIN_BAD_FAAD disabled) +endif() + +if("fdkaac" IN_LIST FEATURES) + set(PLUGIN_BAD_FDKAAC enabled) +else() + set(PLUGIN_BAD_FDKAAC disabled) +endif() + +# Plugin requires unistd.h header, which doesn't exist on Windows +if("fluidsynth" IN_LIST FEATURES AND NOT VCPKG_TARGET_IS_WINDOWS) + set(PLUGIN_BAD_FLUIDSYNTH enabled) +else() + set(PLUGIN_BAD_FLUIDSYNTH disabled) +endif() + +if("libde265" IN_LIST FEATURES) + set(PLUGIN_BAD_LIBDE265 enabled) +else() + set(PLUGIN_BAD_LIBDE265 disabled) +endif() + +if("microdns" IN_LIST FEATURES) + set(PLUGIN_BAD_MICRODNS enabled) +else() + set(PLUGIN_BAD_MICRODNS disabled) +endif() + +if("modplug" IN_LIST FEATURES AND NOT VCPKG_TARGET_IS_UWP) + set(PLUGIN_BAD_MODPLUG enabled) +else() + set(PLUGIN_BAD_MODPLUG disabled) +endif() + +if("openal" IN_LIST FEATURES) + set(PLUGIN_BAD_OPENAL enabled) +else() + set(PLUGIN_BAD_OPENAL disabled) +endif() + +if("openh264" IN_LIST FEATURES) + set(PLUGIN_BAD_OPENH264 enabled) +else() + set(PLUGIN_BAD_OPENH264 disabled) +endif() + +if("openjpeg" IN_LIST FEATURES) + set(PLUGIN_BAD_OPENJPEG enabled) +else() + set(PLUGIN_BAD_OPENJPEG disabled) +endif() + +if("openmpt" IN_LIST FEATURES) + set(PLUGIN_BAD_OPENMPT enabled) +else() + set(PLUGIN_BAD_OPENMPT disabled) +endif() + +if("opus-bad" IN_LIST FEATURES) + set(PLUGIN_BAD_OPUS enabled) +else() + set(PLUGIN_BAD_OPUS disabled) +endif() + +if("smoothstreaming" IN_LIST FEATURES) + set(PLUGIN_BAD_SMOOTHSTREAMING enabled) +else() + set(PLUGIN_BAD_SMOOTHSTREAMING disabled) +endif() + +if("sndfile" IN_LIST FEATURES) + set(PLUGIN_BAD_SNDFILE enabled) +else() + set(PLUGIN_BAD_SNDFILE disabled) +endif() + +if("soundtouch" IN_LIST FEATURES) + set(PLUGIN_BAD_SOUNDTOUCH enabled) +else() + set(PLUGIN_BAD_SOUNDTOUCH disabled) +endif() + +if("srt" IN_LIST FEATURES) + set(PLUGIN_BAD_SRT enabled) +else() + set(PLUGIN_BAD_SRT disabled) +endif() + +if("srtp" IN_LIST FEATURES) + set(PLUGIN_BAD_SRTP enabled) +else() + set(PLUGIN_BAD_SRTP disabled) +endif() + +if("webp" IN_LIST FEATURES) + set(PLUGIN_BAD_WEBP enabled) +else() + set(PLUGIN_BAD_WEBP disabled) +endif() + +if("webrtc" IN_LIST FEATURES) + set(PLUGIN_BAD_WEBRTC enabled) +else() + set(PLUGIN_BAD_WEBRTC disabled) +endif() + +if("wildmidi" IN_LIST FEATURES) + set(PLUGIN_BAD_WILDMIDI enabled) +else() + set(PLUGIN_BAD_WILDMIDI disabled) +endif() + +if("x11-bad" IN_LIST FEATURES) + set(PLUGIN_BAD_X11 enabled) +else() + set(PLUGIN_BAD_X11 disabled) +endif() + +if("gpl" IN_LIST FEATURES AND "x265" IN_LIST FEATURES) + set(PLUGIN_BAD_X265 enabled) +else() + set(PLUGIN_BAD_X265 disabled) endif() -# -# check scripts/cmake/vcpkg_configure_meson.cmake -# --wrap-mode=nodownload # # References -# https://github.com/GStreamer/gst-build/blob/1.18.4/meson_options.txt -# https://github.com/GStreamer/gst-plugins-base/blob/1.18.4/meson_options.txt -# https://github.com/GStreamer/gst-plugins-good/blob/1.18.4/meson_options.txt -# https://github.com/GStreamer/gst-plugins-bad/blob/1.18.4/meson_options.txt -# https://github.com/GStreamer/gst-plugins-ugly/blob/1.18.4/meson_options.txt +# https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/1.20.4/subprojects/gstreamer/meson_options.txt +# https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/1.20.4/subprojects/gst-plugins-base/meson_options.txt +# https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/1.20.4/subprojects/gst-plugins-good/meson_options.txt +# https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/1.20.4/subprojects/gst-plugins-ugly/meson_options.txt +# https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/1.20.4/subprojects/gst-plugins-bad/meson_options.txt # +# Rationale for added options +# Common options are added below systematically +# Feature options are added below only if the feature needs an external dependency +# Feature options that are dependent on the operating system type (like wasapi or osxaudio) are set to auto +# Every other feature options are made available if the dependency is available on vcpkg and if the plugin has managed to build during tests +# + vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS + # General options + -Dpython=disabled + -Dlibav=disabled + -Dlibnice=disabled + -Ddevtools=disabled + -Dges=disabled + -Drtsp_server=disabled + -Domx=disabled + -Dvaapi=disabled + -Dsharp=disabled + -Drs=disabled + -Dgst-examples=disabled + -Dtls=disabled + -Dqt5=disabled + -Dgpl=${LICENSE_GPL} + # Common options + -Dtests=disabled + -Dexamples=disabled + -Dintrospection=disabled + -Dnls=${NLS} + -Dorc=disabled # gstreamer requires a specific version of orc which is not available in vcpkg + -Ddoc=disabled + -Dgtk_doc=disabled # gstreamer - -Dgstreamer:default_library=${LIBRARY_LINKAGE} -Dgstreamer:check=disabled -Dgstreamer:libunwind=disabled -Dgstreamer:libdw=disabled -Dgstreamer:dbghelp=disabled -Dgstreamer:bash-completion=disabled -Dgstreamer:coretracers=disabled - -Dgstreamer:examples=disabled - -Dgstreamer:tests=disabled -Dgstreamer:benchmarks=disabled - -Dgstreamer:tools=disabled - -Dgstreamer:doc=disabled - -Dgstreamer:introspection=disabled - -Dgstreamer:nls=disabled -Dgstreamer:gst_debug=true # gst-plugins-base -Dbase=${PLUGIN_BASE_SUPPORT} - -Dgst-plugins-base:default_library=${LIBRARY_LINKAGE} - -Dgst-plugins-base:examples=disabled - -Dgst-plugins-base:tests=disabled - -Dgst-plugins-base:doc=disabled - -Dgst-plugins-base:tools=disabled - -Dgst-plugins-base:introspection=disabled - -Dgst-plugins-base:nls=disabled - -Dgst-plugins-base:orc=disabled - -Dgst-plugins-base:pango=disabled + -Dgst-plugins-base:gl_winsys=${PLUGIN_BASE_WINDOW_SYSTEM} + -Dgst-plugins-base:gl_platform=${PLUGIN_BASE_GL_PLATFORM} -Dgst-plugins-base:gl-graphene=${GL_GRAPHENE} - -Dgst-plugins-base:x11=${PLUGIN_BASE_X11} + -Dgst-plugins-base:alsa=${PLUGIN_BASE_ALSA} + -Dgst-plugins-base:cdparanoia=disabled + -Dgst-plugins-base:libvisual=disabled + -Dgst-plugins-base:ogg=${PLUGIN_BASE_OGG} -Dgst-plugins-base:opus=${PLUGIN_BASE_OPUS} - ${PLUGIN_BASE_WIN} + -Dgst-plugins-base:pango=${PLUGIN_BASE_PANGO} + -Dgst-plugins-base:theora=disabled + -Dgst-plugins-base:tremor=disabled + -Dgst-plugins-base:vorbis=${PLUGIN_BASE_VORBIS} + -Dgst-plugins-base:x11=${PLUGIN_BASE_X11} + -Dgst-plugins-base:xshm=${PLUGIN_BASE_X11} + -Dgst-plugins-base:xvideo=disabled # gst-plugins-good - -Dgst-plugins-good:default_library=${LIBRARY_LINKAGE} + -Dgood=${PLUGIN_GOOD_SUPPORT} + -Dgst-plugins-good:aalib=disabled + -Dgst-plugins-good:bz2=disabled + -Dgst-plugins-good:directsound=auto + -Dgst-plugins-good:dv=disabled + -Dgst-plugins-good:dv1394=disabled + -Dgst-plugins-good:flac=${PLUGIN_GOOD_FLAC} + -Dgst-plugins-good:gdk-pixbuf=${PLUGIN_GOOD_GDK_PIXBUF} + -Dgst-plugins-good:gtk3=disabled # GTK version 3 only + -Dgst-plugins-good:jack=disabled + -Dgst-plugins-good:jpeg=${PLUGIN_GOOD_JPEG} + -Dgst-plugins-good:lame=disabled + -Dgst-plugins-good:libcaca=disabled + -Dgst-plugins-good:mpg123=${PLUGIN_GOOD_MPG123} + -Dgst-plugins-good:oss=disabled + -Dgst-plugins-good:oss4=disabled + -Dgst-plugins-good:osxaudio=auto + -Dgst-plugins-good:osxvideo=auto + -Dgst-plugins-good:png=${PLUGIN_GOOD_PNG} + -Dgst-plugins-good:pulse=auto -Dgst-plugins-good:qt5=disabled + -Dgst-plugins-good:shout2=disabled -Dgst-plugins-good:soup=disabled - -Dgst-plugins-good:cairo=auto # cairo[gobject] - -Dgst-plugins-good:speex=auto # speex - -Dgst-plugins-good:taglib=auto # taglib - -Dgst-plugins-good:vpx=auto # libvpx - -Dgst-plugins-good:examples=disabled - -Dgst-plugins-good:tests=disabled - -Dgst-plugins-good:doc=disabled - -Dgst-plugins-good:nls=disabled - -Dgst-plugins-good:orc=disabled - -Dgst-plugins-good:flac=${PLUGIN_GOOD_FLAC} - # gst-plugins-bad - -Dbad=${PLUGIN_BAD_SUPPORT} - -Dgst-plugins-bad:default_library=${LIBRARY_LINKAGE} - -Dgst-plugins-bad:opencv=disabled - -Dgst-plugins-bad:hls-crypto=openssl - -Dgst-plugins-bad:webrtc=${PLUGIN_BAD_WEBRTC} - -Dgst-plugins-bad:videoparsers=${PLUGIN_BAD_VIDEOPARSERS} - -Dgst-plugins-bad:examples=disabled - -Dgst-plugins-bad:tests=disabled - -Dgst-plugins-bad:doc=disabled - -Dgst-plugins-bad:introspection=disabled - -Dgst-plugins-bad:nls=disabled - -Dgst-plugins-bad:orc=disabled - -Dgst-plugins-bad:dtls=enabled - -Dgst-plugins-bad:srtp=enabled + -Dgst-plugins-good:speex=${PLUGIN_GOOD_SPEEX} + -Dgst-plugins-good:taglib=${PLUGIN_GOOD_TAGLIB} + -Dgst-plugins-good:twolame=disabled + -Dgst-plugins-good:vpx=${PLUGIN_GOOD_VPX} + -Dgst-plugins-good:waveform=auto + -Dgst-plugins-good:wavpack=disabled # Error during plugin build # gst-plugins-ugly -Dugly=${PLUGIN_UGLY_SUPPORT} - -Dgst-plugins-ugly:default_library=${LIBRARY_LINKAGE} - -Dgst-plugins-ugly:tests=disabled - -Dgst-plugins-ugly:doc=disabled - -Dgst-plugins-ugly:nls=disabled - -Dgst-plugins-ugly:orc=disabled + -Dgst-plugins-ugly:a52dec=disabled + -Dgst-plugins-ugly:amrnb=disabled + -Dgst-plugins-ugly:amrwbdec=disabled + -Dgst-plugins-ugly:cdio=disabled + -Dgst-plugins-ugly:dvdread=disabled + -Dgst-plugins-ugly:mpeg2dec=disabled # libmpeg2 not found + -Dgst-plugins-ugly:sidplay=disabled -Dgst-plugins-ugly:x264=${PLUGIN_UGLY_X264} - # see ${GST_BUILD_SOURCE_PATH}/meson_options.txt - -Dpython=disabled - -Dlibav=disabled - -Dlibnice=disabled # libnice - -Ddevtools=disabled - -Dges=disabled - -Drtsp_server=disabled - -Domx=disabled - -Dvaapi=disabled - -Dsharp=disabled - -Drs=disabled - -Dgst-examples=disabled - -Dtls=disabled - -Dgpl=${LICENSE_GPL} - -Dtests=disabled # common options - -Dexamples=disabled - -Dintrospection=disabled - -Dnls=disabled - -Dorc=disabled - -Ddoc=disabled - -Dgtk_doc=disabled - -Ddevtools=disabled + # gst-plugins-bad + -Dbad=${PLUGIN_BAD_SUPPORT} + -Dgst-plugins-bad:aes=${PLUGIN_BAD_AES} + -Dgst-plugins-bad:aom=disabled # Error during plugin build + -Dgst-plugins-bad:avtp=disabled + -Dgst-plugins-bad:androidmedia=auto + -Dgst-plugins-bad:applemedia=auto + -Dgst-plugins-bad:asio=${PLUGIN_BAD_ASIO} + -Dgst-plugins-bad:asio-sdk-path=${PLUGIN_BAD_ASIO_SDK_PATH} + -Dgst-plugins-bad:assrender=${PLUGIN_BAD_ASSRENDER} + -Dgst-plugins-bad:bluez=disabled + -Dgst-plugins-bad:bs2b=disabled + -Dgst-plugins-bad:bz2=disabled # Error during plugin configuration + -Dgst-plugins-bad:chromaprint=${PLUGIN_BAD_CHROMAPRINT} + -Dgst-plugins-bad:closedcaption=${PLUGIN_BAD_CLOSEDCAPTION} + -Dgst-plugins-bad:colormanagement=${PLUGIN_BAD_COLORMANAGEMENT} + -Dgst-plugins-bad:curl=disabled # Error during plugin build + -Dgst-plugins-bad:curl-ssh2=disabled + -Dgst-plugins-bad:d3dvideosink=auto + -Dgst-plugins-bad:d3d11=auto + -Dgst-plugins-bad:dash=${PLUGIN_BAD_DASH} + -Dgst-plugins-bad:dc1394=${PLUGIN_BAD_DC1394} + -Dgst-plugins-bad:decklink=disabled + -Dgst-plugins-bad:directfb=disabled + -Dgst-plugins-bad:directsound=auto + -Dgst-plugins-bad:dtls=${PLUGIN_BAD_DTLS} + -Dgst-plugins-bad:dts=disabled + -Dgst-plugins-bad:dvb=auto + -Dgst-plugins-bad:faac=disabled + -Dgst-plugins-bad:faad=${PLUGIN_BAD_FAAD} + -Dgst-plugins-bad:fbdev=auto + -Dgst-plugins-bad:fdkaac=${PLUGIN_BAD_FDKAAC} + -Dgst-plugins-bad:flite=disabled + -Dgst-plugins-bad:fluidsynth=${PLUGIN_BAD_FLUIDSYNTH} + -Dgst-plugins-bad:gl=auto + -Dgst-plugins-bad:gme=disabled + -Dgst-plugins-bad:gs=disabled # Error during plugin configuration (abseil pkg-config file missing) + -Dgst-plugins-bad:gsm=disabled + -Dgst-plugins-bad:ipcpipeline=auto + -Dgst-plugins-bad:iqa=disabled + -Dgst-plugins-bad:kate=disabled + -Dgst-plugins-bad:kms=disabled + -Dgst-plugins-bad:ladspa=disabled + -Dgst-plugins-bad:ldac=disabled + -Dgst-plugins-bad:libde265=${PLUGIN_BAD_LIBDE265} + -Dgst-plugins-bad:lv2=disabled # Error during plugin configuration (lilv pkg-config file missing) + -Dgst-plugins-bad:mediafoundation=auto + -Dgst-plugins-bad:microdns=${PLUGIN_BAD_MICRODNS} + -Dgst-plugins-bad:modplug=${PLUGIN_BAD_MODPLUG} + -Dgst-plugins-bad:mpeg2enc=disabled + -Dgst-plugins-bad:mplex=disabled + -Dgst-plugins-bad:msdk=disabled + -Dgst-plugins-bad:musepack=disabled + -Dgst-plugins-bad:neon=disabled + -Dgst-plugins-bad:nvcodec=disabled + -Dgst-plugins-bad:onnx=disabled # libonnxruntime not found + -Dgst-plugins-bad:openal=${PLUGIN_BAD_OPENAL} + -Dgst-plugins-bad:openaptx=disabled + -Dgst-plugins-bad:opencv=disabled # opencv not found + -Dgst-plugins-bad:openexr=disabled # OpenEXR::IlmImf target not found + -Dgst-plugins-bad:openh264=${PLUGIN_BAD_OPENH264} + -Dgst-plugins-bad:openjpeg=${PLUGIN_BAD_OPENJPEG} + -Dgst-plugins-bad:openmpt=${PLUGIN_BAD_OPENMPT} + -Dgst-plugins-bad:openni2=disabled # libopenni2 not found + -Dgst-plugins-bad:opensles=disabled + -Dgst-plugins-bad:opus=${PLUGIN_BAD_OPUS} + -Dgst-plugins-bad:qroverlay=disabled + -Dgst-plugins-bad:resindvd=disabled + -Dgst-plugins-bad:rsvg=disabled # librsvg-2.0 not found + -Dgst-plugins-bad:rtmp=disabled # librtmp not found + -Dgst-plugins-bad:sbc=disabled + -Dgst-plugins-bad:sctp=auto + -Dgst-plugins-bad:shm=disabled + -Dgst-plugins-bad:smoothstreaming=${PLUGIN_BAD_SMOOTHSTREAMING} + -Dgst-plugins-bad:sndfile=${PLUGIN_BAD_SNDFILE} + -Dgst-plugins-bad:soundtouch=${PLUGIN_BAD_SOUNDTOUCH} + -Dgst-plugins-bad:spandsp=disabled + -Dgst-plugins-bad:srt=${PLUGIN_BAD_SRT} + -Dgst-plugins-bad:srtp=${PLUGIN_BAD_SRTP} + -Dgst-plugins-bad:svthevcenc=disabled + -Dgst-plugins-bad:teletext=disabled + -Dgst-plugins-bad:tinyalsa=disabled + -Dgst-plugins-bad:transcode=disabled + -Dgst-plugins-bad:ttml=disabled + -Dgst-plugins-bad:uvch264=disabled + -Dgst-plugins-bad:va=disabled + -Dgst-plugins-bad:voaacenc=disabled + -Dgst-plugins-bad:voamrwbenc=disabled + -Dgst-plugins-bad:vulkan=auto + -Dgst-plugins-bad:wasapi=auto + -Dgst-plugins-bad:wasapi2=auto + -Dgst-plugins-bad:wayland=auto + -Dgst-plugins-bad:webp=${PLUGIN_BAD_WEBP} + -Dgst-plugins-bad:webrtc=${PLUGIN_BAD_WEBRTC} + -Dgst-plugins-bad:wildmidi=${PLUGIN_BAD_WILDMIDI} + -Dgst-plugins-bad:winks=disabled + -Dgst-plugins-bad:winscreencap=auto + -Dgst-plugins-bad:x11=${PLUGIN_BAD_X11} + -Dgst-plugins-bad:x265=${PLUGIN_BAD_X265} + -Dgst-plugins-bad:zbar=disabled # Error during plugin build + -Dgst-plugins-bad:zxing=disabled # Error during plugin build + -Dgst-plugins-bad:wpe=disabled + -Dgst-plugins-bad:magicleap=disabled + -Dgst-plugins-bad:v4l2codecs=disabled + -Dgst-plugins-bad:isac=disabled OPTIONS_RELEASE - -Dgstreamer:gobject-cast-checks=disabled - -Dgstreamer:glib-asserts=disabled - -Dgstreamer:glib-checks=disabled + -Dgobject-cast-checks=disabled + -Dglib-asserts=disabled + -Dglib-checks=disabled -Dgstreamer:extra-checks=disabled - -Dgst-plugins-base:gobject-cast-checks=disabled - -Dgst-plugins-base:glib-asserts=disabled - -Dgst-plugins-base:glib-checks=disabled - -Dgst-plugins-good:gobject-cast-checks=disabled - -Dgst-plugins-good:glib-asserts=disabled - -Dgst-plugins-good:glib-checks=disabled - -Dgst-plugins-bad:gobject-cast-checks=disabled - -Dgst-plugins-bad:glib-asserts=disabled - -Dgst-plugins-bad:glib-checks=disabled + ADDITIONAL_BINARIES + flex='${FLEX}' + bison='${BISON}' + nasm='${NASM}' + glib-genmarshal='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-genmarshal' + glib-mkenums='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-mkenums' ) vcpkg_install_meson() # Remove duplicated GL headers (we already have `opengl-registry`) -if (GL_GRAPHENE STREQUAL "enabled") - file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/KHR" - "${CURRENT_PACKAGES_DIR}/include/GL" - ) +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/KHR" + "${CURRENT_PACKAGES_DIR}/include/GL" +) + +if(NOT VCPKG_TARGET_IS_LINUX) file(RENAME "${CURRENT_PACKAGES_DIR}/lib/gstreamer-1.0/include/gst/gl/gstglconfig.h" "${CURRENT_PACKAGES_DIR}/include/gstreamer-1.0/gst/gl/gstglconfig.h" ) - file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share" - "${CURRENT_PACKAGES_DIR}/debug/libexec" - "${CURRENT_PACKAGES_DIR}/debug/lib/gstreamer-1.0/include" - "${CURRENT_PACKAGES_DIR}/libexec" - "${CURRENT_PACKAGES_DIR}/lib/gstreamer-1.0/include" - "${CURRENT_PACKAGES_DIR}/share/gdb" +endif() + +list(APPEND GST_BIN_TOOLS + gst-inspect-1.0 + gst-launch-1.0 + gst-stats-1.0 + gst-typefind-1.0 +) +list(APPEND GST_LIBEXEC_TOOLS + gst-plugin-scanner +) + +if("plugins-base" IN_LIST FEATURES) + list(APPEND GST_BIN_TOOLS + gst-device-monitor-1.0 + gst-discoverer-1.0 + gst-play-1.0 + ) +endif() + +if("plugins-bad" IN_LIST FEATURES) + list(APPEND GST_BIN_TOOLS + gst-transcoder-1.0 ) -endif () +endif() + +vcpkg_copy_tools( + TOOL_NAMES ${GST_BIN_TOOLS} + AUTO_CLEAN +) + +vcpkg_copy_tools( + TOOL_NAMES ${GST_LIBEXEC_TOOLS} + SEARCH_DIR "${CURRENT_PACKAGES_DIR}/libexec/gstreamer-1.0" + AUTO_CLEAN +) + +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share" + "${CURRENT_PACKAGES_DIR}/debug/libexec" + "${CURRENT_PACKAGES_DIR}/debug/lib/gstreamer-1.0/include" + "${CURRENT_PACKAGES_DIR}/libexec" + "${CURRENT_PACKAGES_DIR}/lib/gstreamer-1.0/include" + "${CURRENT_PACKAGES_DIR}/share/gdb" +) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + # Move plugin pkg-config files + file(GLOB pc_files "${CURRENT_PACKAGES_DIR}/lib/gstreamer-1.0/pkgconfig/*") + file(COPY ${pc_files} DESTINATION "${CURRENT_PACKAGES_DIR}/lib/pkgconfig") + file(GLOB pc_files_dbg "${CURRENT_PACKAGES_DIR}/debug/lib/gstreamer-1.0/pkgconfig/*") + file(COPY ${pc_files_dbg} DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig") + file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib/gstreamer-1.0/pkgconfig/" + "${CURRENT_PACKAGES_DIR}/lib/gstreamer-1.0/pkgconfig/") + file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin" "${CURRENT_PACKAGES_DIR}/bin" ) @@ -283,24 +683,20 @@ if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/gstreamer-1.0/gst/gstconfig.h" "!defined(GST_STATIC_COMPILATION)" "0") endif() -# vcpkg errors if pkgconfig files aren't in the standard directory, so we move them to keep it happy. -# This may make it easier to unintentionally find and link plugins into an application. -if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") - file(GLOB DBG_PLUGIN_PCS RELATIVE "${CURRENT_PACKAGES_DIR}/debug/lib/gstreamer-1.0/pkgconfig" "${CURRENT_PACKAGES_DIR}/debug/lib/gstreamer-1.0/pkgconfig/*.pc") - file(GLOB REL_PLUGIN_PCS RELATIVE "${CURRENT_PACKAGES_DIR}/lib/gstreamer-1.0/pkgconfig" "${CURRENT_PACKAGES_DIR}/lib/gstreamer-1.0/pkgconfig/*.pc") - - foreach(PC ${DBG_PLUGIN_PCS}) - debug_message("Moving ${CURRENT_PACKAGES_DIR}/debug/lib/gstreamer-1.0/pkgconfig/${PC} -> ${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/${PC}") - file(RENAME "${CURRENT_PACKAGES_DIR}/debug/lib/gstreamer-1.0/pkgconfig/${PC}" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/${PC}") - endforeach() - foreach(PC ${REL_PLUGIN_PCS}) - debug_message("Moving ${CURRENT_PACKAGES_DIR}/lib/gstreamer-1.0/pkgconfig/${PC} -> ${CURRENT_PACKAGES_DIR}/lib/pkgconfig/${PC}") - file(RENAME "${CURRENT_PACKAGES_DIR}/lib/gstreamer-1.0/pkgconfig/${PC}" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/${PC}") - endforeach() - - file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib/gstreamer-1.0/pkgconfig" "${CURRENT_PACKAGES_DIR}/lib/gstreamer-1.0/pkgconfig") +if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + if(NOT VCPKG_BUILD_TYPE) + file(GLOB DBG_BINS "${CURRENT_PACKAGES_DIR}/debug/lib/gstreamer-1.0/*.dll" + "${CURRENT_PACKAGES_DIR}/debug/lib/gstreamer-1.0/*.pdb" + ) + file(COPY ${DBG_BINS} DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin") + endif() + file(GLOB REL_BINS "${CURRENT_PACKAGES_DIR}/lib/gstreamer-1.0/*.dll" + "${CURRENT_PACKAGES_DIR}/lib/gstreamer-1.0/*.pdb" + ) + file(COPY ${REL_BINS} DESTINATION "${CURRENT_PACKAGES_DIR}/bin") + file(REMOVE ${DBG_BINS} ${REL_BINS}) endif() vcpkg_fixup_pkgconfig() -file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") diff --git a/ports/gstreamer/vcpkg.json b/ports/gstreamer/vcpkg.json index d348b3a3bd5866..16422e72d67a91 100644 --- a/ports/gstreamer/vcpkg.json +++ b/ports/gstreamer/vcpkg.json @@ -6,56 +6,246 @@ "license": "LGPL-2.0-only", "supports": "!uwp", "dependencies": [ - { - "name": "cairo", - "features": [ - "gobject" - ], - "platform": "windows | osx" - }, - { - "name": "freetype", - "features": [ - "brotli", - "png", - "zlib" - ] - }, + "glib", { "name": "glib", "host": true }, - "libxml2", { "name": "opengl", "platform": "windows | osx" }, - "openssl", { "name": "vcpkg-tool-meson", "host": true - }, - { - "name": "yasm-tool-helper", - "platform": "windows" } ], "default-features": [ - "plugins-base", - "plugins-good", - "plugins-ugly" + "plugins-base" ], "features": { + "aes": { + "description": "Enable support for AES encryption/decryption", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "openssl" + ] + }, + "alsa": { + "description": "Enable support for ALSA (Advanced Linux Sound Architecture)", + "dependencies": [ + { + "name": "alsa", + "platform": "linux" + }, + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-base" + ] + } + ] + }, + "asio": { + "description": "Enable support for the Steinberg Audio Streaming Input Output (ASIO) library (Windows only)", + "dependencies": [ + { + "name": "asiosdk", + "platform": "windows" + }, + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + } + ] + }, + "assrender": { + "description": "Enable support for the ASS/SSA subtitle renderer", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "libass" + ] + }, + "cairo": { + "description": "Enable support for the cairo graphics library", + "dependencies": [ + "cairo", + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-good" + ] + } + ] + }, + "chromaprint": { + "description": "Enable support for the Chromaprint audio fingerprint library", + "dependencies": [ + "chromaprint", + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + } + ] + }, + "closedcaption": { + "description": "Enable support for the closed caption extractor, decoder, and overlay", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "pango" + ] + }, + "colormanagement": { + "description": "Enable support for the color management correction", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "lcms" + ] + }, + "dash": { + "description": "Enable support for the DASH demuxer", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "libxml2" + ] + }, + "dc1394": { + "description": "Enable support for the libdc1394 IIDC camera source", + "supports": "!windows", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "libdc1394" + ] + }, + "dtls": { + "description": "Enable support for the DTLS encoder and decoder", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "openssl" + ] + }, + "faad": { + "description": "Enable support for the free AAC audio decoder (GPL licensed)", + "dependencies": [ + "faad2", + { + "name": "gstreamer", + "default-features": false, + "features": [ + "gpl", + "plugins-bad" + ] + } + ] + }, + "fdkaac": { + "description": "Enable support for the Fraunhofer AAC audio codec", + "dependencies": [ + "fdk-aac", + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + } + ] + }, "flac": { - "description": "FLAC audio codec plugin", - "supports": "!arm", + "description": "Enable support for FLAC: Free Lossless Audio Codec", "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "ogg", + "plugins-good" + ] + }, "libflac" ] }, + "fluidsynth": { + "description": "Enable support for the Fluidsynth MIDI decoder", + "dependencies": [ + { + "name": "fluidsynth", + "platform": "!windows" + }, + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + } + ] + }, + "gdk-pixbuf": { + "description": "Enable support for gdk-pixbuf image loader", + "dependencies": [ + "gdk-pixbuf", + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-good" + ] + } + ] + }, "gl-graphene": { "description": "Use Graphene in OpenGL plugin", - "supports": "!arm", "dependencies": [ "graphene", { @@ -63,57 +253,229 @@ "default-features": false, "features": [ "plugins-base" - ], - "platform": "!arm" + ] } ] }, "gpl": { - "description": "Allow build of plugins that have (A)GPL-licensed dependencies", - "supports": "!arm" + "description": "Allow build of plugins that have (A)GPL-licensed dependencies" }, - "opus": { - "description": "Opus de/encoding via libopus", + "jpeg": { + "description": "Enable support for the JPEG file format", "dependencies": [ - "opus" + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-base", + "plugins-good" + ] + }, + "libjpeg-turbo" ] }, - "plugins-bad": { - "description": "'Bad' GStreamer plugins and helper libraries", + "libde265": { + "description": "Enable support for the HEVC/H.265 video decoder", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "libde265" + ] + }, + "microdns": { + "description": "Enable support for the microdns device provider", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "libmicrodns" + ] + }, + "modplug": { + "description": "Enable support for the ModPlug audio decoder", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + { + "name": "libmodplug", + "platform": "!uwp" + } + ] + }, + "mpg123": { + "description": "Enable support for the MPG123 decoding library", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-good" + ] + }, + "mpg123" + ] + }, + "nls": { + "description": "National language support", + "dependencies": [ + "gettext", + { + "name": "gettext", + "host": true, + "default-features": false, + "features": [ + "tools" + ] + } + ] + }, + "ogg": { + "description": "Enable support for the Ogg container format (commonly used by Vorbis, Theora and flac)", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-base" + ] + }, + "libogg" + ] + }, + "openal": { + "description": "Enable support for the OpenAL audio library", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "openal-soft" + ] + }, + "openh264": { + "description": "Enable support for the OpenH264 codec", "dependencies": [ - "libnice", - "libsrtp", + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, "openh264" ] }, - "plugins-base": { - "description": "'Base' GStreamer plugins and helper libraries", + "openjpeg": { + "description": "Enable support for the JPEG2000 codec", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "openjpeg" + ] + }, + "openmpt": { + "description": "Enable support for the OpenMPT codec", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "libopenmpt" + ] + }, + "opus-bad": { + "description": "Enable support for the Opus codec in bad plugins", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "opus" + ] + }, + "opus-base": { + "description": "Enable support for the Opus codec in base plugins", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-base" + ] + }, + "opus" + ] + }, + "pango": { + "description": "Enable support for pango font rendering", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-base" + ] + }, + "pango" + ] + }, + "plugins-bad": { + "description": "'Bad' GStreamer plugins and helper libraries", "dependencies": [ { "name": "gstreamer", "default-features": false, - "platform": "!arm" + "features": [ + "plugins-base" + ] } ] }, + "plugins-base": { + "description": "'Base' GStreamer plugins and helper libraries", + "dependencies": [ + "zlib" + ] + }, "plugins-good": { "description": "'Good' GStreamer plugins and helper libraries", "dependencies": [ - "bzip2", { "name": "gstreamer", "default-features": false, "features": [ - "flac" - ], - "platform": "!arm" + "plugins-base" + ] }, - "jack2", - "libjpeg-turbo", - "libpng", - "libvpx", - "mpg123", - "taglib" + "zlib" ] }, "plugins-ugly": { @@ -123,74 +485,238 @@ "name": "gstreamer", "default-features": false, "features": [ - "x264" - ], - "platform": "!arm" + "plugins-base" + ] } ] }, - "rawparse": { - "description": "Build with libraw support", - "supports": "!arm", + "png": { + "description": "Enable support for the PNG image format", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-good" + ] + }, + "libpng" + ] + }, + "smoothstreaming": { + "description": "Enable support for the Microsoft Smooth Streaming format", "dependencies": [ { "name": "gstreamer", "default-features": false, "features": [ "plugins-bad" - ], - "platform": "!arm" + ] }, - "libraw" + "libxml2" ] }, - "videoparsers": { - "description": "'Bad' GStreamer videoparsersbad plugins. https://gstreamer.freedesktop.org/documentation/videoparsersbad/index.html", + "sndfile": { + "description": "Enable support for the SndFile file reader/writer", "dependencies": [ { "name": "gstreamer", "default-features": false, "features": [ "plugins-bad" - ], - "platform": "!arm" - } + ] + }, + "libsndfile" + ] + }, + "soundtouch": { + "description": "Enable support for the SoundTouch audio processing library", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "soundtouch" + ] + }, + "speex": { + "description": "Enable support for the speex codec", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-good" + ] + }, + "speex" + ] + }, + "srt": { + "description": "Enable support for the SRT protocol", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "libsrt" + ] + }, + "srtp": { + "description": "Enable support for the SRTP protocol", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "libsrtp" + ] + }, + "taglib": { + "description": "Enable support for the taglib library", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-good" + ] + }, + "taglib" + ] + }, + "vorbis": { + "description": "Enable support for the OggVorbis audio codec", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "ogg", + "plugins-base" + ] + }, + "libvorbis" + ] + }, + "vpx": { + "description": "Enable support for the VP8 and VP9 codecs", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-good" + ] + }, + "libvpx" + ] + }, + "webp": { + "description": "Enable support for WebP image format", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "libwebp" ] }, "webrtc": { - "description": "'Bad' GStreamer WebRTC plugin. https://gstreamer.freedesktop.org/documentation/webrtc/index.html", + "description": "Enable support for WebRTC", "dependencies": [ { "name": "gstreamer", "default-features": false, "features": [ "plugins-bad" - ], - "platform": "!arm" - } + ] + }, + "libnice" ] }, - "x11": { - "description": "Use x11 window system", + "wildmidi": { + "description": "Enable support for the WildMIDI synthesizer", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "wildmidi" + ] + }, + "x11-bad": { + "description": "Enable support for X11 in bad plugins", "supports": "!windows", "dependencies": [ - "libx11" + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "libxkbcommon", + "xcb" + ] + }, + "x11-base": { + "description": "Enable support for X11 in base plugins", + "supports": "!windows", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-good" + ] + }, + "libx11", + "libxext" ] }, "x264": { - "description": "Colon separated list of additional x264 library paths, e.g. for 10-bit version", - "supports": "!arm", + "description": "Enable support for the x264 encoder (GPL license)", "dependencies": [ { "name": "gstreamer", "default-features": false, "features": [ - "gpl" - ], - "platform": "!arm" + "gpl", + "plugins-ugly" + ] }, "x264" ] + }, + "x265": { + "description": "Enable support for the x265 encoder (GPL license)", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "gpl", + "plugins-bad" + ] + }, + "x265" + ] } } } diff --git a/scripts/ci.baseline.txt b/scripts/ci.baseline.txt index 7e728948f1ea37..910fecda1bcd07 100644 --- a/scripts/ci.baseline.txt +++ b/scripts/ci.baseline.txt @@ -321,8 +321,6 @@ graphicsmagick:x64-windows=fail graphicsmagick:x64-windows-static=fail graphicsmagick:x64-windows-static-md=fail graphqlparser:arm64-osx=fail # python2 required -gstreamer:x64-osx=fail -gstreamer:arm64-osx=fail gtk:x64-windows-static=fail gtk:x64-windows-static-md=fail halide:x64-windows-static=fail From bc12c8d7fe04ba1acf98211b5ddaa9dd2799e967 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20GNIEWEK?= Date: Sun, 13 Nov 2022 06:45:04 +0100 Subject: [PATCH 06/11] [gst-rtsp-server] Updated to version 1.20.4 --- ports/gst-rtsp-server/portfile.cmake | 22 +++++++++++++++------- ports/gst-rtsp-server/vcpkg.json | 14 +++++++++++--- 2 files changed, 26 insertions(+), 10 deletions(-) diff --git a/ports/gst-rtsp-server/portfile.cmake b/ports/gst-rtsp-server/portfile.cmake index 6e4a7a65bbe107..1f4dadb226072a 100644 --- a/ports/gst-rtsp-server/portfile.cmake +++ b/ports/gst-rtsp-server/portfile.cmake @@ -1,18 +1,25 @@ vcpkg_from_gitlab( GITLAB_URL https://gitlab.freedesktop.org OUT_SOURCE_PATH SOURCE_PATH - REPO gstreamer/gst-rtsp-server - REF 1.19.2 - SHA512 a227471c790ea4f399748233128558cbd43e941ad9774b99ecd88c1b521a0adfe2932212e7d854f041892a7c3bfc63a1b3ea9dd06d2f0b75b7eee38e392d8c51 + REPO gstreamer/gstreamer + REF 1.20.4 + SHA512 bd2e3812f719c530027513f1ac6715e093c4fb3c56553e4ad82506dfc5fd81616777ee08489723809faee693e68f010abf716cc23c82a7d17490b6942ce5cac4 HEAD_REF master ) +set(SOURCE_PATH "${SOURCE_PATH}/subprojects/gst-rtsp-server") + vcpkg_configure_meson( - SOURCE_PATH ${SOURCE_PATH} + SOURCE_PATH "${SOURCE_PATH}" OPTIONS - -Dgstreamer:examples=disabled - -Dgstreamer:tests=disabled + -Dexamples=disabled + -Dtests=disabled + -Dintrospection=disabled -Dpackage-origin="vcpkg" + OPTIONS_RELEASE + -Dgobject-cast-checks=disabled + -Dglib-asserts=disabled + -Dglib-checks=disabled ) vcpkg_install_meson() @@ -38,6 +45,7 @@ if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib/gstreamer-1.0/pkgconfig/" "${CURRENT_PACKAGES_DIR}/lib/gstreamer-1.0/pkgconfig/") endif() + vcpkg_fixup_pkgconfig() -file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") diff --git a/ports/gst-rtsp-server/vcpkg.json b/ports/gst-rtsp-server/vcpkg.json index e63b50a949806a..90a9e5a219bd65 100644 --- a/ports/gst-rtsp-server/vcpkg.json +++ b/ports/gst-rtsp-server/vcpkg.json @@ -1,10 +1,18 @@ { "name": "gst-rtsp-server", - "version": "1.19.2", - "port-version": 2, + "version": "1.20.4", "description": "gst-rtsp-server is a library on top of GStreamer for building an RTSP server", + "homepage": "https://gstreamer.freedesktop.org/", + "license": "LGPL-2.1-only", "dependencies": [ - "gstreamer", + "glib", + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-base" + ] + }, { "name": "vcpkg-tool-meson", "host": true From 43ccdb9854558f514849ce89c176585a512e8929 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20GNIEWEK?= Date: Sun, 13 Nov 2022 07:45:51 +0100 Subject: [PATCH 07/11] [opencv4] Update GStreamer dependency --- ports/opencv4/vcpkg.json | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/ports/opencv4/vcpkg.json b/ports/opencv4/vcpkg.json index 943e50cb57aa76..f606e69fc0f7e7 100644 --- a/ports/opencv4/vcpkg.json +++ b/ports/opencv4/vcpkg.json @@ -1,7 +1,7 @@ { "name": "opencv4", "version": "4.6.0", - "port-version": 8, + "port-version": 9, "description": "computer vision library", "homepage": "https://github.com/opencv/opencv", "license": "Apache-2.0", @@ -149,7 +149,13 @@ "gstreamer": { "description": "gstreamer support for opencv", "dependencies": [ - "gstreamer" + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-base" + ] + } ] }, "gtk": { From d38392684c41864059d05879a18032287d925c68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20GNIEWEK?= Date: Sun, 13 Nov 2022 07:45:30 +0100 Subject: [PATCH 08/11] [qtmultimedia] Update GStreamer dependency --- ports/qtmultimedia/portfile.cmake | 2 ++ ports/qtmultimedia/vcpkg.json | 10 ++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/ports/qtmultimedia/portfile.cmake b/ports/qtmultimedia/portfile.cmake index f18f90fb4dd2bc..95dcc80f1714b9 100644 --- a/ports/qtmultimedia/portfile.cmake +++ b/ports/qtmultimedia/portfile.cmake @@ -49,6 +49,8 @@ if("gstreamer" IN_LIST FEATURES) else() list(APPEND FEATURE_OPTIONS "-DINPUT_gstreamer='no'") endif() +list(APPEND FEATURE_OPTIONS "-DINPUT_gstreamer_gl='no'") +list(APPEND FEATURE_OPTIONS "-DINPUT_gstreamer_photography='no'") if(VCPKG_TARGET_IS_WINDOWS) list(APPEND FEATURE_OPTIONS "-DFEATURE_wmf=ON") diff --git a/ports/qtmultimedia/vcpkg.json b/ports/qtmultimedia/vcpkg.json index 56743b326c27fe..8b94c6d12f01ae 100644 --- a/ports/qtmultimedia/vcpkg.json +++ b/ports/qtmultimedia/vcpkg.json @@ -1,6 +1,7 @@ { "name": "qtmultimedia", "version": "6.4.1", + "port-version": 1, "description": "Qt Multimedia", "homepage": "https://www.qt.io/", "license": null, @@ -42,10 +43,15 @@ }, "gstreamer": { "description": "Build with gstreamer", - "supports": "!(windows & static)", "dependencies": [ "egl", - "gstreamer" + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-base" + ] + } ] }, "qml": { From 20032f6309b9b5d99b95f037dd995ba2a607722a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20GNIEWEK?= Date: Sun, 20 Nov 2022 06:52:04 +0100 Subject: [PATCH 09/11] [qtmultimedia] Enabled AVFoundation (part of the Apple Frameworks) --- ports/qtmultimedia/fix_avfoundation_target.patch | 13 +++++++++++++ ports/qtmultimedia/portfile.cmake | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 ports/qtmultimedia/fix_avfoundation_target.patch diff --git a/ports/qtmultimedia/fix_avfoundation_target.patch b/ports/qtmultimedia/fix_avfoundation_target.patch new file mode 100644 index 00000000000000..83c457821b92fe --- /dev/null +++ b/ports/qtmultimedia/fix_avfoundation_target.patch @@ -0,0 +1,13 @@ +diff --git a/src/plugins/multimedia/darwin/CMakeLists.txt b/src/plugins/multimedia/darwin/CMakeLists.txt +index a1a0cb1..242ceac 100644 +--- a/src/plugins/multimedia/darwin/CMakeLists.txt ++++ b/src/plugins/multimedia/darwin/CMakeLists.txt +@@ -34,7 +34,7 @@ qt_internal_add_plugin(QDarwinMediaPlugin + ${FWMetal} + ${FWQuartzCore} + ${FWAudioToolbox} +- AVFoundation::AVFoundation ++ ${FWAVFoundation} + ) + + qt_internal_extend_target(QDarwinMediaPlugin CONDITION NOT TVOS diff --git a/ports/qtmultimedia/portfile.cmake b/ports/qtmultimedia/portfile.cmake index 95dcc80f1714b9..2d2bd8fc638bcb 100644 --- a/ports/qtmultimedia/portfile.cmake +++ b/ports/qtmultimedia/portfile.cmake @@ -5,6 +5,7 @@ set(${PORT}_PATCHES remove_unistd.patch remove_export_macro.patch static_find_modules.patch + fix_avfoundation_target.patch ) #Maybe TODO: ALSA + PulseAudio? (Missing Ports) -> check ALSA since it was added @@ -33,7 +34,6 @@ INVERTED_FEATURES "gstreamer" CMAKE_DISABLE_FIND_PACKAGE_GStreamer "ffmpeg" CMAKE_DISABLE_FIND_PACKAGE_FFmpeg # Features not yet added in the manifest: - "avfoundation" CMAKE_DISABLE_FIND_PACKAGE_AVFoundation # not in vcpkg "vaapi" CMAKE_DISABLE_FIND_PACKAGE_VAAPI # not in vpckg ) From ed3399acba1eb2d61393fe2156fdd76b5fb7f834 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20GNIEWEK?= Date: Tue, 22 Nov 2022 17:52:09 +0100 Subject: [PATCH 10/11] [qtbase] Fix PCRE2 static linking for GLib --- ports/qtbase/GLIB2-static.patch | 14 +++++++++----- ports/qtbase/vcpkg.json | 1 + 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/ports/qtbase/GLIB2-static.patch b/ports/qtbase/GLIB2-static.patch index 15fec756a551b1..c384b741cef8b8 100644 --- a/ports/qtbase/GLIB2-static.patch +++ b/ports/qtbase/GLIB2-static.patch @@ -33,20 +33,24 @@ index 24a194c..91c8e41 100644 include(FindPackageHandleStandardArgs) find_package_handle_standard_args(GLIB2 REQUIRED_VARS GLIB2_LIBRARIES GTHREAD2_LIBRARIES GLIB2_INCLUDE_DIRS -@@ -137,6 +154,12 @@ if(GLIB2_FOUND AND NOT TARGET GLIB2::GLIB2) +@@ -137,6 +154,16 @@ if(GLIB2_FOUND AND NOT TARGET GLIB2::GLIB2) IMPORTED_LOCATION "${GLIB2_LIBRARIES}" INTERFACE_LINK_LIBRARIES "${GTHREAD2_LIBRARIES}" INTERFACE_INCLUDE_DIRECTORIES "${GLIB2_INCLUDE_DIRS}") -+ #vcpkg specific -+ find_package(WrapPCRE2) -+ target_link_libraries(GLIB2::GLIB2 INTERFACE WrapPCRE2::WrapPCRE2) ++ #vcpkg specific ++ pkg_check_modules(PC_PCRE2_8BIT QUIET libpcre2-8) ++ find_library(PCRE2_8BIT_LIBRARIES ++ NAMES pcre2-8 ++ HINTS ${PC_PCRE2_8BIT} ++ ) ++ target_link_libraries(GLIB2::GLIB2 INTERFACE ${PCRE2_8BIT_LIBRARIES}) + find_package(Iconv) + find_package(Intl) + target_link_libraries(GLIB2::GLIB2 INTERFACE Intl::Intl Iconv::Iconv) endif() if(GLIB2_GOBJECT_FOUND AND NOT TARGET GLIB2::GOBJECT) -@@ -153,12 +176,21 @@ if(GLIB2_GIO_FOUND AND NOT TARGET GLIB2::GIO) +@@ -153,12 +180,21 @@ if(GLIB2_GIO_FOUND AND NOT TARGET GLIB2::GIO) INTERFACE_INCLUDE_DIRECTORIES "${GLIB2_GIO_INCLUDE_DIRS}") endif() diff --git a/ports/qtbase/vcpkg.json b/ports/qtbase/vcpkg.json index 36adb761b4b8cb..e4098416280235 100644 --- a/ports/qtbase/vcpkg.json +++ b/ports/qtbase/vcpkg.json @@ -1,6 +1,7 @@ { "name": "qtbase", "version": "6.4.1", + "port-version": 1, "description": "Qt Application Framework Base Module. Includes Core, GUI, Widgets, Networking, SQL, Concurrent and other essential qt components.", "homepage": "https://www.qt.io/", "license": null, From b05dd1a773e321809a5213392ff41f51eb5c67f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20GNIEWEK?= Date: Wed, 23 Nov 2022 13:05:44 +0100 Subject: [PATCH 11/11] Added versions --- versions/baseline.json | 14 +++++++------- versions/g-/gst-rtsp-server.json | 5 +++++ versions/g-/gstreamer.json | 5 +++++ versions/o-/opencv4.json | 5 +++++ versions/q-/qtbase.json | 5 +++++ versions/q-/qtmultimedia.json | 5 +++++ 6 files changed, 32 insertions(+), 7 deletions(-) diff --git a/versions/baseline.json b/versions/baseline.json index f811c1b7b050cc..276a6345d7e0fd 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -2785,12 +2785,12 @@ "port-version": 1 }, "gst-rtsp-server": { - "baseline": "1.19.2", - "port-version": 2 + "baseline": "1.20.4", + "port-version": 0 }, "gstreamer": { - "baseline": "1.19.2", - "port-version": 11 + "baseline": "1.20.4", + "port-version": 0 }, "gtest": { "baseline": "1.12.1", @@ -5466,7 +5466,7 @@ }, "opencv4": { "baseline": "4.6.0", - "port-version": 8 + "port-version": 9 }, "opendnp3": { "baseline": "3.1.1", @@ -6250,7 +6250,7 @@ }, "qtbase": { "baseline": "6.4.1", - "port-version": 0 + "port-version": 1 }, "qtcharts": { "baseline": "6.4.1", @@ -6314,7 +6314,7 @@ }, "qtmultimedia": { "baseline": "6.4.1", - "port-version": 0 + "port-version": 1 }, "qtnetworkauth": { "baseline": "6.4.1", diff --git a/versions/g-/gst-rtsp-server.json b/versions/g-/gst-rtsp-server.json index 2a41c65f874109..19b2ca750348bc 100644 --- a/versions/g-/gst-rtsp-server.json +++ b/versions/g-/gst-rtsp-server.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "167d04773dc90f37d577ae302276e6b5a5f05911", + "version": "1.20.4", + "port-version": 0 + }, { "git-tree": "e6c0f43ea29f3c58c4ea82529d5a33aac49982d5", "version": "1.19.2", diff --git a/versions/g-/gstreamer.json b/versions/g-/gstreamer.json index bc79d01f6ec010..29d7ac7706cb04 100644 --- a/versions/g-/gstreamer.json +++ b/versions/g-/gstreamer.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "b7afb1aa90258b95521b94bd290a343502705f5c", + "version": "1.20.4", + "port-version": 0 + }, { "git-tree": "f54f9f904091fc4fd931e018b82af777defb455c", "version": "1.19.2", diff --git a/versions/o-/opencv4.json b/versions/o-/opencv4.json index 6ff7497df6ebf8..ee3b2a8943e8e6 100644 --- a/versions/o-/opencv4.json +++ b/versions/o-/opencv4.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "3fcb51fbbc3605e41bcdbd0ea0acd6233127b49b", + "version": "4.6.0", + "port-version": 9 + }, { "git-tree": "3ba183524c95cc3abfd86ecfaa1892dab4b89326", "version": "4.6.0", diff --git a/versions/q-/qtbase.json b/versions/q-/qtbase.json index 6d8eedf8487cc0..799a2e1a8b1355 100644 --- a/versions/q-/qtbase.json +++ b/versions/q-/qtbase.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "b00638e59f08a7f585f126cdad6f356f59268c63", + "version": "6.4.1", + "port-version": 1 + }, { "git-tree": "588827e1615a278c43ff1d9655070f7343f4cb94", "version": "6.4.1", diff --git a/versions/q-/qtmultimedia.json b/versions/q-/qtmultimedia.json index 6b905dbfd6fdeb..d70806adefe9d1 100644 --- a/versions/q-/qtmultimedia.json +++ b/versions/q-/qtmultimedia.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "def667261d0e10e6eca9012704aacdda625d347c", + "version": "6.4.1", + "port-version": 1 + }, { "git-tree": "b88d33b83055caf50301918b6ebcbe2e7f3d9bb4", "version": "6.4.1",