diff options
Diffstat (limited to 'src/multimedia/CMakeLists.txt')
-rw-r--r-- | src/multimedia/CMakeLists.txt | 372 |
1 files changed, 372 insertions, 0 deletions
diff --git a/src/multimedia/CMakeLists.txt b/src/multimedia/CMakeLists.txt new file mode 100644 index 000000000..7939ecef9 --- /dev/null +++ b/src/multimedia/CMakeLists.txt @@ -0,0 +1,372 @@ +# Copyright (C) 2022 The Qt Company Ltd. +# SPDX-License-Identifier: BSD-3-Clause + +# Generated from multimedia.pro. + +##################################################################### +## Multimedia Module: +##################################################################### + +find_package(Qt6 COMPONENTS ShaderTools) + +qt_internal_find_apple_system_framework(FWCoreAudio CoreAudio) # special case +qt_internal_find_apple_system_framework(FWCoreVideo CoreVideo) # special case +qt_internal_find_apple_system_framework(FWAudioUnit AudioUnit) # special case +qt_internal_find_apple_system_framework(FWCoreMedia CoreMedia) # special case +qt_internal_find_apple_system_framework(FWAudioToolbox AudioToolbox) # special case + +qt_internal_add_module(Multimedia + PLUGIN_TYPES multimedia + SOURCES + audio/qtaudio.cpp audio/qtaudio.h audio/qaudio.h + audio/qaudiobuffer.cpp audio/qaudiobuffer.h + audio/qaudiodecoder.cpp audio/qaudiodecoder.h audio/qaudiodecoder_p.h + audio/qaudiodevice.cpp audio/qaudiodevice.h audio/qaudiodevice_p.h + audio/qaudioinput.cpp audio/qaudioinput.h + audio/qaudiobufferinput.cpp audio/qaudiobufferinput.h + audio/qaudiooutput.cpp audio/qaudiooutput.h + audio/qaudioformat.cpp audio/qaudioformat.h + audio/qaudiohelpers.cpp audio/qaudiohelpers_p.h + audio/qaudiosource.cpp audio/qaudiosource.h + audio/qaudiosink.cpp audio/qaudiosink.h + audio/qaudiosystem.cpp audio/qaudiosystem_p.h + audio/qaudiostatemachine.cpp audio/qaudiostatemachine_p.h + audio/qaudiostatemachineutils_p.h + audio/qsamplecache_p.cpp audio/qsamplecache_p.h + audio/qsoundeffect.cpp audio/qsoundeffect.h + audio/qwavedecoder.cpp audio/qwavedecoder.h + camera/qcamera.cpp camera/qcamera.h camera/qcamera_p.h + camera/qcameradevice.cpp camera/qcameradevice.h camera/qcameradevice_p.h + camera/qimagecapture.cpp camera/qimagecapture.h + compat/removed_api.cpp + platform/qgstreamer_platformspecificinterface.cpp platform/qgstreamer_platformspecificinterface_p.h + platform/qplatformaudiodecoder.cpp platform/qplatformaudiodecoder_p.h + platform/qplatformaudioinput_p.h + platform/qplatformaudiooutput_p.h + platform/qplatformaudioresampler_p.h + platform/qplatformcamera.cpp platform/qplatformcamera_p.h + platform/qplatformcapturablewindows_p.h + platform/qplatformimagecapture.cpp platform/qplatformimagecapture_p.h + platform/qplatformmediacapture.cpp platform/qplatformmediacapture_p.h + platform/qplatformmediadevices.cpp platform/qplatformmediadevices_p.h + platform/qplatformmediaformatinfo.cpp platform/qplatformmediaformatinfo_p.h + platform/qplatformmediaintegration.cpp platform/qplatformmediaintegration_p.h + platform/qplatformmediaplayer.cpp platform/qplatformmediaplayer_p.h + platform/qplatformmediaplugin.cpp platform/qplatformmediaplugin_p.h + platform/qplatformmediarecorder.cpp platform/qplatformmediarecorder_p.h + platform/qplatformsurfacecapture.cpp platform/qplatformsurfacecapture_p.h + platform/qplatformvideodevices.cpp platform/qplatformvideodevices_p.h + platform/qplatformvideosink.cpp platform/qplatformvideosink_p.h + platform/qplatformvideosource.cpp platform/qplatformvideosource_p.h + platform/qplatformvideoframeinput.cpp platform/qplatformvideoframeinput_p.h + platform/qplatformaudiobufferinput.cpp platform/qplatformaudiobufferinput_p.h + playback/qmediaplayer.cpp playback/qmediaplayer.h playback/qmediaplayer_p.h + qmediadevices.cpp qmediadevices.h + qmediaenumdebug.h + qmediaformat.cpp qmediaformat.h + qmediametadata.cpp qmediametadata.h + qmediastoragelocation.cpp qmediastoragelocation_p.h + qmediatimerange.cpp qmediatimerange.h + qmultimediautils.cpp qmultimediautils_p.h + qmediaframeinput.cpp qmediaframeinput_p.h + qmaybe_p.h + qtmultimediaglobal.h qtmultimediaglobal_p.h + qerrorinfo_p.h + qmediainputencoderinterface_p.h + recording/qmediacapturesession.cpp recording/qmediacapturesession.h recording/qmediacapturesession_p.h + recording/qmediarecorder.cpp recording/qmediarecorder.h recording/qmediarecorder_p.h + recording/qscreencapture.cpp recording/qscreencapture.h + recording/qwindowcapture.cpp recording/qwindowcapture.h + recording/qcapturablewindow.cpp recording/qcapturablewindow.h recording/qcapturablewindow_p.h + recording/qvideoframeinput.cpp recording/qvideoframeinput.h + video/qabstractvideobuffer.cpp video/qabstractvideobuffer_p.h + video/qmemoryvideobuffer.cpp video/qmemoryvideobuffer_p.h + video/qimagevideobuffer.cpp video/qimagevideobuffer_p.h + video/qvideoframe.cpp video/qvideoframe.h video/qvideoframe_p.h + video/qvideosink.cpp video/qvideosink.h + video/qvideotexturehelper.cpp video/qvideotexturehelper_p.h + video/qvideoframeconversionhelper.cpp video/qvideoframeconversionhelper_p.h + video/qvideooutputorientationhandler.cpp video/qvideooutputorientationhandler_p.h + video/qvideoframeconverter.cpp video/qvideoframeconverter_p.h + video/qvideoframeformat.cpp video/qvideoframeformat.h + video/qvideowindow.cpp video/qvideowindow_p.h + video/qtvideo.cpp video/qtvideo.h + INCLUDE_DIRECTORIES + audio + camera + controls + platform + playback + recording + video + LIBRARIES + Qt::CorePrivate + Qt::GuiPrivate + PUBLIC_LIBRARIES + Qt::Core + Qt::Gui + Qt::Network + PRIVATE_MODULE_INTERFACE + Qt::CorePrivate + Qt::GuiPrivate + NO_PCH_SOURCES + compat/removed_api.cpp + GENERATE_CPP_EXPORTS +) + +qt_internal_extend_target(Multimedia + CONDITION LINUX OR ANDROID + SOURCES qsymbolsresolveutils.cpp qsymbolsresolveutils_p.h) + +qt_internal_add_simd_part(Multimedia SIMD sse2 + SOURCES + video/qvideoframeconversionhelper_sse2.cpp +) + +qt_internal_add_simd_part(Multimedia SIMD ssse3 + SOURCES + video/qvideoframeconversionhelper_ssse3.cpp +) + +qt_internal_add_simd_part(Multimedia SIMD arch_haswell + SOURCES + video/qvideoframeconversionhelper_avx2.cpp + EXCLUDE_OSX_ARCHITECTURES + arm64 +) + +qt_internal_add_docs(Multimedia + doc/qtmultimedia.qdocconf +) + +qt_internal_extend_target(Multimedia CONDITION QT_FEATURE_alsa + SOURCES + alsa/qalsaaudiodevice.cpp alsa/qalsaaudiodevice_p.h + alsa/qalsaaudiosource.cpp alsa/qalsaaudiosource_p.h + alsa/qalsaaudiosink.cpp alsa/qalsaaudiosink_p.h + alsa/qalsamediadevices.cpp alsa/qalsamediadevices_p.h + INCLUDE_DIRECTORIES + alsa + LIBRARIES + ALSA::ALSA +) + +qt_internal_extend_target(Multimedia CONDITION QT_FEATURE_pulseaudio + SOURCES + pulseaudio/qpulseaudiodevice.cpp pulseaudio/qpulseaudiodevice_p.h + pulseaudio/qaudioengine_pulse.cpp pulseaudio/qaudioengine_pulse_p.h + pulseaudio/qpulseaudiosource.cpp pulseaudio/qpulseaudiosource_p.h + pulseaudio/qpulseaudiosink.cpp pulseaudio/qpulseaudiosink_p.h + pulseaudio/qpulsehelpers.cpp pulseaudio/qpulsehelpers_p.h + pulseaudio/qpulseaudiomediadevices.cpp pulseaudio/qpulseaudiomediadevices_p.h + INCLUDE_DIRECTORIES + pulseaudio + LIBRARIES + WrapPulseAudio::WrapPulseAudio +) + +qt_internal_extend_target(Multimedia CONDITION ANDROID + SOURCES + android/qandroidaudiosource.cpp android/qandroidaudiosource_p.h + android/qandroidaudiosink.cpp android/qandroidaudiosink_p.h + android/qandroidaudiodevice.cpp android/qandroidaudiodevice_p.h + android/qopenslesengine.cpp android/qopenslesengine_p.h + android/qandroidmediadevices.cpp android/qandroidmediadevices_p.h + INCLUDE_DIRECTORIES + android + LIBRARIES + OpenSLES +) + +if(ANDROID) + set_property(TARGET Multimedia APPEND PROPERTY QT_ANDROID_BUNDLED_JAR_DEPENDENCIES + jar/Qt${QtMultimedia_VERSION_MAJOR}AndroidMultimedia.jar:org.qtproject.qt.android.multimedia.QtAudioDeviceManager + ) +endif() + +qt_internal_extend_target(Multimedia CONDITION APPLE + SOURCES + darwin/qdarwinaudiodevice.mm darwin/qdarwinaudiodevice_p.h + darwin/qdarwinaudiosource.mm darwin/qdarwinaudiosource_p.h + darwin/qdarwinaudiosink.mm darwin/qdarwinaudiosink_p.h + darwin/qcoreaudioutils.mm darwin/qcoreaudioutils_p.h + darwin/qdarwinmediadevices.mm darwin/qdarwinmediadevices_p.h + INCLUDE_DIRECTORIES + darwin + LIBRARIES + ${FWAudioToolbox} + ${FWCoreAudio} + ${FWCoreMedia} + ${FWCoreFoundation} +) + +qt_internal_extend_target(Multimedia CONDITION MACOS + SOURCES + darwin/qmacosaudiodatautils_p.h +) + +qt_internal_extend_target(Multimedia CONDITION IOS OR TVOS + SOURCES + darwin/qcoreaudiosessionmanager.mm darwin/qcoreaudiosessionmanager_p.h + LIBRARIES + ${FWAVFoundation} + ${FWFoundation} +) + +qt_internal_extend_target(Multimedia CONDITION QNX + SOURCES + qnx/qqnxaudiodevice.cpp qnx/qqnxaudiodevice_p.h + qnx/qqnxaudiosink.cpp qnx/qqnxaudiosink_p.h + qnx/qqnxaudiosource.cpp qnx/qqnxaudiosource_p.h + qnx/qqnxaudioutils.cpp qnx/qqnxaudioutils_p.h + qnx/qqnxmediadevices.cpp qnx/qqnxmediadevices_p.h + INCLUDE_DIRECTORIES + qnx + LIBRARIES + asound +) + +qt_internal_extend_target(Multimedia CONDITION QT_FEATURE_wmf + SOURCES + windows/qwindowsaudiodevice.cpp windows/qwindowsaudiodevice_p.h + windows/qwindowsaudiosource.cpp windows/qwindowsaudiosource_p.h + windows/qwindowsaudiosink.cpp windows/qwindowsaudiosink_p.h + windows/qwindowsaudioutils.cpp windows/qwindowsaudioutils_p.h + windows/qwindowsmediadevices.cpp windows/qwindowsmediadevices_p.h + windows/qwindowsmediafoundation.cpp windows/qwindowsmediafoundation_p.h + windows/qwindowsresampler.cpp windows/qwindowsresampler_p.h + windows/qwindowsmultimediautils.cpp windows/qwindowsmultimediautils_p.h + windows/qwindowsmfdefs.cpp windows/qwindowsmfdefs_p.h + windows/qcomptr_p.h + windows/qcomtaskresource_p.h + INCLUDE_DIRECTORIES + windows + LIBRARIES + winmm + ksuser +) + +# Only on Windows' MinGW/LLVM build, symbols from `strmif.h` and `ddraw.h` conflicts +# with symbols defined in `ksmedia.h`. +qt_internal_extend_target(Multimedia CONDITION QT_FEATURE_wmf AND MINGW + NO_UNITY_BUILD_SOURCES + windows/qwindowsaudiodevice.cpp windows/qwindowsaudiodevice_p.h + windows/qwindowsaudiosource.cpp windows/qwindowsaudiosource_p.h + windows/qwindowsaudiosink.cpp windows/qwindowsaudiosink_p.h + windows/qwindowsaudioutils.cpp windows/qwindowsaudioutils_p.h + windows/qwindowsmediadevices.cpp windows/qwindowsmediadevices_p.h + windows/qwindowsmediafoundation.cpp windows/qwindowsmediafoundation_p.h + windows/qwindowsresampler.cpp windows/qwindowsresampler_p.h + windows/qwindowsmultimediautils.cpp windows/qwindowsmultimediautils_p.h + windows/qwindowsmfdefs.cpp windows/qwindowsmfdefs_p.h + windows/qcomptr_p.h + windows/qcomtaskresource_p.h +) + +qt_internal_extend_target(Multimedia CONDITION WASM + SOURCES + wasm/qwasmmediadevices.cpp wasm/qwasmmediadevices_p.h + wasm/qwasmaudiosource.cpp wasm/qwasmaudiosource_p.h + wasm/qwasmaudiosink.cpp wasm/qwasmaudiosink_p.h + wasm/qwasmaudiodevice.cpp wasm/qwasmaudiodevice_p.h + INCLUDE_DIRECTORIES + wasm + PUBLIC_LIBRARIES + openal + NO_UNITY_BUILD_SOURCES + wasm/qwasmaudiosink.cpp + # To avoid collision between symbols defined in wasm/qwasmaudiosource.cpp. +) + +set(VIDEO_VERTEX_SHADERS + "shaders/vertex.vert" + "shaders/externalsampler.vert" +) + +set(VIDEO_SHADERS + "shaders/externalsampler.frag@glsl,100es,shaders/externalsampler_gles.frag" + "shaders/abgr.frag" + "shaders/argb.frag" + "shaders/rgba.frag" + "shaders/bgra.frag" + "shaders/y.frag" + "shaders/nv12.frag" + "shaders/nv21.frag" + "shaders/imc2.frag" + "shaders/imc4.frag" + "shaders/uyvy.frag" + "shaders/yuv_triplanar.frag" + "shaders/yuv_triplanar_p10.frag" + "shaders/yvu_triplanar.frag" + "shaders/yuyv.frag" + "shaders/ayuv.frag" + "shaders/nv12_bt2020_pq.frag" + "shaders/nv12_bt2020_hlg.frag" +) + +qt_internal_add_shaders(Multimedia "qtmultimedia_shaders" + SILENT + BATCHABLE + PRECOMPILE + OPTIMIZED + PREFIX + "/qt-project.org/multimedia" + FILES + ${VIDEO_VERTEX_SHADERS} + ${VIDEO_SHADERS} +) + +string(REPLACE ".frag" "_linear.frag.qsb" LINEAR_VIDEO_SHADERS "${VIDEO_SHADERS}") + +qt_internal_add_shaders(Multimedia "qtmultimedia_shaders_linear" + SILENT + BATCHABLE + PRECOMPILE + OPTIMIZED + PREFIX + "/qt-project.org/multimedia" + FILES + ${VIDEO_SHADERS} + OUTPUTS + ${LINEAR_VIDEO_SHADERS} + DEFINES + QMM_OUTPUTSURFACE_LINEAR +) + +qt_internal_add_shaders(Multimedia "qtmultimedia_shaders_gl_macos" + SILENT + BATCHABLE + PRECOMPILE + OPTIMIZED + PREFIX + "/qt-project.org/multimedia" + GLSL + "120,150" + NOHLSL + NOMSL + FILES + "shaders/rectsampler.vert" + "shaders/rectsampler_bgra.frag" +) + +qt_internal_add_shaders(Multimedia "qtmultimedia_shaders_gl_macos_linear" + SILENT + BATCHABLE + PRECOMPILE + OPTIMIZED + PREFIX + "/qt-project.org/multimedia" + GLSL + "120,150" + NOHLSL + NOMSL + FILES + "shaders/rectsampler_bgra.frag" + OUTPUTS + "shaders/rectsampler_bgra_linear.frag.qsb" +) + +if(DEFINED QT_DEFAULT_MEDIA_BACKEND) + target_compile_definitions(Multimedia + PRIVATE QT_DEFAULT_MEDIA_BACKEND="${QT_DEFAULT_MEDIA_BACKEND}") +endif() |