From f0ea26416a73e9ed60e0e0440275e73081f601a2 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Wed, 26 Oct 2016 16:15:20 +0200 Subject: Move qtmultimedia over to the new config system Use the new configuration system to define external libraries, configure tests and features. Don't use pkg-config outside of the configuration step. And move all command line options over from qtbase, so that we can remove them from there in a second step. Change-Id: I1aa4b557a6aee17eeceb00602005a2d28b426a26 Reviewed-by: Oswald Buddenhagen Reviewed-by: Yoann Lopes --- config.tests/alsa/alsa.pro | 3 - config.tests/avfoundation/avfoundation.pro | 2 - config.tests/directshow/directshow.pro | 2 - config.tests/gstreamer/gstreamer.pro | 10 - config.tests/gstreamer_appsrc/gstreamer_appsrc.pro | 9 - .../gstreamer_encodingprofiles.pro | 10 - .../gstreamer_photography.pro | 12 - config.tests/mmrenderer/mmrenderer.pro | 3 - config.tests/openal/openal.pro | 4 - config.tests/pulseaudio/pulseaudio.pro | 6 - config.tests/resourcepolicy/resourcepolicy.pro | 5 - config.tests/wmf/wmf.pro | 2 - config_help.txt | 8 + configure.json | 5 + examples/multimedia/multimedia.pro | 3 +- qtmultimedia.pro | 38 --- src/gsttools/gsttools.pro | 40 +-- src/imports/audioengine/audioengine.pro | 5 +- src/imports/imports.pro | 3 +- src/multimedia/audio/audio.pri | 19 +- src/multimedia/configure.json | 314 +++++++++++++++++++++ src/plugins/avfoundation/camera/camera.pro | 3 +- .../avfoundation/mediaplayer/mediaplayer.pro | 4 +- src/plugins/directshow/camera/camera.pri | 2 +- src/plugins/directshow/directshow.pro | 8 +- src/plugins/directshow/player/player.pri | 8 +- src/plugins/gstreamer/camerabin/camerabin.pro | 8 +- src/plugins/gstreamer/common.pri | 22 +- .../gstreamer/mediacapture/mediacapture.pro | 2 +- src/plugins/plugins.pro | 23 +- src/plugins/pulseaudio/pulseaudio.pro | 3 +- src/plugins/qnx/mediaplayer/mediaplayer.pri | 2 +- src/plugins/resourcepolicy/resourcepolicy.pro | 4 +- src/plugins/videonode/videonode.pro | 4 +- src/plugins/wmf/decoder/decoder.pri | 6 +- src/plugins/wmf/player/player.pri | 3 +- src/src.pro | 5 +- .../auto/integration/qsoundeffect/qsoundeffect.pro | 2 +- 38 files changed, 402 insertions(+), 210 deletions(-) create mode 100644 config_help.txt create mode 100644 configure.json create mode 100644 src/multimedia/configure.json diff --git a/config.tests/alsa/alsa.pro b/config.tests/alsa/alsa.pro index 26514b788..db488fe5c 100644 --- a/config.tests/alsa/alsa.pro +++ b/config.tests/alsa/alsa.pro @@ -1,6 +1,3 @@ SOURCES = alsatest.cpp - CONFIG -= qt dylib -LIBS+=-lasound - diff --git a/config.tests/avfoundation/avfoundation.pro b/config.tests/avfoundation/avfoundation.pro index ac680d71b..9ef3afea2 100644 --- a/config.tests/avfoundation/avfoundation.pro +++ b/config.tests/avfoundation/avfoundation.pro @@ -1,3 +1 @@ OBJECTIVE_SOURCES += main.mm - -LIBS += -framework AVFoundation -framework Foundation diff --git a/config.tests/directshow/directshow.pro b/config.tests/directshow/directshow.pro index 6493e54ab..abb9ba83a 100644 --- a/config.tests/directshow/directshow.pro +++ b/config.tests/directshow/directshow.pro @@ -2,5 +2,3 @@ CONFIG -= qt CONFIG += console SOURCES += main.cpp - -LIBS += -lstrmiids -ldmoguids -luuid -lmsdmo -lole32 -loleaut32 diff --git a/config.tests/gstreamer/gstreamer.pro b/config.tests/gstreamer/gstreamer.pro index 6b9843ac3..3f6c64360 100644 --- a/config.tests/gstreamer/gstreamer.pro +++ b/config.tests/gstreamer/gstreamer.pro @@ -1,12 +1,2 @@ SOURCES += main.cpp -CONFIG += link_pkgconfig - -PKGCONFIG += \ - gstreamer-$$GST_VERSION \ - gstreamer-base-$$GST_VERSION \ - gstreamer-audio-$$GST_VERSION \ - gstreamer-video-$$GST_VERSION \ - gstreamer-pbutils-$$GST_VERSION - - diff --git a/config.tests/gstreamer_appsrc/gstreamer_appsrc.pro b/config.tests/gstreamer_appsrc/gstreamer_appsrc.pro index 0f3ca2b17..28dcadcbf 100644 --- a/config.tests/gstreamer_appsrc/gstreamer_appsrc.pro +++ b/config.tests/gstreamer_appsrc/gstreamer_appsrc.pro @@ -1,10 +1 @@ SOURCES += main.cpp - -CONFIG += link_pkgconfig - -PKGCONFIG += \ - gstreamer-$$GST_VERSION \ - gstreamer-base-$$GST_VERSION \ - gstreamer-audio-$$GST_VERSION \ - gstreamer-video-$$GST_VERSION \ - gstreamer-pbutils-$$GST_VERSION diff --git a/config.tests/gstreamer_encodingprofiles/gstreamer_encodingprofiles.pro b/config.tests/gstreamer_encodingprofiles/gstreamer_encodingprofiles.pro index fad40b0bd..28dcadcbf 100644 --- a/config.tests/gstreamer_encodingprofiles/gstreamer_encodingprofiles.pro +++ b/config.tests/gstreamer_encodingprofiles/gstreamer_encodingprofiles.pro @@ -1,11 +1 @@ SOURCES += main.cpp - -CONFIG += link_pkgconfig - - -PKGCONFIG += \ - gstreamer-$$GST_VERSION \ - gstreamer-base-$$GST_VERSION \ - gstreamer-audio-$$GST_VERSION \ - gstreamer-video-$$GST_VERSION \ - gstreamer-pbutils-$$GST_VERSION diff --git a/config.tests/gstreamer_photography/gstreamer_photography.pro b/config.tests/gstreamer_photography/gstreamer_photography.pro index 975991f93..28dcadcbf 100644 --- a/config.tests/gstreamer_photography/gstreamer_photography.pro +++ b/config.tests/gstreamer_photography/gstreamer_photography.pro @@ -1,13 +1 @@ SOURCES += main.cpp - -CONFIG += link_pkgconfig - -PKGCONFIG += \ - gstreamer-$$GST_VERSION \ - gstreamer-base-$$GST_VERSION \ - gstreamer-audio-$$GST_VERSION \ - gstreamer-video-$$GST_VERSION \ - gstreamer-pbutils-$$GST_VERSION - -LIBS += -lgstphotography-$$GST_VERSION - diff --git a/config.tests/mmrenderer/mmrenderer.pro b/config.tests/mmrenderer/mmrenderer.pro index cc1e21e82..571b51627 100644 --- a/config.tests/mmrenderer/mmrenderer.pro +++ b/config.tests/mmrenderer/mmrenderer.pro @@ -1,6 +1,3 @@ SOURCES = mmrenderertest.cpp - CONFIG -= qt -LIBS += -lmmrndclient -lstrm - diff --git a/config.tests/openal/openal.pro b/config.tests/openal/openal.pro index a4a7d1e86..1aa1271c6 100644 --- a/config.tests/openal/openal.pro +++ b/config.tests/openal/openal.pro @@ -1,7 +1,3 @@ SOURCES += main.cpp -win32: LIBS += -lOpenAL32 -unix:!mac:!blackberry: LIBS += -lopenal -blackberry: LIBS += -lOpenAL -mac: LIBS += -framework OpenAL mac: DEFINES += HEADER_OPENAL_PREFIX diff --git a/config.tests/pulseaudio/pulseaudio.pro b/config.tests/pulseaudio/pulseaudio.pro index 12ad7fba2..ff7082390 100644 --- a/config.tests/pulseaudio/pulseaudio.pro +++ b/config.tests/pulseaudio/pulseaudio.pro @@ -1,8 +1,2 @@ CONFIG -= qt -CONFIG += link_pkgconfig - -PKGCONFIG += \ - libpulse \ - libpulse-mainloop-glib - SOURCES = pulseaudio.cpp diff --git a/config.tests/resourcepolicy/resourcepolicy.pro b/config.tests/resourcepolicy/resourcepolicy.pro index 7627d4805..3f6c64360 100644 --- a/config.tests/resourcepolicy/resourcepolicy.pro +++ b/config.tests/resourcepolicy/resourcepolicy.pro @@ -1,7 +1,2 @@ SOURCES += main.cpp -CONFIG += link_pkgconfig - -PKGCONFIG += \ - libresourceqt5 - diff --git a/config.tests/wmf/wmf.pro b/config.tests/wmf/wmf.pro index ac5643e4f..abb9ba83a 100644 --- a/config.tests/wmf/wmf.pro +++ b/config.tests/wmf/wmf.pro @@ -2,5 +2,3 @@ CONFIG -= qt CONFIG += console SOURCES += main.cpp - -LIBS += -lstrmiids -ldmoguids -luuid -lmsdmo -lole32 -loleaut32 -lMf -lMfuuid -lMfplat -lPropsys diff --git a/config_help.txt b/config_help.txt new file mode 100644 index 000000000..78c75acbd --- /dev/null +++ b/config_help.txt @@ -0,0 +1,8 @@ +Multimedia options: + + -pulseaudio .......... Enable PulseAudio support [auto] (Unix only) + -alsa ................ Enable ALSA support [auto] (Unix only) + -no-gstreamer ........ Disable support for GStreamer + -gstreamer [version] . Enable GStreamer support [auto] + With no parameter, 1.0 is tried first, then 0.10. + -wmf-backend ......... Enable WMF support [no] (Windows only) diff --git a/configure.json b/configure.json new file mode 100644 index 000000000..12ae19834 --- /dev/null +++ b/configure.json @@ -0,0 +1,5 @@ +{ + "subconfigs": [ + "src/multimedia" + ] +} diff --git a/examples/multimedia/multimedia.pro b/examples/multimedia/multimedia.pro index 449cb150f..0a01439c4 100644 --- a/examples/multimedia/multimedia.pro +++ b/examples/multimedia/multimedia.pro @@ -1,4 +1,5 @@ TEMPLATE = subdirs +QT_FOR_CONFIG += multimedia-private SUBDIRS += audiodecoder @@ -20,5 +21,5 @@ qtHaveModule(quick) { video } -config_openal: SUBDIRS += audioengine +qtConfig(openal): SUBDIRS += audioengine diff --git a/qtmultimedia.pro b/qtmultimedia.pro index c0a90bc56..00c82cd0f 100644 --- a/qtmultimedia.pro +++ b/qtmultimedia.pro @@ -1,41 +1,3 @@ requires(qtHaveModule(gui)) - -load(configure) -qtCompileTest(openal) -win32 { - qtCompileTest(directshow) { - qtCompileTest(wshellitem) - } - qtCompileTest(evr) - qtCompileTest(wmsdk) - qtCompileTest(wmf) - qtCompileTest(wasapi) -} else:mac { - qtCompileTest(avfoundation) -} else:qnx { - qtCompileTest(mmrenderer) -} else:!android { - contains(QT_CONFIG, alsa):qtCompileTest(alsa) - contains(QT_CONFIG, pulseaudio):qtCompileTest(pulseaudio) - - isEmpty(GST_VERSION) { - contains(QT_CONFIG, gstreamer-0.10) { - GST_VERSION = 0.10 - } else: contains(QT_CONFIG, gstreamer-1.0) { - GST_VERSION = 1.0 - } - } - cache(GST_VERSION, set) - !isEmpty(GST_VERSION):qtCompileTest(gstreamer) { - qtCompileTest(gstreamer_photography) - qtCompileTest(gstreamer_encodingprofiles) - qtCompileTest(gstreamer_appsrc) - qtCompileTest(linux_v4l) - } - - qtCompileTest(resourcepolicy) - contains(QT_CONFIG, opengles2):qtCompileTest(gpu_vivante) -} - load(qt_parts) diff --git a/src/gsttools/gsttools.pro b/src/gsttools/gsttools.pro index 216189d9a..3f955c185 100644 --- a/src/gsttools/gsttools.pro +++ b/src/gsttools/gsttools.pro @@ -8,29 +8,16 @@ QT = core-private multimedia-private gui-private !static:DEFINES += QT_MAKEDLL DEFINES += GLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_26 -unix:!maemo*:contains(QT_CONFIG, alsa) { -DEFINES += HAVE_ALSA -LIBS_PRIVATE += \ - -lasound +qtConfig(alsa) { + DEFINES += HAVE_ALSA + QMAKE_USE += alsa } -CONFIG += link_pkgconfig +QMAKE_USE += gstreamer -PKGCONFIG += \ - gstreamer-$$GST_VERSION \ - gstreamer-base-$$GST_VERSION \ - gstreamer-audio-$$GST_VERSION \ - gstreamer-video-$$GST_VERSION \ - gstreamer-pbutils-$$GST_VERSION - -equals(GST_VERSION,"0.10") { - PKGCONFIG_PRIVATE += gstreamer-interfaces-0.10 - maemo*: PKGCONFIG_PRIVATE +=gstreamer-plugins-bad-0.10 -} - -config_resourcepolicy { +qtConfig(resourcepolicy) { DEFINES += HAVE_RESOURCE_POLICY - PKGCONFIG_PRIVATE += libresourceqt5 + QMAKE_USE += libresourceqt5 } # Header files must go inside source directory of a module @@ -44,7 +31,6 @@ PRIVATE_HEADERS += \ qgstreamermessage_p.h \ qgstutils_p.h \ qgstvideobuffer_p.h \ - qvideosurfacegstsink_p.h \ qgstreamerbufferprobe_p.h \ qgstreamervideorendererinterface_p.h \ qgstreameraudioinputselector_p.h \ @@ -82,10 +68,11 @@ qtHaveModule(widgets) { qgstreamervideowidget.cpp } -equals(GST_VERSION,"0.10") { +qtConfig(gstreamer_0_10) { PRIVATE_HEADERS += \ qgstbufferpoolinterface_p.h \ - gstvideoconnector_p.h \ + qvideosurfacegstsink_p.h \ + gstvideoconnector_p.h SOURCES += \ qgstbufferpoolinterface.cpp \ @@ -122,17 +109,14 @@ mir: { DEFINES += HAVE_MIR } -config_gstreamer_appsrc { - PKGCONFIG_PRIVATE += gstreamer-app-$$GST_VERSION +qtConfig(gstreamer_app) { + QMAKE_USE += gstreamer_app PRIVATE_HEADERS += qgstappsrc_p.h SOURCES += qgstappsrc.cpp - DEFINES += HAVE_GST_APPSRC - - LIBS_PRIVATE += -lgstapp-$$GST_VERSION } -config_linux_v4l: DEFINES += USE_V4L +qtConfig(linux_v4l): DEFINES += USE_V4L HEADERS += $$PRIVATE_HEADERS diff --git a/src/imports/audioengine/audioengine.pro b/src/imports/audioengine/audioengine.pro index c00a6ec6b..1d46dfa33 100644 --- a/src/imports/audioengine/audioengine.pro +++ b/src/imports/audioengine/audioengine.pro @@ -5,10 +5,7 @@ IMPORT_VERSION = 1.1 QT += quick qml multimedia-private -win32: LIBS += -lOpenAL32 -unix:!mac:!blackberry: LIBS += -lopenal -blackberry: LIBS += -lOpenAL -mac: LIBS += -framework OpenAL +QMAKE_USE += openal mac: DEFINES += HEADER_OPENAL_PREFIX INCLUDEPATH += ../../multimedia/audio diff --git a/src/imports/imports.pro b/src/imports/imports.pro index d24bba59f..fcd9e3466 100644 --- a/src/imports/imports.pro +++ b/src/imports/imports.pro @@ -1,5 +1,6 @@ TEMPLATE = subdirs +QT_FOR_CONFIG += multimedia-private SUBDIRS += multimedia -config_openal: SUBDIRS += audioengine +qtConfig(openal): SUBDIRS += audioengine diff --git a/src/multimedia/audio/audio.pri b/src/multimedia/audio/audio.pri index 4706fd23e..d6d6f9c54 100644 --- a/src/multimedia/audio/audio.pri +++ b/src/multimedia/audio/audio.pri @@ -40,20 +40,13 @@ SOURCES += \ audio/qaudiodecoder.cpp \ audio/qaudiohelpers.cpp -unix:!mac { - config_pulseaudio { - CONFIG += link_pkgconfig - PKGCONFIG_PRIVATE += libpulse +qtConfig(pulseaudio) { + QMAKE_USE += pulseaudio - DEFINES += QT_MULTIMEDIA_PULSEAUDIO - PRIVATE_HEADERS += audio/qsoundeffect_pulse_p.h - SOURCES += audio/qsoundeffect_pulse_p.cpp - !maemo*:DEFINES += QTM_PULSEAUDIO_DEFAULTBUFFER - } else { - DEFINES += QT_MULTIMEDIA_QAUDIO - PRIVATE_HEADERS += audio/qsoundeffect_qaudio_p.h - SOURCES += audio/qsoundeffect_qaudio_p.cpp - } + DEFINES += QT_MULTIMEDIA_PULSEAUDIO + PRIVATE_HEADERS += audio/qsoundeffect_pulse_p.h + SOURCES += audio/qsoundeffect_pulse_p.cpp + !maemo*:DEFINES += QTM_PULSEAUDIO_DEFAULTBUFFER } else { DEFINES += QT_MULTIMEDIA_QAUDIO PRIVATE_HEADERS += audio/qsoundeffect_qaudio_p.h diff --git a/src/multimedia/configure.json b/src/multimedia/configure.json new file mode 100644 index 000000000..19812d19b --- /dev/null +++ b/src/multimedia/configure.json @@ -0,0 +1,314 @@ +{ + "module": "multimedia", + "depends": [ + "gui" + ], + "testDir": "../../config.tests", + + "commandline": { + "options": { + "alsa": "boolean", + "gstreamer": { "type": "optionalString", "values": [ "no", "yes", "0.10", "1.0" ] }, + "pulseaudio": "boolean", + "wmf-backend": "boolean" + } + }, + + "libraries": { + "alsa": { + "label": "ALSA", + "test": "alsa", + "sources": [ + "-lasound" + ] + }, + "avfoundation": { + "label": "AVFoundation", + "test": "avfoundation", + "sources": [ + { "libs": "-framework AVFoundation -framework Foundation" } + ] + }, + "directshow": { + "label": "DirectShow", + "test": "directshow", + "sources": [ + { "libs": "-lstrmiids -ldmoguids -luuid -lmsdmo -lole32 -loleaut32" } + ] + }, + "gstreamer_0_10": { + "label": "GStreamer 0.10", + "export": "gstreamer", + "test": "gstreamer", + "sources": [ + { "type": "pkgConfig", + "args": "gstreamer-0.10 gstreamer-base-0.10 gstreamer-audio-0.10 gstreamer-video-0.10 gstreamer-pbutils-0.10 gstreamer-interfaces-0.10" } + ] + }, + "gstreamer_1_0": { + "label": "GStreamer 1.0", + "export": "gstreamer", + "test": "gstreamer", + "sources": [ + { "type": "pkgConfig", + "args": "gstreamer-1.0 gstreamer-base-1.0 gstreamer-audio-1.0 gstreamer-video-1.0 gstreamer-pbutils-1.0" } + ] + }, + "gstreamer_app_0_10": { + "label": "GStreamer App 0.10", + "export": "gstreamer_app", + "test": "gstreamer_appsrc", + "use": "gstreamer_0_10", + "sources": [ + { "type": "pkgConfig", "args": "gstreamer-app-0.10" } + ] + }, + "gstreamer_app_1_0": { + "label": "GStreamer App 1.0", + "export": "gstreamer_app", + "test": "gstreamer_appsrc", + "use": "gstreamer_1_0", + "sources": [ + { "type": "pkgConfig", "args": "gstreamer-app-1.0" } + ] + }, + "gstreamer_photography_0_10": { + "label": "GStreamer Photography 0.10", + "export": "gstreamer_photography", + "test": "gstreamer_photography", + "use": "gstreamer_0_10", + "sources": [ + { "libs": "-lgstphotography-0.10" } + ] + }, + "gstreamer_photography_1_0": { + "label": "GStreamer Photography 1.0", + "export": "gstreamer_photography", + "test": "gstreamer_photography", + "use": "gstreamer_1_0", + "sources": [ + { "libs": "-lgstphotography-1.0" } + ] + }, + "libresourceqt5": { + "label": "libresourceqt5", + "test": "resourcepolicy", + "sources": [ + { "type": "pkgConfig", "args": "libresourceqt5" } + ] + }, + "mmrenderer": { + "label": "MMRenderer", + "test": "mmrenderer", + "sources": [ + { "libs": "-lmmrndclient -lstrm" } + ] + }, + "openal": { + "label": "OpenAL", + "test": "openal", + "sources": [ + { "type": "pkgConfig", "args": "openal" }, + { "libs": "-lOpenAL32", "condition": "config.win32" }, + { "libs": "-framework OpenAL", "condition": "config.darwin" }, + { "libs": "-lopenal", "condition": "config.unix && !config.darwin" } + ] + }, + "pulseaudio": { + "label": "PulseAudio >= 0.9.10", + "test": "pulseaudio", + "sources": [ + { "type": "pkgConfig", "args": "libpulse >= 0.9.10 libpulse-mainloop-glib" } + ] + }, + "wmf": { + "label": "WMF", + "test": "wmf", + "sources": [ + { "libs": "-lstrmiids -ldmoguids -luuid -lmsdmo -lole32 -loleaut32 -lMf -lMfuuid -lMfplat -lPropsys" } + ] + } + }, + + "tests": { + "evr": { + "label": "evr.h", + "type": "compile", + "test": "evr" + }, + "gstreamer_encodingprofiles_1_0": { + "label": "GStreamer encoding-profile.h", + "type": "compile", + "use": "gstreamer_1_0", + "test": "gstreamer_encodingprofiles" + }, + "gstreamer_encodingprofiles_0_10": { + "label": "GStreamer encoding-profile.h", + "type": "compile", + "use": "gstreamer_0_10", + "test": "gstreamer_encodingprofiles" + }, + "gpu_vivante": { + "label": "Vivante GPU", + "type": "compile", + "test": "gpu_vivante" + }, + "linux_v4l": { + "label": "Video for Linux", + "type": "compile", + "test": "linux_v4l" + }, + "wasapi": { + "label": "Windows Audio Services", + "type": "compile", + "test": "wasapi" + }, + "wmsdk": { + "label": "wmsdk.h", + "type": "compile", + "test": "wmsdk" + }, + "wshellitem": { + "label": "WShellItem", + "type": "compile", + "test": "wshellitem" + } + }, + + "features": { + "alsa": { + "label": "ALSA", + "condition": "config.unix && libs.alsa", + "output": [ "feature", "privateFeature" ] + }, + "avfoundation": { + "label": "AVFoundation", + "emitIf": "config.darwin", + "condition": "libs.avfoundation", + "output": [ "feature", "privateFeature" ] + }, + "directshow": { + "label": "DirectShow", + "condition": "config.win32 && libs.directshow", + "output": [ "feature", "privateFeature" ] + }, + "evr": { + "label": "evr.h", + "condition": "config.win32 && tests.evr", + "output": [ "feature", "privateFeature" ] + }, + "gstreamer_0_10": { + "label": "GStreamer 0.10", + "disable": "input.gstreamer == '1.0' || input.gstreamer == 'no'", + "enable": "input.gstreamer == '0.10'", + "condition": "!features.gstreamer_1_0 && libs.gstreamer_0_10", + "output": [ "privateFeature" ] + }, + "gstreamer_1_0": { + "label": "GStreamer 1.0", + "disable": "input.gstreamer == '0.10' || input.gstreamer == 'no'", + "enable": "input.gstreamer == '1.0'", + "condition": "libs.gstreamer_1_0", + "output": [ "privateFeature" ] + }, + "gstreamer": { + "condition": "features.gstreamer_1_0 || features.gstreamer_0_10", + "output": [ "privateFeature" ] + }, + "gstreamer_app": { + "label": "GStreamer App", + "condition": "(features.gstreamer_1_0 && libs.gstreamer_app_1_0) + || (features.gstreamer_0_10 && libs.gstreamer_app_0_10)", + "output": [ "privateFeature" ] + }, + "gstreamer_encodingprofiles": { + "label": "GStreamer encoding-profile.h", + "condition": "(features.gstreamer_1_0 && tests.gstreamer_encodingprofiles_1_0) + || (features.gstreamer_0_10 && tests.gstreamer_encodingprofiles_0_10)", + "output": [ "privateFeature" ] + }, + "gstreamer_photography": { + "label": "GStreamer Photography", + "condition": "(features.gstreamer_1_0 && libs.gstreamer_photography_1_0) + || (features.gstreamer_0_10 && libs.gstreamer_photography_0_10)", + "output": [ "privateFeature" ] + }, + "gpu_vivante": { + "label": "Vivante GPU", + "condition": "features.opengles2 && tests.gpu_vivante", + "output": [ "privateFeature" ] + }, + "resourcepolicy": { + "label": "Resource Policy (libresourceqt5)", + "condition": "libs.libresourceqt5", + "output": [ "privateFeature" ] + }, + "linux_v4l": { + "label": "Video for Linux", + "condition": "config.unix && tests.linux_v4l", + "output": [ "privateFeature" ] + }, + "mmrenderer": { + "label": "MMRenderer", + "emitIf": "config.qnx", + "condition": "libs.mmrenderer", + "output": [ "feature", "privateFeature" ] + }, + "openal": { + "label": "OpenAL", + "condition": "libs.openal", + "output": [ "feature", "privateFeature" ] + }, + "pulseaudio": { + "label": "PulseAudio", + "autoDetect": "config.unix", + "condition": "libs.pulseaudio", + "output": [ "feature", "privateFeature" ] + }, + "wasapi": { + "label": "Windows Audio Services", + "autoDetect": "false", + "condition": "config.win32 && tests.wasapi", + "output": [ "privateFeature" ] + }, + "wmsdk": { + "label": "wmsdk.h", + "condition": "config.win32 && tests.wmsdk", + "output": [ "feature", "privateFeature" ] + }, + "wshellitem": { + "label": "WShellItem", + "condition": "config.win32 && features.directshow && tests.wshellitem", + "output": [ "feature", "privateFeature" ] + }, + "wmf-backend": { + "label": "Windows Media Foundation backend for Qt Multimedia", + "emitIf": "config.win32", + "autoDetect": false, + "condition": "libraries.wmf", + "output": [ "privateFeature" ] + } + }, + + "report": [ + ], + + "summary": [ + { + "section": "Qt Multimedia", + "entries": [ + "alsa", + "gstreamer_1_0", + "gstreamer_0_10", + "linux_v4l", + "openal", + "pulseaudio", + "resourcepolicy", + "mmrenderer", + "avfoundation", + "directshow", + "wmf-backend" + ] + } + ] +} diff --git a/src/plugins/avfoundation/camera/camera.pro b/src/plugins/avfoundation/camera/camera.pro index a17ff5a73..ab70c25c3 100644 --- a/src/plugins/avfoundation/camera/camera.pro +++ b/src/plugins/avfoundation/camera/camera.pro @@ -8,12 +8,13 @@ QT += multimedia-private network LIBS += -framework AudioToolbox \ -framework CoreAudio \ -framework QuartzCore \ - -framework AVFoundation \ -framework CoreMedia osx:LIBS += -framework AppKit \ -framework AudioUnit ios:LIBS += -framework CoreVideo +QMAKE_USE += avfoundation + OTHER_FILES += avfcamera.json DEFINES += QMEDIA_AVF_CAMERA diff --git a/src/plugins/avfoundation/mediaplayer/mediaplayer.pro b/src/plugins/avfoundation/mediaplayer/mediaplayer.pro index 29e231066..f9a086b33 100644 --- a/src/plugins/avfoundation/mediaplayer/mediaplayer.pro +++ b/src/plugins/avfoundation/mediaplayer/mediaplayer.pro @@ -6,7 +6,9 @@ CONFIG += no_keywords QT += multimedia-private network -LIBS += -framework AVFoundation -framework CoreMedia -framework CoreVideo -framework QuartzCore +LIBS += -framework CoreMedia -framework CoreVideo -framework QuartzCore + +QMAKE_USE += avfoundation DEFINES += QMEDIA_AVF_MEDIAPLAYER diff --git a/src/plugins/directshow/camera/camera.pri b/src/plugins/directshow/camera/camera.pri index 6c67a8fe2..fb7fbd3f5 100644 --- a/src/plugins/directshow/camera/camera.pri +++ b/src/plugins/directshow/camera/camera.pri @@ -28,4 +28,4 @@ SOURCES += \ $$PWD/dscameraimageprocessingcontrol.cpp *-msvc*:INCLUDEPATH += $$(DXSDK_DIR)/include -LIBS += -lstrmiids -ldmoguids -luuid -lmsdmo -lole32 -loleaut32 +QMAKE_USE += directshow diff --git a/src/plugins/directshow/directshow.pro b/src/plugins/directshow/directshow.pro index 918a14210..5eb4fbc96 100644 --- a/src/plugins/directshow/directshow.pro +++ b/src/plugins/directshow/directshow.pro @@ -1,19 +1,19 @@ TARGET = dsengine +QT += multimedia-private + win32:!qtHaveModule(opengl)|qtConfig(dynamicgl) { LIBS_PRIVATE += -lgdi32 -luser32 } -QT += multimedia-private - HEADERS += dsserviceplugin.h SOURCES += dsserviceplugin.cpp -!config_wmsdk: DEFINES += QT_NO_WMSDK +!qtConfig(wmsdk): DEFINES += QT_NO_WMSDK mingw: DEFINES += NO_DSHOW_STRSAFE include(helpers/helpers.pri) -!config_wmf|!contains(QT_CONFIG, wmf-backend): include(player/player.pri) +!qtConfig(wmf-backend): include(player/player.pri) include(camera/camera.pri) OTHER_FILES += \ diff --git a/src/plugins/directshow/player/player.pri b/src/plugins/directshow/player/player.pri index 8b4bb70b7..7391ec7f0 100644 --- a/src/plugins/directshow/player/player.pri +++ b/src/plugins/directshow/player/player.pri @@ -1,7 +1,7 @@ INCLUDEPATH += $$PWD -LIBS += -lstrmiids -ldmoguids -luuid -lole32 -loleaut32 -lmsdmo -lgdi32 - +QMAKE_USE += directshow +LIBS += -lgdi32 qtHaveModule(widgets): QT += widgets @@ -29,7 +29,7 @@ SOURCES += \ $$PWD/directshowmetadatacontrol.cpp \ $$PWD/vmr9videowindowcontrol.cpp -config_evr { +qtConfig(evr) { DEFINES += HAVE_EVR include($$PWD/../../common/evr.pri) @@ -41,7 +41,7 @@ config_evr { $$PWD/directshowevrvideowindowcontrol.cpp } -config_wshellitem { +qtConfig(wshellitem) { QT += core-private } else { DEFINES += QT_NO_SHELLITEM diff --git a/src/plugins/gstreamer/camerabin/camerabin.pro b/src/plugins/gstreamer/camerabin/camerabin.pro index 214489f3e..3a5fcc02f 100644 --- a/src/plugins/gstreamer/camerabin/camerabin.pro +++ b/src/plugins/gstreamer/camerabin/camerabin.pro @@ -62,7 +62,7 @@ maemo6 { CONFIG += have_gst_photography } -config_gstreamer_photography { +qtConfig(gstreamer_photography) { DEFINES += HAVE_GST_PHOTOGRAPHY HEADERS += \ @@ -77,15 +77,15 @@ config_gstreamer_photography { $$PWD/camerabinfocus.cpp \ $$PWD/camerabinlocks.cpp - LIBS += -lgstphotography-$$GST_VERSION + QMAKE_USE += gstreamer_photography DEFINES += GST_USE_UNSTABLE_API #prevents warnings because of unstable photography API } -config_gstreamer_encodingprofiles { +qtConfig(gstreamer_encodingprofiles) { DEFINES += HAVE_GST_ENCODING_PROFILES } -config_linux_v4l: { +qtConfig(linux_v4l) { DEFINES += USE_V4L HEADERS += \ diff --git a/src/plugins/gstreamer/common.pri b/src/plugins/gstreamer/common.pri index babdb7cfb..7faf9b111 100644 --- a/src/plugins/gstreamer/common.pri +++ b/src/plugins/gstreamer/common.pri @@ -1,4 +1,3 @@ - QT += core-private multimedia-private network qtHaveModule(widgets) { @@ -8,30 +7,19 @@ qtHaveModule(widgets) { LIBS += -lqgsttools_p -CONFIG += link_pkgconfig - -PKGCONFIG += \ - gstreamer-$$GST_VERSION \ - gstreamer-base-$$GST_VERSION \ - gstreamer-audio-$$GST_VERSION \ - gstreamer-video-$$GST_VERSION \ - gstreamer-pbutils-$$GST_VERSION - -maemo*:PKGCONFIG +=gstreamer-plugins-bad-$$GST_VERSION +QMAKE_USE += gstreamer mir: { DEFINES += HAVE_MIR } - -config_resourcepolicy { +qtConfig(resourcepolicy) { + QMAKE_USE += libresourceqt5 DEFINES += HAVE_RESOURCE_POLICY - PKGCONFIG += libresourceqt5 } -config_gstreamer_appsrc { - PKGCONFIG += gstreamer-app-$$GST_VERSION +qtConfig(gstreamer_app) { + QMAKE_USE += gstreamer_app DEFINES += HAVE_GST_APPSRC - LIBS += -lgstapp-$$GST_VERSION } diff --git a/src/plugins/gstreamer/mediacapture/mediacapture.pro b/src/plugins/gstreamer/mediacapture/mediacapture.pro index db5210d4d..17248a495 100644 --- a/src/plugins/gstreamer/mediacapture/mediacapture.pro +++ b/src/plugins/gstreamer/mediacapture/mediacapture.pro @@ -31,7 +31,7 @@ SOURCES += $$PWD/qgstreamercaptureservice.cpp \ # Camera usage with gstreamer needs to have #CONFIG += use_gstreamer_camera -use_gstreamer_camera:config_linux_v4l { +use_gstreamer_camera:qtConfig(linux_v4l) { DEFINES += USE_GSTREAMER_CAMERA OTHER_FILES += \ diff --git a/src/plugins/plugins.pro b/src/plugins/plugins.pro index f113f68b3..b0c5101b6 100644 --- a/src/plugins/plugins.pro +++ b/src/plugins/plugins.pro @@ -5,6 +5,7 @@ ###################################################################### TEMPLATE = subdirs +QT_FOR_CONFIG += multimedia-private SUBDIRS += m3u @@ -17,7 +18,7 @@ android { } qnx { - config_mmrenderer: SUBDIRS += qnx + qtConfig(mmrenderer): SUBDIRS += qnx SUBDIRS += audiocapture } @@ -26,44 +27,44 @@ qnx:!blackberry { } win32 { - config_wasapi: SUBDIRS += wasapi + qtConfig(wasapi): SUBDIRS += wasapi } win32:!winrt { SUBDIRS += audiocapture \ windowsaudio - config_directshow: SUBDIRS += directshow - config_wmf: SUBDIRS += wmf + qtConfig(directshow): SUBDIRS += directshow + qtConfig(wmf-backend): SUBDIRS += wmf } + winrt { SUBDIRS += winrt } unix:!mac:!android { - config_gstreamer { + qtConfig(gstreamer) { SUBDIRS += gstreamer } else { SUBDIRS += audiocapture } - config_pulseaudio: SUBDIRS += pulseaudio - config_alsa: SUBDIRS += alsa + qtConfig(pulseaudio): SUBDIRS += pulseaudio + qtConfig(alsa): SUBDIRS += alsa # v4l is turned off because it is not supported in Qt 5 - # config_linux_v4l { + # qtConfig(linux_v4l) { # !maemo*:SUBDIRS += v4l # } } darwin:!watchos { SUBDIRS += audiocapture coreaudio - - config_avfoundation: SUBDIRS += avfoundation + qtConfig(avfoundation): SUBDIRS += avfoundation } -config_resourcepolicy { +qtConfig(resourcepolicy) { SUBDIRS += resourcepolicy } diff --git a/src/plugins/pulseaudio/pulseaudio.pro b/src/plugins/pulseaudio/pulseaudio.pro index 7f4d3de22..c6339e9e8 100644 --- a/src/plugins/pulseaudio/pulseaudio.pro +++ b/src/plugins/pulseaudio/pulseaudio.pro @@ -1,8 +1,7 @@ TARGET = qtmedia_pulse QT += multimedia-private -CONFIG += link_pkgconfig -PKGCONFIG += libpulse +QMAKE_USE += pulseaudio HEADERS += qpulseaudioplugin.h \ qaudiodeviceinfo_pulse.h \ diff --git a/src/plugins/qnx/mediaplayer/mediaplayer.pri b/src/plugins/qnx/mediaplayer/mediaplayer.pri index 9dedab0fd..9d74dd481 100644 --- a/src/plugins/qnx/mediaplayer/mediaplayer.pri +++ b/src/plugins/qnx/mediaplayer/mediaplayer.pri @@ -18,7 +18,7 @@ SOURCES += \ $$PWD/mmrendererutil.cpp \ $$PWD/mmrenderervideowindowcontrol.cpp -LIBS += -lmmrndclient -lstrm +QMAKE_USE += mmrenderer blackberry { HEADERS += $$PWD/bpsmediaplayercontrol.h diff --git a/src/plugins/resourcepolicy/resourcepolicy.pro b/src/plugins/resourcepolicy/resourcepolicy.pro index 91a946665..89e75be1b 100644 --- a/src/plugins/resourcepolicy/resourcepolicy.pro +++ b/src/plugins/resourcepolicy/resourcepolicy.pro @@ -1,8 +1,8 @@ TARGET = resourceqt QT += multimedia-private -CONFIG += link_pkgconfig -PKGCONFIG += libresourceqt5 + +QMAKE_USE += libresourceqt5 INCLUDEPATH += $$PWD \ $${SOURCE_DIR}/src/multimedia diff --git a/src/plugins/videonode/videonode.pro b/src/plugins/videonode/videonode.pro index 5fbcaecd4..ab7295406 100644 --- a/src/plugins/videonode/videonode.pro +++ b/src/plugins/videonode/videonode.pro @@ -1,7 +1,7 @@ TEMPLATE = subdirs -QT_FOR_CONFIG += gui-private +QT_FOR_CONFIG += gui-private multimedia-private -config_gpu_vivante { +qtConfig(gpu_vivante) { SUBDIRS += imx6 } diff --git a/src/plugins/wmf/decoder/decoder.pri b/src/plugins/wmf/decoder/decoder.pri index 992e710fe..7637ac848 100644 --- a/src/plugins/wmf/decoder/decoder.pri +++ b/src/plugins/wmf/decoder/decoder.pri @@ -1,7 +1,7 @@ INCLUDEPATH += $$PWD -LIBS += -lstrmiids -ldmoguids -luuid -lmsdmo -lole32 -loleaut32 -lMf -lMfuuid -lMfplat \ - -lPropsys -lmfreadwrite -lwmcodecdspuuid +LIBS += -lmfreadwrite -lwmcodecdspuuid +QMAKE_USE += wmf HEADERS += \ $$PWD/mfdecoderservice.h \ @@ -11,4 +11,4 @@ HEADERS += \ SOURCES += \ $$PWD/mfdecoderservice.cpp \ $$PWD/mfdecodersourcereader.cpp \ - $$PWD/mfaudiodecodercontrol.cpp \ No newline at end of file + $$PWD/mfaudiodecodercontrol.cpp diff --git a/src/plugins/wmf/player/player.pri b/src/plugins/wmf/player/player.pri index a10e2df60..38ccb82a6 100644 --- a/src/plugins/wmf/player/player.pri +++ b/src/plugins/wmf/player/player.pri @@ -1,6 +1,7 @@ INCLUDEPATH += $$PWD -LIBS += -lstrmiids -ldmoguids -luuid -lmsdmo -lgdi32 -luser32 -lole32 -loleaut32 -lMf -lMfuuid -lMfplat -lPropsys +LIBS += -lgdi32 -luser32 +QMAKE_USE += wmf DEFINES += QMEDIA_MEDIAFOUNDATION_PLAYER diff --git a/src/src.pro b/src/src.pro index 17f3266c5..97a053379 100644 --- a/src/src.pro +++ b/src/src.pro @@ -2,6 +2,9 @@ TEMPLATE = subdirs SUBDIRS += multimedia +include($$OUT_PWD/multimedia/qtmultimedia-config.pri) +QT_FOR_CONFIG += multimedia-private + # Everything else depends on multimedia src_qgsttools.subdir = gsttools src_qgsttools.depends = multimedia @@ -39,7 +42,7 @@ qtHaveModule(widgets) { src_qgsttools.depends += src_qtmmwidgets } -config_gstreamer { +qtConfig(gstreamer) { SUBDIRS += src_qgsttools # If gstreamer is present, then plugins should depend on it diff --git a/tests/auto/integration/qsoundeffect/qsoundeffect.pro b/tests/auto/integration/qsoundeffect/qsoundeffect.pro index c4d965121..8ec2e458a 100644 --- a/tests/auto/integration/qsoundeffect/qsoundeffect.pro +++ b/tests/auto/integration/qsoundeffect/qsoundeffect.pro @@ -8,7 +8,7 @@ CONFIG += testcase SOURCES += tst_qsoundeffect.cpp unix:!mac { - !contains(QT_CONFIG, pulseaudio) { + !qtConfig(pulseaudio) { DEFINES += QT_MULTIMEDIA_QMEDIAPLAYER } } -- cgit v1.2.3