vcpkg/ports/qtmultimedia/portfile.cmake
Alexander Neumann 1e2c7c3d57
[qt] update port to 6.4 (#26693)
* try qt 6.4-beta4

* fix patch

* fix copyright install

* fix qtdeclarative

* always perform import prefix correction

* adjust qtmultimedia

* fix qttools

* add missing "

* fix linux ?

* fix qtmultimedia with gstreamer

* fix qtvirtualkeyboard

* fix qtwebengine

* fix qmllint regression in qtdeclarative on osx/linux

* fix details

* fix qttools deps

* fix qtdeclarative deps

* remove xcb feature

* fix hunspell patch

* bump qtbase

* add qt3d

* format manifest

* test features in CI

* pass ci baseline stuff

* vulkan is skip in ci so cannot force it.

* remove extra ,

* fix deps

* try to fix promotion

* gstreamer adjustments.

* fix gstreamer on linux

* fix gstreamer stuff

* fix x264 api import macro

* fix gst-rsp-server

* correctly replace

* promote targets....

* enable arm64 qtwebengine

* --trace-expand

* install wrapper for egl.

* add newline

* remove opengl from skip list

* add gl to link

* another try

* retry again

* test dynamic angle linkage

* retry

* link XNVCtrl

* retry

* add libxnvctrl

* retry

* retry again...

* move wrapper to angle

* revert changes to egl-reg

* more debugging

* try again

* fix stuff

* add missing ,

* egl stuff

* wrapper stuff

* fix angle

* remove double dep

* remove libxnvctrl

* format manifest

* revert trace

* bump version

* bump v

* v db

* remove trace

* v db

* refine supports

* v db

* remove qtmultimedia from baseline

* format manifest

* update all the stuff

* refine qtmultimedia

* fix qtmultimedia?

* fix stuff

* fix stuff ?

* trace again

* Try fixing qtmultimedia for static windows builds.

* is ci faster than me...?

* refine

* fix gstreamer static usage

* fix all the qt things!

* fix the path

* try getting logs.

* fix patch

* trace stuff

* only fix stuff when it needs fixing

* force lookup of system EGL. migth need a wrapper in opengl instead.

* try fixing opengl

* don't directly call _find_package

* don't search in install prefix

* retry

* disable trace

* have the correct fix for linux ?

* move angle into a subfolder. No way to deal with it otherwise on linux.

* make the wrapper do nothing

* try fixing allegro5

* lower case

* remove wrapper

* v db

* remove trace

* v db

* remove trace

* v db

* try fixing allegro5 on arm

* retry again

* try again

* revert allegro

* put on ci baseline

* v db

* v db

* bump port

* v db fix

* remove conflicting wrapper

* v db

* glib now uses pcre2

* fix gstreamer picking up egl on windows

* v db

* fix find_package call

* Add bullet feature control

* Disable Qt

* Update versions

* Remove obsolete qt patch junk

* Update versions

* v db

* comments

* v db

* v db

* v db

* v db

* restore correction lost in merge

* v db

* promote to global

* v db

* Fix minimal qtbase builds with opengl disabled

* make host dependency on qtshadertools a normal dependency in qtmultimedia.

* v db

* opengl dynamic doesn't work on !windows

* v db

Co-authored-by: Kai Pastor <dg0yt@darc.de>
2022-11-18 12:31:51 -08:00

84 lines
3.7 KiB
CMake

set(SCRIPT_PATH "${CURRENT_INSTALLED_DIR}/share/qtbase")
include("${SCRIPT_PATH}/qt_install_submodule.cmake")
set(${PORT}_PATCHES
remove_unistd.patch
remove_export_macro.patch
static_find_modules.patch
)
#Maybe TODO: ALSA + PulseAudio? (Missing Ports) -> check ALSA since it was added
# qt_find_package(ALSA PROVIDED_TARGETS ALSA::ALSA MODULE_NAME multimedia QMAKE_LIB alsa)
# qt_find_package(AVFoundation PROVIDED_TARGETS AVFoundation::AVFoundation MODULE_NAME multimedia QMAKE_LIB avfoundation)
# qt_find_package(WrapPulseAudio PROVIDED_TARGETS WrapPulseAudio::WrapPulseAudio MODULE_NAME multimedia QMAKE_LIB pulseaudio)
# qt_find_package(WMF PROVIDED_TARGETS WMF::WMF MODULE_NAME multimedia QMAKE_LIB wmf)
# qt_configure_add_summary_section(NAME "Qt Multimedia")
# qt_configure_add_summary_entry(ARGS "alsa")
# qt_configure_add_summary_entry(ARGS "gstreamer_1_0")
# qt_configure_add_summary_entry(ARGS "linux_v4l")
# qt_configure_add_summary_entry(ARGS "pulseaudio")
# qt_configure_add_summary_entry(ARGS "mmrenderer")
# qt_configure_add_summary_entry(ARGS "avfoundation")
# qt_configure_add_summary_entry(ARGS "wmf")
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
FEATURES
"qml" CMAKE_REQUIRE_FIND_PACKAGE_Qt6Quick
"widgets" CMAKE_REQUIRE_FIND_PACKAGE_Qt6Widgets
INVERTED_FEATURES
"qml" CMAKE_DISABLE_FIND_PACKAGE_Qt6Quick
"widgets" CMAKE_DISABLE_FIND_PACKAGE_Qt6Widgets
"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
)
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
if("gstreamer" IN_LIST FEATURES AND "ffmpeg" IN_LIST FEATURES)
message(FATAL_ERROR "Qt will by default autolink both plugin backends in static builds leading to symbol collisions and a build failure in dependent ports!\n
As such in static builds only one backend is allowed by default.\n If you plan to manually link the plugins feel free to remove this error in an overlay.")
endif()
endif()
if("gstreamer" IN_LIST FEATURES)
list(APPEND FEATURE_OPTIONS "-DINPUT_gstreamer='yes'")
else()
list(APPEND FEATURE_OPTIONS "-DINPUT_gstreamer='no'")
endif()
if(VCPKG_TARGET_IS_WINDOWS)
list(APPEND FEATURE_OPTIONS "-DFEATURE_wmf=ON")
else()
list(APPEND FEATURE_OPTIONS "-DFEATURE_wmf=OFF")
endif()
if("ffmpeg" IN_LIST FEATURES)
# Note: Requires pulsadio on linux and wmfsdk on windows
list(APPEND FEATURE_OPTIONS "-DINPUT_ffmpeg='yes'")
if(VCPKG_TARGET_IS_WINDOWS)
list(APPEND FEATURE_OPTIONS "-DINPUT_pulseaudio='no'")
else()
list(APPEND FEATURE_OPTIONS "-DINPUT_pulseaudio='yes'")
endif()
else()
list(APPEND FEATURE_OPTIONS "-DINPUT_ffmpeg='no'")
list(APPEND FEATURE_OPTIONS "-DINPUT_pulseaudio='no'")
endif()
# alsa is not ready
list(APPEND FEATURE_OPTIONS "-DFEATURE_alsa=OFF")
qt_install_submodule(PATCHES ${${PORT}_PATCHES}
CONFIGURE_OPTIONS ${FEATURE_OPTIONS}
-DCMAKE_FIND_PACKAGE_TARGETS_GLOBAL=ON
CONFIGURE_OPTIONS_RELEASE
CONFIGURE_OPTIONS_DEBUG
)
if("gstreamer" IN_LIST FEATURES AND VCPKG_LIBRARY_LINKAGE STREQUAL "static")
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/Qt6Multimedia/Qt6QGstreamerMediaPluginDependencies.cmake" "GStreamer\;FALSE\;\;\;;GStreamer\;FALSE\;\;App\;;GStreamer\;FALSE\;\;\;Gl" "GStreamer\;FALSE\;\;\;;GStreamer\;FALSE\;\;App\;;GStreamer\;FALSE\;\;\;Gl;EGL\;FALSE\;\;\;" )
endif()