Wireshark mailing list archives

Re: How to disable QT_MULTIMEDIA_LIB during cmake


From: John Thacker <johnthacker () gmail com>
Date: Wed, 28 Apr 2021 08:00:31 -0400

In general some features can be disabled, see CMakeOptions.txt for a list,
but Qt Multimedia Lib cannot be disabled easily.

If you look at cmakeconfig.h.in:
<https://gitlab.com/wireshark/wireshark/-/blob/master/cmakeconfig.h.in#L320>

/* Define to the version of this package. */
#cmakedefine PACKAGE_VERSION

/* Define if we have QtMultimedia */
#define QT_MULTIMEDIA_LIB 1

/* Define if we have QtMacExtras */
#cmakedefine QT_MACEXTRAS_LIB 1

You will see that QT_MULTIMEDIA_LIB is always defined.

If you *both* change that line to

#cmakedefine QT_MULTIMEDIA_LIB 1

*and*

comment out Qt5Multimedia from CMakeLists.txt
<https://gitlab.com/wireshark/wireshark/-/blob/master/CMakeLists.txt#L1179>

and then rerun cmake (possibly after removing config.h and build.ninja or
your Makefile from the build directory),
then you can build without QT_MULTIMEDIA_LIB being set. On the current
master, when doing so, I get the following build error:

In file included from
ui/qt/qtui_autogen/EWIEGA46WW/../../../../../wireshark/ui/qt/rtp_stream_dialog.h:16,
                 from
ui/qt/qtui_autogen/EWIEGA46WW/../../../../../wireshark/ui/qt/main_window.h:78,
                 from ui/qt/qtui_autogen/EWIEGA46WW/moc_main_window.cpp:10,
                 from ui/qt/qtui_autogen/mocs_compilation.cpp:65:
ui/qt/qtui_autogen/EWIEGA46WW/../../../../../wireshark/ui/qt/rtp_player_dialog.h:27:10:
fatal error: QAudioDeviceInfo: No such file or directory
   27 | #include <QAudioDeviceInfo>
      |          ^~~~~~~~~~~~~~~~~~

Because QAudioDeviceInfo is part of Qt Multimedia but not properly
protected by that #ifdef, which is exactly what you're trying to test.

John Thacker


On Mon, Apr 26, 2021, 5:03 AM Jirka Novak <j.novak () netsystem cz> wrote:

Hi,

  I would like to test whether #ifdef QT_MULTIMEDIA_LIB are correct in
source code so I need to disable it during cmake detection. Is there
something like there was --nofeature in autoconfigure?

                                                Best regards,

                                                        Jirka
___________________________________________________________________________
Sent via:    Wireshark-dev mailing list <wireshark-dev () wireshark org>
Archives:    https://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://www.wireshark.org/mailman/options/wireshark-dev
             mailto:wireshark-dev-request () wireshark org
?subject=unsubscribe
___________________________________________________________________________
Sent via:    Wireshark-dev mailing list <wireshark-dev () wireshark org>
Archives:    https://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://www.wireshark.org/mailman/options/wireshark-dev
             mailto:wireshark-dev-request () wireshark org?subject=unsubscribe

Current thread: