Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make QML UI compatible with Qt 6 #4649

Merged
merged 4 commits into from
Jan 31, 2022
Merged

Make QML UI compatible with Qt 6 #4649

merged 4 commits into from
Jan 31, 2022

Conversation

Holzhaus
Copy link
Member

Please see the individual commit messages for details.

Note: This makes QML Qt6-only because the qml type registration changed considerably since Qt 5.12.

@Holzhaus Holzhaus added the ui label Jan 27, 2022
@Holzhaus Holzhaus added this to the 2.4.0 milestone Jan 27, 2022
@Holzhaus Holzhaus force-pushed the qml-module branch 2 times, most recently from 9dda616 to 158d60a Compare January 28, 2022 21:04
Copy link
Member

@ywwg ywwg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it's too bad we lose QML on qt5, but if they are that incompatible then I agree it's the right thing to do. One small change requested.

Copy link
Contributor

@uklotzde uklotzde left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some minor suggestions for improvements, mostly C++ stuff.

src/qml/qmlconfigproxy.cpp Outdated Show resolved Hide resolved
Q_UNUSED(pQmlEngine);

// The instance has to exist before it is used. We cannot replace it.
Q_ASSERT(s_pInstance);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why did you use Q_ASSERT instead of the custom DEBUG_ASSERT?

The definition of this function should be moved from the header into the .cpp file.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why did you use Q_ASSERT instead of the custom DEBUG_ASSERT?

It's the code taken from last example in https://doc.qt.io/qt-6/qqmlengine.html#QML_SINGLETON .

The definition of this function should be moved from the header into the .cpp file.

I'd like to deduplicate the code anyway. I tried with a template class and it compiled, but didn't work properly. Do you have an idea?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No idea. I didn't need singletons for a long time.

Templates should work for singletons, because each instantiated template becomes a distinct type. Similar to monomorphization in Rust.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added a comment regarding the source of this code, and replaced Q_ASSERT with DEBUG_ASSERT.

src/qml/qmldlgpreferencesproxy.h Outdated Show resolved Hide resolved
src/qml/qmleffectsmanagerproxy.h Outdated Show resolved Hide resolved
src/qml/qmllibraryproxy.h Outdated Show resolved Hide resolved
@uklotzde
Copy link
Contributor

What am I missing?

[177/908] Running moc --collect-json for target mixxx-lib
FAILED: meta_types/qt6mixxx-lib_debug_metatypes.json.gen meta_types/qt6mixxx-lib_debug_metatypes.json /home/uk/volumes/Build/cpp/mixxx/build.qt6/meta_types/qt6mixxx-lib_debug_metatypes.json.gen /home/uk/volumes/Build/cpp/mixxx/build.qt6/meta_types/qt6mixxx-lib_debug_metatypes.json 
cd /home/uk/volumes/Build/cpp/mixxx/build.qt6 && /usr/lib64/qt6/libexec/moc -o /home/uk/volumes/Build/cpp/mixxx/build.qt6/meta_types/qt6mixxx-lib_debug_metatypes.json.gen --collect-json @/home/uk/volumes/Build/cpp/mixxx/build.qt6/meta_types/mixxx-lib_json_file_list.txt && /usr/bin/cmake -E copy_if_different /home/uk/volumes/Build/cpp/mixxx/build.qt6/meta_types/qt6mixxx-lib_debug_metatypes.json.gen /home/uk/volumes/Build/cpp/mixxx/build.qt6/meta_types/qt6mixxx-lib_debug_metatypes.json
Error opening /home/uk/volumes/Build/cpp/mixxx/build.qt6/mixxx-lib_autogen/include/../DE3FZXEUDL/moc_libraryfeature.cpp.json for reading
[178/908] Linking CXX static library qml/Mixxx/libmixxx-libplugin.a
ninja: build stopped: subcommand failed.

@Holzhaus
Copy link
Member Author

What am I missing?

[177/908] Running moc --collect-json for target mixxx-lib
FAILED: meta_types/qt6mixxx-lib_debug_metatypes.json.gen meta_types/qt6mixxx-lib_debug_metatypes.json /home/uk/volumes/Build/cpp/mixxx/build.qt6/meta_types/qt6mixxx-lib_debug_metatypes.json.gen /home/uk/volumes/Build/cpp/mixxx/build.qt6/meta_types/qt6mixxx-lib_debug_metatypes.json 
cd /home/uk/volumes/Build/cpp/mixxx/build.qt6 && /usr/lib64/qt6/libexec/moc -o /home/uk/volumes/Build/cpp/mixxx/build.qt6/meta_types/qt6mixxx-lib_debug_metatypes.json.gen --collect-json @/home/uk/volumes/Build/cpp/mixxx/build.qt6/meta_types/mixxx-lib_json_file_list.txt && /usr/bin/cmake -E copy_if_different /home/uk/volumes/Build/cpp/mixxx/build.qt6/meta_types/qt6mixxx-lib_debug_metatypes.json.gen /home/uk/volumes/Build/cpp/mixxx/build.qt6/meta_types/qt6mixxx-lib_debug_metatypes.json
Error opening /home/uk/volumes/Build/cpp/mixxx/build.qt6/mixxx-lib_autogen/include/../DE3FZXEUDL/moc_libraryfeature.cpp.json for reading
[178/908] Linking CXX static library qml/Mixxx/libmixxx-libplugin.a
ninja: build stopped: subcommand failed.

Hmm, I'll just checked if I can build with Ninja on my machine, and for me there are 878 tasks, not 908?!

I used these commands:

$ mkdir build-qt6 && cmake -G Ninja -DQT6=ON -DWARNINGS_FATAL=ON -DDEBUG_ASSERTIONS_FATAL=ON .. && cmake --build . && ctest -j $(nproc)

What commands did you use? What Qt version (I'm using Qt 6.2.2)?

@uklotzde
Copy link
Contributor

uklotzde commented Jan 29, 2022

What am I missing?

[177/908] Running moc --collect-json for target mixxx-lib
FAILED: meta_types/qt6mixxx-lib_debug_metatypes.json.gen meta_types/qt6mixxx-lib_debug_metatypes.json /home/uk/volumes/Build/cpp/mixxx/build.qt6/meta_types/qt6mixxx-lib_debug_metatypes.json.gen /home/uk/volumes/Build/cpp/mixxx/build.qt6/meta_types/qt6mixxx-lib_debug_metatypes.json 
cd /home/uk/volumes/Build/cpp/mixxx/build.qt6 && /usr/lib64/qt6/libexec/moc -o /home/uk/volumes/Build/cpp/mixxx/build.qt6/meta_types/qt6mixxx-lib_debug_metatypes.json.gen --collect-json @/home/uk/volumes/Build/cpp/mixxx/build.qt6/meta_types/mixxx-lib_json_file_list.txt && /usr/bin/cmake -E copy_if_different /home/uk/volumes/Build/cpp/mixxx/build.qt6/meta_types/qt6mixxx-lib_debug_metatypes.json.gen /home/uk/volumes/Build/cpp/mixxx/build.qt6/meta_types/qt6mixxx-lib_debug_metatypes.json
Error opening /home/uk/volumes/Build/cpp/mixxx/build.qt6/mixxx-lib_autogen/include/../DE3FZXEUDL/moc_libraryfeature.cpp.json for reading
[178/908] Linking CXX static library qml/Mixxx/libmixxx-libplugin.a
ninja: build stopped: subcommand failed.

Hmm, I'll just checked if I can build with Ninja on my machine, and for me there are 878 tasks, not 908?!

I used these commands:

$ mkdir build-qt6 && cmake -G Ninja -DQT6=ON -DWARNINGS_FATAL=ON -DDEBUG_ASSERTIONS_FATAL=ON .. && cmake --build . && ctest -j $(nproc)

What commands did you use? What Qt version (I'm using Qt 6.2.2)?

Qt 6.2.2. The number of tasks may vary due to some code (aoide, ...).

I am using an absolute path to reference the build directory! The code tree is rsynced to another volume and built there, while cmake is invoked from the current working directory. I am invoking cmake from the build directory, but with an absolute path. Could try to replace it with .. instead.

@uklotzde
Copy link
Contributor

Neither using .. nor GNU make worked, still the same issue:

[ 19%] Running moc --collect-json for target mixxx-lib
Error opening /home/uk/volumes/Build/cpp/mixxx/build.qt6/mixxx-lib_autogen/include/../DE3FZXEUDL/moc_libraryfeature.cpp.json for reading
gmake[2]: *** [CMakeFiles/mixxx-lib.dir/build.make:75: meta_types/qt6mixxx-lib_debug_metatypes.json.gen] Error 1
gmake[2]: *** Deleting file 'meta_types/qt6mixxx-lib_debug_metatypes.json.gen'
gmake[1]: *** [CMakeFiles/Makefile2:293: CMakeFiles/mixxx-lib.dir/all] Error 2
gmake: *** [Makefile:166: all] Error 2

@uklotzde
Copy link
Contributor

Building this branch directly works. I have to check what else did change in the mean time that my code doesn't build anymore.

@uklotzde
Copy link
Contributor

uklotzde commented Jan 30, 2022

@Holzhaus Qt6 Automoc fails for source files with equal names that are found in different namespaces/directories. Adding a directory prefix to include the _moc.cpp files doesn't work either. The only workaround is renaming the source files.

Some source files without any Qt macros need to be renamed even though automoc then outputs "No relevant classes found. No output generated."

I wonder why this worked for Qt 5 but now fails for Qt 6.

Conflict example: library/libraryfeature.h/.cpp and aoide/libraryfeature.h/.cpp.
False positive: aoide/json/track.h/.cpp

@Holzhaus
Copy link
Member Author

@uklotzde Is this issue related to your changes or is this an issue with this PR specifically? If so, which files do I need to rename?

@Holzhaus Holzhaus requested a review from uklotzde January 30, 2022 16:44
@uklotzde
Copy link
Contributor

Not related to this PR, fails for Qt 6 in general, that's why I mentioned it. My previous comments are therefore not relevant for this PR.

@daschuer
Copy link
Member

I have just finished my PPA with Qt 6.2.2 backports: https://launchpad.net/~daschuer/+archive/ubuntu/qt6-backports/+packages

It build with this branch, but unfortunately Mixxx stops with:

warning [Main] QQmlApplicationEngine failed to load component
warning [Main] file:///home/daniel/workspace/mixxxqt6/res/qml/main.qml:2:1: module "Mixxx" plugin "mixxx-libplugin" not found
critical [Main] Failed to load QML file "/home/daniel/workspace/mixxxqt6/res/qml/main.qml"

I have a /home/daniel/workspace/mixxxqt6/build/Debug/qml/Mixxx/libmixxx-libplugin.a but it is probably not found.
How can we enable running from the build dir?

@Holzhaus
Copy link
Member Author

I have a /home/daniel/workspace/mixxxqt6/build/Debug/qml/Mixxx/libmixxx-libplugin.a but it is probably not found.
How can we enable running from the build dir?

Works for me. I run it directly from the build dir. The plugin is linked here: https://github.com/mixxxdj/mixxx/pull/4649/files#diff-1e7de1ae2d059d21e1dd75d5812d5a34b0222cef273b7c3a2af62eb747f9d20aR2173

@daschuer
Copy link
Member

I can confirm that the link call for mixxx contains mixxx-libplugin.a But when I start Mixxx I still see the complaining line pasted above. Is there a registration or something missing?

@Holzhaus
Copy link
Member Author

Did you try with a completely clean build dir?

These are the commands I used:

$ mkdir build-qt6  // does not exist yet
$ cmake -G Ninja -DQT6=ON -DWARNINGS_FATAL=ON -DDEBUG_ASSERTIONS_FATAL=ON .. && cmake --build . && ctest -j $(nproc)
$ ./mixxx

@daschuer
Copy link
Member

I have applied the suggested command, but the result is exactly the same.

@Holzhaus
Copy link
Member Author

@uklotzde Did you try to run it on Fedora?

I have applied the suggested command, but the result is exactly the same.

As I said, it works on Arch. If it also works on Fedora, I suppose your qt6 packages might be broken or something?

@uklotzde
Copy link
Contributor

warning [Main] QQmlApplicationEngine failed to load component
warning [Main] file:///home/uk/volumes/Build/cpp/mixxx/res/qml/main.qml:35:17: Type Skin.Button unavailable
warning [Main] file:///home/uk/volumes/Build/cpp/mixxx/res/qml/Button.qml:1:1: module "Qt5Compat.GraphicalEffects" is not installed
critical [Main] Failed to load QML file "/home/uk/volumes/Build/cpp/mixxx/res/qml/main.qml"
Installed Packages
Name         : qt6-qt5compat
Version      : 6.2.2
Release      : 1.fc35
Architecture : x86_64
Size         : 499 k
Source       : qt6-qt5compat-6.2.2-1.fc35.src.rpm
Repository   : @System
From repo    : updates
Summary      : Qt6 - Qt 5 Compatibility Libraries
URL          : http://www.qt.io
License      : LGPLv3
Description  : Qt6 - Qt 5 Compatibility Libraries.

@Swiftb0y Is this the problem you mentioned with the Fedora packaging?

@daschuer
Copy link
Member

daschuer commented Jan 30, 2022

@Holzhaus is there a way to debug this?

The qml statement is

import Mixxx 0.1 as Mixxx

so the code already knows to look at "mixxx-libplugin". How does it know that?

@uklotzde
Copy link
Contributor

@daschuer I have started Mixxx directly from the build directory with ./mixxx and the resources are found as the log shows.

@daschuer
Copy link
Member

I can reproduce you log with
./mixxx --resourcePath res

my issue appears with

./mixxx --resourcePath ../../res

and just

./mixxx

all from my build directory.

@Swiftb0y
Copy link
Member

@Swiftb0y Is this the problem you mentioned with the Fedora packaging?

Yes. I worked around it by building the Qt module from source and the installing it to /usr/lib64 (instead of /usr/local/lib64).
Unfortunately there hasn't happened much in the bug. https://bugzilla.redhat.com/show_bug.cgi?id=2047369
Another possibility might be cloning from source and then patching the import directory using the QML2_IMPORT_PATH env variable.

# QTBUG-87221. We should figure out a better way to fix this.
# See: https://bugreports.qt.io/browse/QTBUG-87221
target_include_directories(mixxx-lib PRIVATE src/control src/qml)
target_link_libraries(mixxx-lib PRIVATE mixxx-libplugin)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Where does mixxx-libplugin come from? Interestingly it is linked directly to mixxx in my case and appears two times in the link command line:

qml/Mixxx/libmixxx-libplugin.a libmixxx-lib.a qml/Mixxx/libmixxx-libplugin.a

here the whole line

usr/bin/c++   -fdiagnostics-color=auto -g   CMakeFiles/mixxx.dir/src/main.cpp.o CMakeFiles/mixxx.dir/mixxx_autogen/PNK5WDWK6L/qrc_mixxx.cpp.o CMakeFiles/mixxx-lib_resources_1.dir/build/Debug/.rcc/qrc_qmake_Mixxx.cpp.o CMakeFiles/mixxx-lib_qmlcache.dir/build/Debug/.rcc/qmlcache/mixxx-lib_qmlcache_loader.cpp.o CMakeFiles/mixxx-lib_resources_2.dir/build/Debug/.rcc/qrc_mixxx-lib_raw_qml_0.cpp.o  -o mixxx  -Wl,-rpath,/usr/local/lib: libmixxx-lib.a libmixxx-gitinfostore.a qml/Mixxx/libmixxx-libplugin.a libmixxx-lib.a qml/Mixxx/libmixxx-libplugin.a /usr/lib/x86_64-linux-gnu/libchromaprint.so /usr/lib/x86_64-linux-gnu/libsqlite3.so lib/libdjinterop-install/lib/libdjinterop.a /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/x86_64-linux-gnu/libebur128.so libfidlib.a lib/keyfinder-install/lib/libkeyfinder.a /usr/lib/x86_64-linux-gnu/libfftw3.so /usr/lib/x86_64-linux-gnu/libFLAC.so libFpClassify.a /usr/lib/x86_64-linux-gnu/libmp3lame.so libKaitai.a libMP3GuessEnc.a /usr/lib/x86_64-linux-gnu/libvorbisfile.so /usr/local/lib/libportaudio.so libPortAudioRingBuffer.a /usr/lib/x86_64-linux-gnu/libportmidi.so /usr/lib/x86_64-linux-gnu/libporttime.so /usr/lib/x86_64-linux-gnu/libprotobuf-lite.so /usr/lib/x86_64-linux-gnu/libQt6Concurrent.so.6.2.2 /usr/lib/x86_64-linux-gnu/libQt6PrintSupport.so.6.2.2 /usr/lib/x86_64-linux-gnu/libQt6QuickWidgets.so.6.2.2 /usr/lib/x86_64-linux-gnu/libQt6Quick.so.6.2.2 /usr/lib/x86_64-linux-gnu/libQt6QmlModels.so.6.2.2 /usr/lib/x86_64-linux-gnu/libQt6OpenGL.so.6.2.2 /usr/lib/x86_64-linux-gnu/libQt6Sql.so.6.2.2 /usr/lib/x86_64-linux-gnu/libQt6Test.so.6.2.2 /usr/lib/x86_64-linux-gnu/libQt6Xml.so.6.2.2 /usr/lib/x86_64-linux-gnu/libQt6SvgWidgets.so.6.2.2 /usr/lib/x86_64-linux-gnu/libQt6Svg.so.6.2.2 /usr/lib/x86_64-linux-gnu/libQt6Widgets.so.6.2.2 /usr/lib/x86_64-linux-gnu/libQt6Gui.so.6.2.2 /usr/lib/x86_64-linux-gnu/libGLX.so /usr/lib/x86_64-linux-gnu/libOpenGL.so /usr/lib/x86_64-linux-gnu/libQt6Core5Compat.so.6.2.2 qml/Mixxx/Controls/libmixxx-qml-mixxxcontrolsplugin.a libmixxx-qml-mixxxcontrols.a /usr/lib/x86_64-linux-gnu/libSM.so /usr/lib/x86_64-linux-gnu/libICE.so /usr/lib/x86_64-linux-gnu/libX11.so /usr/lib/x86_64-linux-gnu/libXext.so /usr/lib/x86_64-linux-gnu/libQt6DBus.so.6.2.2 libQueenMaryDsp.a libReplayGain.a libReverb.a /usr/lib/x86_64-linux-gnu/librubberband.so /usr/lib/x86_64-linux-gnu/libsndfile.so /usr/lib/x86_64-linux-gnu/libSoundTouch.so /usr/lib/x86_64-linux-gnu/libtag.so /usr/lib/x86_64-linux-gnu/libupower-glib.so /usr/lib/x86_64-linux-gnu/libglib-2.0.so /usr/lib/x86_64-linux-gnu/libgobject-2.0.so /usr/lib/x86_64-linux-gnu/libavcodec.so /usr/lib/x86_64-linux-gnu/libavformat.so /usr/lib/x86_64-linux-gnu/libavutil.so /usr/lib/x86_64-linux-gnu/libswresample.so /usr/lib/x86_64-linux-gnu/liblilv-0.so lib/libshout-idjc/libshout_mixxx.a /usr/lib/x86_64-linux-gnu/libogg.so /usr/lib/x86_64-linux-gnu/libvorbis.so /usr/lib/x86_64-linux-gnu/libvorbisenc.so /usr/lib/x86_64-linux-gnu/libssl.so /usr/lib/x86_64-linux-gnu/libcrypto.so /usr/lib/libopusfile.so /usr/lib/x86_64-linux-gnu/libopus.so /usr/lib/x86_64-linux-gnu/libmad.so /usr/lib/x86_64-linux-gnu/libid3tag.so /usr/lib/x86_64-linux-gnu/libmodplug.so /usr/lib/x86_64-linux-gnu/libqt6keychain.so.0.13.2 libmixxx-hidapi.a /usr/lib/x86_64-linux-gnu/libudev.so /usr/lib/x86_64-linux-gnu/libusb-1.0.so libmixxx-xwax.a /usr/lib/x86_64-linux-gnu/libwavpack.so /usr/lib/x86_64-linux-gnu/libQt6Qml.so.6.2.2 /usr/lib/x86_64-linux-gnu/libQt6Network.so.6.2.2 /usr/lib/x86_64-linux-gnu/libQt6Core.so.6.2.2 -pthread 

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is described in https://www.qt.io/blog/qml-modules-in-qt-6.2 in "Multiple modules in one binary". Please see the commit message of 88320b2 for more links about the Qt 6 QML module system.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is also part of libmixxx-lib.a see below. Is target_link_libraries(mixxx-lib PRIVATE mixxx-libplugin) redundant?

/usr/bin/ar qc libmixxx-lib.a  CMakeFiles/mixxx-lib.dir/mixxx-lib_autogen/mocs_compilation.cpp.o CMakeFiles/mixxx-lib.dir/src/analyzer/analyzerbeats.cpp.o CMakeFiles/mixxx-lib.dir/src/analyzer/analyzerebur128.cpp.o CMakeFiles/mixxx-lib.dir/src/analyzer/analyzergain.cpp.o CMakeFiles/mixxx-lib.dir/src/analyzer/analyzerkey.cpp.o CMakeFiles/mixxx-lib.dir/src/analyzer/analyzersilence.cpp.o CMakeFiles/mixxx-lib.dir/src/analyzer/analyzerthread.cpp.o CMakeFiles/mixxx-lib.dir/src/analyzer/analyzerwaveform.cpp.o CMakeFiles/mixxx-lib.dir/src/analyzer/plugins/analyzerqueenmarybeats.cpp.o CMakeFiles/mixxx-lib.dir/src/analyzer/plugins/analyzerqueenmarykey.cpp.o CMakeFiles/mixxx-lib.dir/src/analyzer/plugins/analyzersoundtouchbeats.cpp.o CMakeFiles/mixxx-lib.dir/src/analyzer/plugins/buffering_utils.cpp.o CMakeFiles/mixxx-lib.dir/src/analyzer/trackanalysisscheduler.cpp.o CMakeFiles/mixxx-lib.dir/src/audio/frame.cpp.o CMakeFiles/mixxx-lib.dir/src/audio/types.cpp.o CMakeFiles/mixxx-lib.dir/src/audio/signalinfo.cpp.o CMakeFiles/mixxx-lib.dir/src/audio/streaminfo.cpp.o CMakeFiles/mixxx-lib.dir/src/control/control.cpp.o CMakeFiles/mixxx-lib.dir/src/control/controlaudiotaperpot.cpp.o CMakeFiles/mixxx-lib.dir/src/control/controlbehavior.cpp.o CMakeFiles/mixxx-lib.dir/src/control/controlcompressingproxy.cpp.o CMakeFiles/mixxx-lib.dir/src/control/controleffectknob.cpp.o CMakeFiles/mixxx-lib.dir/src/control/controlencoder.cpp.o CMakeFiles/mixxx-lib.dir/src/control/controlindicator.cpp.o CMakeFiles/mixxx-lib.dir/src/control/controlindicatortimer.cpp.o CMakeFiles/mixxx-lib.dir/src/control/controllinpotmeter.cpp.o CMakeFiles/mixxx-lib.dir/src/control/controllogpotmeter.cpp.o CMakeFiles/mixxx-lib.dir/src/control/controlmodel.cpp.o CMakeFiles/mixxx-lib.dir/src/control/controlsortfiltermodel.cpp.o CMakeFiles/mixxx-lib.dir/src/control/controlobject.cpp.o CMakeFiles/mixxx-lib.dir/src/control/controlobjectscript.cpp.o CMakeFiles/mixxx-lib.dir/src/control/controlpotmeter.cpp.o CMakeFiles/mixxx-lib.dir/src/control/controlproxy.cpp.o CMakeFiles/mixxx-lib.dir/src/control/controlpushbutton.cpp.o CMakeFiles/mixxx-lib.dir/src/control/controlttrotary.cpp.o CMakeFiles/mixxx-lib.dir/src/controllers/controller.cpp.o CMakeFiles/mixxx-lib.dir/src/controllers/controllerenumerator.cpp.o CMakeFiles/mixxx-lib.dir/src/controllers/controllerinputmappingtablemodel.cpp.o CMakeFiles/mixxx-lib.dir/src/controllers/controllerlearningeventfilter.cpp.o CMakeFiles/mixxx-lib.dir/src/controllers/controllermanager.cpp.o CMakeFiles/mixxx-lib.dir/src/controllers/controllermappingtablemodel.cpp.o CMakeFiles/mixxx-lib.dir/src/controllers/controllermappinginfo.cpp.o CMakeFiles/mixxx-lib.dir/src/controllers/controllermappinginfoenumerator.cpp.o CMakeFiles/mixxx-lib.dir/src/controllers/controlleroutputmappingtablemodel.cpp.o CMakeFiles/mixxx-lib.dir/src/controllers/controlpickermenu.cpp.o CMakeFiles/mixxx-lib.dir/src/controllers/legacycontrollermappingfilehandler.cpp.o CMakeFiles/mixxx-lib.dir/src/controllers/delegates/controldelegate.cpp.o CMakeFiles/mixxx-lib.dir/src/controllers/delegates/midibytedelegate.cpp.o CMakeFiles/mixxx-lib.dir/src/controllers/delegates/midichanneldelegate.cpp.o CMakeFiles/mixxx-lib.dir/src/controllers/delegates/midiopcodedelegate.cpp.o CMakeFiles/mixxx-lib.dir/src/controllers/delegates/midioptionsdelegate.cpp.o CMakeFiles/mixxx-lib.dir/src/controllers/dlgcontrollerlearning.cpp.o CMakeFiles/mixxx-lib.dir/src/controllers/dlgprefcontroller.cpp.o CMakeFiles/mixxx-lib.dir/src/controllers/dlgprefcontrollers.cpp.o CMakeFiles/mixxx-lib.dir/src/controllers/scripting/controllerscriptenginebase.cpp.o CMakeFiles/mixxx-lib.dir/src/controllers/scripting/controllerscriptmoduleengine.cpp.o CMakeFiles/mixxx-lib.dir/src/controllers/scripting/colormapper.cpp.o CMakeFiles/mixxx-lib.dir/src/controllers/scripting/colormapperjsproxy.cpp.o CMakeFiles/mixxx-lib.dir/src/controllers/scripting/legacy/controllerscriptenginelegacy.cpp.o CMakeFiles/mixxx-lib.dir/src/controllers/scripting/legacy/controllerscriptinterfacelegacy.cpp.o CMakeFiles/mixxx-lib.dir/src/controllers/scripting/legacy/scriptconnection.cpp.o CMakeFiles/mixxx-lib.dir/src/controllers/scripting/legacy/scriptconnectionjsproxy.cpp.o CMakeFiles/mixxx-lib.dir/src/controllers/keyboard/keyboardeventfilter.cpp.o CMakeFiles/mixxx-lib.dir/src/controllers/learningutils.cpp.o CMakeFiles/mixxx-lib.dir/src/controllers/midi/legacymidicontrollermapping.cpp.o CMakeFiles/mixxx-lib.dir/src/controllers/midi/legacymidicontrollermappingfilehandler.cpp.o CMakeFiles/mixxx-lib.dir/src/controllers/midi/midicontroller.cpp.o CMakeFiles/mixxx-lib.dir/src/controllers/midi/midienumerator.cpp.o CMakeFiles/mixxx-lib.dir/src/controllers/midi/midimessage.cpp.o CMakeFiles/mixxx-lib.dir/src/controllers/midi/midioutputhandler.cpp.o CMakeFiles/mixxx-lib.dir/src/controllers/midi/midiutils.cpp.o CMakeFiles/mixxx-lib.dir/src/controllers/midi/portmidicontroller.cpp.o CMakeFiles/mixxx-lib.dir/src/controllers/midi/portmidienumerator.cpp.o CMakeFiles/mixxx-lib.dir/src/controllers/softtakeover.cpp.o CMakeFiles/mixxx-lib.dir/src/database/mixxxdb.cpp.o CMakeFiles/mixxx-lib.dir/src/database/schemamanager.cpp.o CMakeFiles/mixxx-lib.dir/src/dialog/dlgabout.cpp.o CMakeFiles/mixxx-lib.dir/src/dialog/dlgdevelopertools.cpp.o CMakeFiles/mixxx-lib.dir/src/dialog/dlgkeywheel.cpp.o CMakeFiles/mixxx-lib.dir/src/dialog/dlgreplacecuecolor.cpp.o CMakeFiles/mixxx-lib.dir/src/effects/effectbuttonparameterslot.cpp.o CMakeFiles/mixxx-lib.dir/src/effects/effectchain.cpp.o CMakeFiles/mixxx-lib.dir/src/effects/effectchainmixmode.cpp.o CMakeFiles/mixxx-lib.dir/src/effects/effectparameter.cpp.o CMakeFiles/mixxx-lib.dir/src/effects/effectknobparameterslot.cpp.o CMakeFiles/mixxx-lib.dir/src/effects/effectparameterslotbase.cpp.o CMakeFiles/mixxx-lib.dir/src/effects/effectslot.cpp.o CMakeFiles/mixxx-lib.dir/src/effects/effectsmanager.cpp.o CMakeFiles/mixxx-lib.dir/src/effects/effectsmessenger.cpp.o CMakeFiles/mixxx-lib.dir/src/effects/visibleeffectslist.cpp.o CMakeFiles/mixxx-lib.dir/src/effects/backends/effectsbackend.cpp.o CMakeFiles/mixxx-lib.dir/src/effects/backends/effectmanifest.cpp.o CMakeFiles/mixxx-lib.dir/src/effects/backends/effectmanifestparameter.cpp.o CMakeFiles/mixxx-lib.dir/src/effects/backends/builtin/autopaneffect.cpp.o CMakeFiles/mixxx-lib.dir/src/effects/backends/builtin/balanceeffect.cpp.o CMakeFiles/mixxx-lib.dir/src/effects/backends/builtin/bessel4lvmixeqeffect.cpp.o CMakeFiles/mixxx-lib.dir/src/effects/backends/builtin/bessel8lvmixeqeffect.cpp.o CMakeFiles/mixxx-lib.dir/src/effects/backends/builtin/biquadfullkilleqeffect.cpp.o CMakeFiles/mixxx-lib.dir/src/effects/backends/builtin/bitcrushereffect.cpp.o CMakeFiles/mixxx-lib.dir/src/effects/backends/builtin/builtinbackend.cpp.o CMakeFiles/mixxx-lib.dir/src/effects/backends/builtin/echoeffect.cpp.o CMakeFiles/mixxx-lib.dir/src/effects/backends/builtin/filtereffect.cpp.o CMakeFiles/mixxx-lib.dir/src/effects/backends/builtin/flangereffect.cpp.o CMakeFiles/mixxx-lib.dir/src/effects/backends/builtin/graphiceqeffect.cpp.o CMakeFiles/mixxx-lib.dir/src/effects/backends/builtin/linkwitzriley8eqeffect.cpp.o CMakeFiles/mixxx-lib.dir/src/effects/backends/builtin/loudnesscontoureffect.cpp.o CMakeFiles/mixxx-lib.dir/src/effects/backends/builtin/metronomeeffect.cpp.o CMakeFiles/mixxx-lib.dir/src/effects/backends/builtin/moogladder4filtereffect.cpp.o CMakeFiles/mixxx-lib.dir/src/effects/backends/builtin/parametriceqeffect.cpp.o CMakeFiles/mixxx-lib.dir/src/effects/backends/builtin/phasereffect.cpp.o CMakeFiles/mixxx-lib.dir/src/effects/backends/builtin/reverbeffect.cpp.o CMakeFiles/mixxx-lib.dir/src/effects/backends/builtin/threebandbiquadeqeffect.cpp.o CMakeFiles/mixxx-lib.dir/src/effects/backends/builtin/tremoloeffect.cpp.o CMakeFiles/mixxx-lib.dir/src/effects/backends/builtin/whitenoiseeffect.cpp.o CMakeFiles/mixxx-lib.dir/src/effects/backends/effectsbackendmanager.cpp.o CMakeFiles/mixxx-lib.dir/src/effects/chains/equalizereffectchain.cpp.o CMakeFiles/mixxx-lib.dir/src/effects/chains/outputeffectchain.cpp.o CMakeFiles/mixxx-lib.dir/src/effects/chains/pergroupeffectchain.cpp.o CMakeFiles/mixxx-lib.dir/src/effects/chains/quickeffectchain.cpp.o CMakeFiles/mixxx-lib.dir/src/effects/chains/standardeffectchain.cpp.o CMakeFiles/mixxx-lib.dir/src/effects/presets/effectchainpreset.cpp.o CMakeFiles/mixxx-lib.dir/src/effects/presets/effectchainpresetmanager.cpp.o CMakeFiles/mixxx-lib.dir/src/effects/presets/effectparameterpreset.cpp.o CMakeFiles/mixxx-lib.dir/src/effects/presets/effectpreset.cpp.o CMakeFiles/mixxx-lib.dir/src/effects/presets/effectpresetmanager.cpp.o CMakeFiles/mixxx-lib.dir/src/encoder/encoder.cpp.o CMakeFiles/mixxx-lib.dir/src/encoder/encoderfdkaac.cpp.o CMakeFiles/mixxx-lib.dir/src/encoder/encoderfdkaacsettings.cpp.o CMakeFiles/mixxx-lib.dir/src/encoder/encoderflacsettings.cpp.o CMakeFiles/mixxx-lib.dir/src/encoder/encodermp3.cpp.o CMakeFiles/mixxx-lib.dir/src/encoder/encodermp3settings.cpp.o CMakeFiles/mixxx-lib.dir/src/encoder/encodersndfileflac.cpp.o CMakeFiles/mixxx-lib.dir/src/encoder/encodervorbis.cpp.o CMakeFiles/mixxx-lib.dir/src/encoder/encodervorbissettings.cpp.o CMakeFiles/mixxx-lib.dir/src/encoder/encoderwave.cpp.o CMakeFiles/mixxx-lib.dir/src/encoder/encoderwavesettings.cpp.o CMakeFiles/mixxx-lib.dir/src/engine/bufferscalers/enginebufferscale.cpp.o CMakeFiles/mixxx-lib.dir/src/engine/bufferscalers/enginebufferscalelinear.cpp.o CMakeFiles/mixxx-lib.dir/src/engine/bufferscalers/enginebufferscalerubberband.cpp.o CMakeFiles/mixxx-lib.dir/src/engine/bufferscalers/enginebufferscalest.cpp.o CMakeFiles/mixxx-lib.dir/src/engine/cachingreader/cachingreader.cpp.o CMakeFiles/mixxx-lib.dir/src/engine/cachingreader/cachingreaderchunk.cpp.o CMakeFiles/mixxx-lib.dir/src/engine/cachingreader/cachingreaderworker.cpp.o CMakeFiles/mixxx-lib.dir/src/engine/channelmixer.cpp.o CMakeFiles/mixxx-lib.dir/src/engine/channels/engineaux.cpp.o CMakeFiles/mixxx-lib.dir/src/engine/channels/enginechannel.cpp.o CMakeFiles/mixxx-lib.dir/src/engine/channels/enginedeck.cpp.o CMakeFiles/mixxx-lib.dir/src/engine/channels/enginemicrophone.cpp.o CMakeFiles/mixxx-lib.dir/src/engine/controls/bpmcontrol.cpp.o CMakeFiles/mixxx-lib.dir/src/engine/controls/clockcontrol.cpp.o CMakeFiles/mixxx-lib.dir/src/engine/controls/cuecontrol.cpp.o CMakeFiles/mixxx-lib.dir/src/engine/controls/enginecontrol.cpp.o CMakeFiles/mixxx-lib.dir/src/engine/controls/keycontrol.cpp.o CMakeFiles/mixxx-lib.dir/src/engine/controls/loopingcontrol.cpp.o CMakeFiles/mixxx-lib.dir/src/engine/controls/quantizecontrol.cpp.o CMakeFiles/mixxx-lib.dir/src/engine/controls/ratecontrol.cpp.o CMakeFiles/mixxx-lib.dir/src/engine/effects/engineeffect.cpp.o CMakeFiles/mixxx-lib.dir/src/engine/effects/engineeffectchain.cpp.o CMakeFiles/mixxx-lib.dir/src/engine/effects/engineeffectsmanager.cpp.o CMakeFiles/mixxx-lib.dir/src/engine/enginebuffer.cpp.o CMakeFiles/mixxx-lib.dir/src/engine/enginedelay.cpp.o CMakeFiles/mixxx-lib.dir/src/engine/enginemaster.cpp.o CMakeFiles/mixxx-lib.dir/src/engine/engineobject.cpp.o CMakeFiles/mixxx-lib.dir/src/engine/enginepregain.cpp.o CMakeFiles/mixxx-lib.dir/src/engine/enginesidechaincompressor.cpp.o CMakeFiles/mixxx-lib.dir/src/engine/enginetalkoverducking.cpp.o CMakeFiles/mixxx-lib.dir/src/engine/enginevumeter.cpp.o CMakeFiles/mixxx-lib.dir/src/engine/engineworker.cpp.o CMakeFiles/mixxx-lib.dir/src/engine/engineworkerscheduler.cpp.o CMakeFiles/mixxx-lib.dir/src/engine/enginexfader.cpp.o CMakeFiles/mixxx-lib.dir/src/engine/filters/enginefilter.cpp.o CMakeFiles/mixxx-lib.dir/src/engine/filters/enginefilterbessel4.cpp.o CMakeFiles/mixxx-lib.dir/src/engine/filters/enginefilterbessel8.cpp.o CMakeFiles/mixxx-lib.dir/src/engine/filters/enginefilterbiquad1.cpp.o CMakeFiles/mixxx-lib.dir/src/engine/filters/enginefilterbutterworth4.cpp.o CMakeFiles/mixxx-lib.dir/src/engine/filters/enginefilterbutterworth8.cpp.o CMakeFiles/mixxx-lib.dir/src/engine/filters/enginefilterlinkwitzriley2.cpp.o CMakeFiles/mixxx-lib.dir/src/engine/filters/enginefilterlinkwitzriley4.cpp.o CMakeFiles/mixxx-lib.dir/src/engine/filters/enginefilterlinkwitzriley8.cpp.o CMakeFiles/mixxx-lib.dir/src/engine/filters/enginefiltermoogladder4.cpp.o CMakeFiles/mixxx-lib.dir/src/engine/positionscratchcontroller.cpp.o CMakeFiles/mixxx-lib.dir/src/engine/readaheadmanager.cpp.o CMakeFiles/mixxx-lib.dir/src/engine/sidechain/enginenetworkstream.cpp.o CMakeFiles/mixxx-lib.dir/src/engine/sidechain/enginerecord.cpp.o CMakeFiles/mixxx-lib.dir/src/engine/sidechain/enginesidechain.cpp.o CMakeFiles/mixxx-lib.dir/src/engine/sidechain/networkinputstreamworker.cpp.o CMakeFiles/mixxx-lib.dir/src/engine/sidechain/networkoutputstreamworker.cpp.o CMakeFiles/mixxx-lib.dir/src/engine/sync/enginesync.cpp.o CMakeFiles/mixxx-lib.dir/src/engine/sync/internalclock.cpp.o CMakeFiles/mixxx-lib.dir/src/engine/sync/synccontrol.cpp.o CMakeFiles/mixxx-lib.dir/src/errordialoghandler.cpp.o CMakeFiles/mixxx-lib.dir/src/library/analysisfeature.cpp.o CMakeFiles/mixxx-lib.dir/src/library/analysislibrarytablemodel.cpp.o CMakeFiles/mixxx-lib.dir/src/library/autodj/autodjfeature.cpp.o CMakeFiles/mixxx-lib.dir/src/library/autodj/autodjprocessor.cpp.o CMakeFiles/mixxx-lib.dir/src/library/autodj/dlgautodj.cpp.o CMakeFiles/mixxx-lib.dir/src/library/banshee/bansheedbconnection.cpp.o CMakeFiles/mixxx-lib.dir/src/library/banshee/bansheefeature.cpp.o CMakeFiles/mixxx-lib.dir/src/library/banshee/bansheeplaylistmodel.cpp.o CMakeFiles/mixxx-lib.dir/src/library/baseexternallibraryfeature.cpp.o CMakeFiles/mixxx-lib.dir/src/library/baseexternalplaylistmodel.cpp.o CMakeFiles/mixxx-lib.dir/src/library/baseexternaltrackmodel.cpp.o CMakeFiles/mixxx-lib.dir/src/library/basesqltablemodel.cpp.o CMakeFiles/mixxx-lib.dir/src/library/basetrackcache.cpp.o CMakeFiles/mixxx-lib.dir/src/library/basetracktablemodel.cpp.o CMakeFiles/mixxx-lib.dir/src/library/bpmdelegate.cpp.o CMakeFiles/mixxx-lib.dir/src/library/browse/browsefeature.cpp.o CMakeFiles/mixxx-lib.dir/src/library/browse/browsetablemodel.cpp.o CMakeFiles/mixxx-lib.dir/src/library/browse/browsethread.cpp.o CMakeFiles/mixxx-lib.dir/src/library/browse/foldertreemodel.cpp.o CMakeFiles/mixxx-lib.dir/src/library/colordelegate.cpp.o CMakeFiles/mixxx-lib.dir/src/library/columncache.cpp.o CMakeFiles/mixxx-lib.dir/src/library/coverart.cpp.o CMakeFiles/mixxx-lib.dir/src/library/coverartcache.cpp.o CMakeFiles/mixxx-lib.dir/src/library/coverartdelegate.cpp.o CMakeFiles/mixxx-lib.dir/src/library/coverartutils.cpp.o CMakeFiles/mixxx-lib.dir/src/library/dao/analysisdao.cpp.o CMakeFiles/mixxx-lib.dir/src/library/dao/autodjcratesdao.cpp.o CMakeFiles/mixxx-lib.dir/src/library/dao/cuedao.cpp.o CMakeFiles/mixxx-lib.dir/src/library/dao/directorydao.cpp.o CMakeFiles/mixxx-lib.dir/src/library/dao/libraryhashdao.cpp.o CMakeFiles/mixxx-lib.dir/src/library/dao/playlistdao.cpp.o CMakeFiles/mixxx-lib.dir/src/library/dao/settingsdao.cpp.o CMakeFiles/mixxx-lib.dir/src/library/dao/trackdao.cpp.o CMakeFiles/mixxx-lib.dir/src/library/dao/trackschema.cpp.o CMakeFiles/mixxx-lib.dir/src/library/dlganalysis.cpp.o CMakeFiles/mixxx-lib.dir/src/library/dlgcoverartfullsize.cpp.o CMakeFiles/mixxx-lib.dir/src/library/dlghidden.cpp.o CMakeFiles/mixxx-lib.dir/src/library/dlgmissing.cpp.o CMakeFiles/mixxx-lib.dir/src/library/dlgtagfetcher.cpp.o CMakeFiles/mixxx-lib.dir/src/library/dlgtrackinfo.cpp.o CMakeFiles/mixxx-lib.dir/src/library/dlgtrackmetadataexport.cpp.o CMakeFiles/mixxx-lib.dir/src/library/export/trackexportdlg.cpp.o CMakeFiles/mixxx-lib.dir/src/library/export/trackexportwizard.cpp.o CMakeFiles/mixxx-lib.dir/src/library/export/trackexportworker.cpp.o CMakeFiles/mixxx-lib.dir/src/library/externaltrackcollection.cpp.o CMakeFiles/mixxx-lib.dir/src/library/hiddentablemodel.cpp.o CMakeFiles/mixxx-lib.dir/src/library/itunes/itunesfeature.cpp.o CMakeFiles/mixxx-lib.dir/src/library/library_prefs.cpp.o CMakeFiles/mixxx-lib.dir/src/library/library.cpp.o CMakeFiles/mixxx-lib.dir/src/library/librarycontrol.cpp.o CMakeFiles/mixxx-lib.dir/src/library/libraryfeature.cpp.o CMakeFiles/mixxx-lib.dir/src/library/librarytablemodel.cpp.o CMakeFiles/mixxx-lib.dir/src/library/locationdelegate.cpp.o CMakeFiles/mixxx-lib.dir/src/library/missingtablemodel.cpp.o CMakeFiles/mixxx-lib.dir/src/library/mixxxlibraryfeature.cpp.o CMakeFiles/mixxx-lib.dir/src/library/parser.cpp.o CMakeFiles/mixxx-lib.dir/src/library/parsercsv.cpp.o CMakeFiles/mixxx-lib.dir/src/library/parserm3u.cpp.o CMakeFiles/mixxx-lib.dir/src/library/parserpls.cpp.o CMakeFiles/mixxx-lib.dir/src/library/playlisttablemodel.cpp.o CMakeFiles/mixxx-lib.dir/src/library/previewbuttondelegate.cpp.o CMakeFiles/mixxx-lib.dir/src/library/proxytrackmodel.cpp.o CMakeFiles/mixxx-lib.dir/src/library/recording/dlgrecording.cpp.o CMakeFiles/mixxx-lib.dir/src/library/recording/recordingfeature.cpp.o CMakeFiles/mixxx-lib.dir/src/library/rekordbox/rekordbox_anlz.cpp.o CMakeFiles/mixxx-lib.dir/src/library/rekordbox/rekordbox_pdb.cpp.o CMakeFiles/mixxx-lib.dir/src/library/rekordbox/rekordboxfeature.cpp.o CMakeFiles/mixxx-lib.dir/src/library/rhythmbox/rhythmboxfeature.cpp.o CMakeFiles/mixxx-lib.dir/src/library/scanner/importfilestask.cpp.o CMakeFiles/mixxx-lib.dir/src/library/scanner/libraryscanner.cpp.o CMakeFiles/mixxx-lib.dir/src/library/scanner/libraryscannerdlg.cpp.o CMakeFiles/mixxx-lib.dir/src/library/scanner/recursivescandirectorytask.cpp.o CMakeFiles/mixxx-lib.dir/src/library/scanner/scannertask.cpp.o CMakeFiles/mixxx-lib.dir/src/library/searchquery.cpp.o CMakeFiles/mixxx-lib.dir/src/library/searchqueryparser.cpp.o CMakeFiles/mixxx-lib.dir/src/library/serato/seratofeature.cpp.o CMakeFiles/mixxx-lib.dir/src/library/serato/seratoplaylistmodel.cpp.o CMakeFiles/mixxx-lib.dir/src/library/sidebarmodel.cpp.o CMakeFiles/mixxx-lib.dir/src/library/stardelegate.cpp.o CMakeFiles/mixxx-lib.dir/src/library/stareditor.cpp.o CMakeFiles/mixxx-lib.dir/src/library/starrating.cpp.o CMakeFiles/mixxx-lib.dir/src/library/tableitemdelegate.cpp.o CMakeFiles/mixxx-lib.dir/src/library/trackcollection.cpp.o CMakeFiles/mixxx-lib.dir/src/library/trackcollectioniterator.cpp.o CMakeFiles/mixxx-lib.dir/src/library/trackcollectionmanager.cpp.o CMakeFiles/mixxx-lib.dir/src/library/trackloader.cpp.o CMakeFiles/mixxx-lib.dir/src/library/trackmodeliterator.cpp.o CMakeFiles/mixxx-lib.dir/src/library/trackprocessing.cpp.o CMakeFiles/mixxx-lib.dir/src/library/trackset/baseplaylistfeature.cpp.o CMakeFiles/mixxx-lib.dir/src/library/trackset/basetracksetfeature.cpp.o CMakeFiles/mixxx-lib.dir/src/library/trackset/crate/cratefeature.cpp.o CMakeFiles/mixxx-lib.dir/src/library/trackset/crate/cratefeaturehelper.cpp.o CMakeFiles/mixxx-lib.dir/src/library/trackset/crate/cratestorage.cpp.o CMakeFiles/mixxx-lib.dir/src/library/trackset/crate/cratetablemodel.cpp.o CMakeFiles/mixxx-lib.dir/src/library/trackset/playlistfeature.cpp.o CMakeFiles/mixxx-lib.dir/src/library/trackset/setlogfeature.cpp.o CMakeFiles/mixxx-lib.dir/src/library/trackset/tracksettablemodel.cpp.o CMakeFiles/mixxx-lib.dir/src/library/traktor/traktorfeature.cpp.o CMakeFiles/mixxx-lib.dir/src/library/treeitem.cpp.o CMakeFiles/mixxx-lib.dir/src/library/treeitemmodel.cpp.o CMakeFiles/mixxx-lib.dir/src/mixer/auxiliary.cpp.o CMakeFiles/mixxx-lib.dir/src/mixer/baseplayer.cpp.o CMakeFiles/mixxx-lib.dir/src/mixer/basetrackplayer.cpp.o CMakeFiles/mixxx-lib.dir/src/mixer/deck.cpp.o CMakeFiles/mixxx-lib.dir/src/mixer/microphone.cpp.o CMakeFiles/mixxx-lib.dir/src/mixer/playerinfo.cpp.o CMakeFiles/mixxx-lib.dir/src/mixer/playermanager.cpp.o CMakeFiles/mixxx-lib.dir/src/mixer/previewdeck.cpp.o CMakeFiles/mixxx-lib.dir/src/mixer/sampler.cpp.o CMakeFiles/mixxx-lib.dir/src/mixer/samplerbank.cpp.o CMakeFiles/mixxx-lib.dir/src/coreservices.cpp.o CMakeFiles/mixxx-lib.dir/src/mixxxapplication.cpp.o CMakeFiles/mixxx-lib.dir/src/musicbrainz/chromaprinter.cpp.o CMakeFiles/mixxx-lib.dir/src/musicbrainz/crc.cpp.o CMakeFiles/mixxx-lib.dir/src/musicbrainz/gzip.cpp.o CMakeFiles/mixxx-lib.dir/src/musicbrainz/musicbrainz.cpp.o CMakeFiles/mixxx-lib.dir/src/musicbrainz/musicbrainzxml.cpp.o CMakeFiles/mixxx-lib.dir/src/musicbrainz/tagfetcher.cpp.o CMakeFiles/mixxx-lib.dir/src/musicbrainz/web/acoustidlookuptask.cpp.o CMakeFiles/mixxx-lib.dir/src/musicbrainz/web/musicbrainzrecordingstask.cpp.o CMakeFiles/mixxx-lib.dir/src/network/jsonwebtask.cpp.o CMakeFiles/mixxx-lib.dir/src/network/networktask.cpp.o CMakeFiles/mixxx-lib.dir/src/network/webtask.cpp.o CMakeFiles/mixxx-lib.dir/src/preferences/colorpaletteeditor.cpp.o CMakeFiles/mixxx-lib.dir/src/preferences/colorpaletteeditormodel.cpp.o CMakeFiles/mixxx-lib.dir/src/preferences/colorpalettesettings.cpp.o CMakeFiles/mixxx-lib.dir/src/preferences/configobject.cpp.o CMakeFiles/mixxx-lib.dir/src/preferences/dialog/dlgprefautodj.cpp.o CMakeFiles/mixxx-lib.dir/src/preferences/dialog/dlgprefbeats.cpp.o CMakeFiles/mixxx-lib.dir/src/preferences/dialog/dlgprefcolors.cpp.o CMakeFiles/mixxx-lib.dir/src/preferences/dialog/dlgprefcrossfader.cpp.o CMakeFiles/mixxx-lib.dir/src/preferences/dialog/dlgprefdeck.cpp.o CMakeFiles/mixxx-lib.dir/src/preferences/dialog/dlgprefeffects.cpp.o CMakeFiles/mixxx-lib.dir/src/preferences/dialog/dlgprefeq.cpp.o CMakeFiles/mixxx-lib.dir/src/preferences/dialog/dlgpreferencepage.cpp.o CMakeFiles/mixxx-lib.dir/src/preferences/dialog/dlgpreferences.cpp.o CMakeFiles/mixxx-lib.dir/src/preferences/dialog/dlgprefinterface.cpp.o CMakeFiles/mixxx-lib.dir/src/preferences/dialog/dlgprefkey.cpp.o CMakeFiles/mixxx-lib.dir/src/preferences/dialog/dlgpreflibrary.cpp.o CMakeFiles/mixxx-lib.dir/src/preferences/dialog/dlgprefrecord.cpp.o CMakeFiles/mixxx-lib.dir/src/preferences/dialog/dlgprefreplaygain.cpp.o CMakeFiles/mixxx-lib.dir/src/preferences/dialog/dlgprefsound.cpp.o CMakeFiles/mixxx-lib.dir/src/preferences/dialog/dlgprefsounditem.cpp.o CMakeFiles/mixxx-lib.dir/src/preferences/dialog/dlgprefwaveform.cpp.o CMakeFiles/mixxx-lib.dir/src/preferences/effectchainpresetlistmodel.cpp.o CMakeFiles/mixxx-lib.dir/src/preferences/effectmanifesttablemodel.cpp.o CMakeFiles/mixxx-lib.dir/src/preferences/replaygainsettings.cpp.o CMakeFiles/mixxx-lib.dir/src/preferences/settingsmanager.cpp.o CMakeFiles/mixxx-lib.dir/src/preferences/upgrade.cpp.o CMakeFiles/mixxx-lib.dir/src/recording/recordingmanager.cpp.o CMakeFiles/mixxx-lib.dir/src/skin/legacy/colorschemeparser.cpp.o CMakeFiles/mixxx-lib.dir/src/skin/legacy/imgcolor.cpp.o CMakeFiles/mixxx-lib.dir/src/skin/legacy/imginvert.cpp.o CMakeFiles/mixxx-lib.dir/src/skin/legacy/imgloader.cpp.o CMakeFiles/mixxx-lib.dir/src/skin/legacy/launchimage.cpp.o CMakeFiles/mixxx-lib.dir/src/skin/legacy/legacyskin.cpp.o CMakeFiles/mixxx-lib.dir/src/skin/legacy/legacyskinparser.cpp.o CMakeFiles/mixxx-lib.dir/src/skin/legacy/pixmapsource.cpp.o CMakeFiles/mixxx-lib.dir/src/skin/legacy/skincontext.cpp.o CMakeFiles/mixxx-lib.dir/src/skin/legacy/tooltips.cpp.o CMakeFiles/mixxx-lib.dir/src/skin/skinloader.cpp.o CMakeFiles/mixxx-lib.dir/src/soundio/sounddevice.cpp.o CMakeFiles/mixxx-lib.dir/src/soundio/sounddevicenetwork.cpp.o CMakeFiles/mixxx-lib.dir/src/soundio/sounddeviceportaudio.cpp.o CMakeFiles/mixxx-lib.dir/src/soundio/soundmanager.cpp.o CMakeFiles/mixxx-lib.dir/src/soundio/soundmanagerconfig.cpp.o CMakeFiles/mixxx-lib.dir/src/soundio/soundmanagerutil.cpp.o CMakeFiles/mixxx-lib.dir/src/sources/audiosource.cpp.o CMakeFiles/mixxx-lib.dir/src/sources/audiosourcestereoproxy.cpp.o CMakeFiles/mixxx-lib.dir/src/sources/metadatasource.cpp.o CMakeFiles/mixxx-lib.dir/src/sources/metadatasourcetaglib.cpp.o CMakeFiles/mixxx-lib.dir/src/sources/readaheadframebuffer.cpp.o CMakeFiles/mixxx-lib.dir/src/sources/soundsource.cpp.o CMakeFiles/mixxx-lib.dir/src/sources/soundsourceflac.cpp.o CMakeFiles/mixxx-lib.dir/src/sources/soundsourceoggvorbis.cpp.o CMakeFiles/mixxx-lib.dir/src/sources/soundsourceprovider.cpp.o CMakeFiles/mixxx-lib.dir/src/sources/soundsourceproviderregistry.cpp.o CMakeFiles/mixxx-lib.dir/src/sources/soundsourceproxy.cpp.o CMakeFiles/mixxx-lib.dir/src/sources/soundsourcesndfile.cpp.o CMakeFiles/mixxx-lib.dir/src/track/albuminfo.cpp.o CMakeFiles/mixxx-lib.dir/src/track/beatfactory.cpp.o CMakeFiles/mixxx-lib.dir/src/track/beats.cpp.o CMakeFiles/mixxx-lib.dir/src/track/beatutils.cpp.o CMakeFiles/mixxx-lib.dir/src/track/bpm.cpp.o CMakeFiles/mixxx-lib.dir/src/track/cue.cpp.o CMakeFiles/mixxx-lib.dir/src/track/cueinfo.cpp.o CMakeFiles/mixxx-lib.dir/src/track/cueinfoimporter.cpp.o CMakeFiles/mixxx-lib.dir/src/track/globaltrackcache.cpp.o CMakeFiles/mixxx-lib.dir/src/track/keyfactory.cpp.o CMakeFiles/mixxx-lib.dir/src/track/keys.cpp.o CMakeFiles/mixxx-lib.dir/src/track/keyutils.cpp.o CMakeFiles/mixxx-lib.dir/src/track/playcounter.cpp.o CMakeFiles/mixxx-lib.dir/src/track/replaygain.cpp.o CMakeFiles/mixxx-lib.dir/src/track/serato/beatgrid.cpp.o CMakeFiles/mixxx-lib.dir/src/track/serato/beatsimporter.cpp.o CMakeFiles/mixxx-lib.dir/src/track/serato/cueinfoimporter.cpp.o CMakeFiles/mixxx-lib.dir/src/track/serato/markers.cpp.o CMakeFiles/mixxx-lib.dir/src/track/serato/markers2.cpp.o CMakeFiles/mixxx-lib.dir/src/track/serato/tags.cpp.o CMakeFiles/mixxx-lib.dir/src/track/track.cpp.o CMakeFiles/mixxx-lib.dir/src/track/trackinfo.cpp.o CMakeFiles/mixxx-lib.dir/src/track/trackmetadata.cpp.o CMakeFiles/mixxx-lib.dir/src/track/tracknumbers.cpp.o CMakeFiles/mixxx-lib.dir/src/track/trackrecord.cpp.o CMakeFiles/mixxx-lib.dir/src/track/trackref.cpp.o CMakeFiles/mixxx-lib.dir/src/track/taglib/trackmetadata_ape.cpp.o CMakeFiles/mixxx-lib.dir/src/track/taglib/trackmetadata_common.cpp.o CMakeFiles/mixxx-lib.dir/src/track/taglib/trackmetadata_file.cpp.o CMakeFiles/mixxx-lib.dir/src/track/taglib/trackmetadata_id3v2.cpp.o CMakeFiles/mixxx-lib.dir/src/track/taglib/trackmetadata_mp4.cpp.o CMakeFiles/mixxx-lib.dir/src/track/taglib/trackmetadata_riff.cpp.o CMakeFiles/mixxx-lib.dir/src/track/taglib/trackmetadata_xiph.cpp.o CMakeFiles/mixxx-lib.dir/src/util/battery/battery.cpp.o CMakeFiles/mixxx-lib.dir/src/util/cache.cpp.o CMakeFiles/mixxx-lib.dir/src/util/cmdlineargs.cpp.o CMakeFiles/mixxx-lib.dir/src/util/color/color.cpp.o CMakeFiles/mixxx-lib.dir/src/util/color/colorpalette.cpp.o CMakeFiles/mixxx-lib.dir/src/util/color/predefinedcolorpalettes.cpp.o CMakeFiles/mixxx-lib.dir/src/util/console.cpp.o CMakeFiles/mixxx-lib.dir/src/util/db/dbconnection.cpp.o CMakeFiles/mixxx-lib.dir/src/util/db/dbconnectionpool.cpp.o CMakeFiles/mixxx-lib.dir/src/util/db/dbconnectionpooled.cpp.o CMakeFiles/mixxx-lib.dir/src/util/db/dbconnectionpooler.cpp.o CMakeFiles/mixxx-lib.dir/src/util/db/dbid.cpp.o CMakeFiles/mixxx-lib.dir/src/util/db/fwdsqlquery.cpp.o CMakeFiles/mixxx-lib.dir/src/util/db/fwdsqlqueryselectresult.cpp.o CMakeFiles/mixxx-lib.dir/src/util/db/sqlite.cpp.o CMakeFiles/mixxx-lib.dir/src/util/db/sqlqueryfinisher.cpp.o CMakeFiles/mixxx-lib.dir/src/util/db/sqlstringformatter.cpp.o CMakeFiles/mixxx-lib.dir/src/util/db/sqltransaction.cpp.o CMakeFiles/mixxx-lib.dir/src/util/desktophelper.cpp.o CMakeFiles/mixxx-lib.dir/src/util/dnd.cpp.o CMakeFiles/mixxx-lib.dir/src/util/duration.cpp.o CMakeFiles/mixxx-lib.dir/src/util/experiment.cpp.o CMakeFiles/mixxx-lib.dir/src/util/file.cpp.o CMakeFiles/mixxx-lib.dir/src/util/fileaccess.cpp.o CMakeFiles/mixxx-lib.dir/src/util/fileinfo.cpp.o CMakeFiles/mixxx-lib.dir/src/util/filename.cpp.o CMakeFiles/mixxx-lib.dir/src/util/imageutils.cpp.o CMakeFiles/mixxx-lib.dir/src/util/indexrange.cpp.o CMakeFiles/mixxx-lib.dir/src/util/logger.cpp.o CMakeFiles/mixxx-lib.dir/src/util/logging.cpp.o CMakeFiles/mixxx-lib.dir/src/util/mac.cpp.o CMakeFiles/mixxx-lib.dir/src/util/movinginterquartilemean.cpp.o CMakeFiles/mixxx-lib.dir/src/util/performancetimer.cpp.o CMakeFiles/mixxx-lib.dir/src/util/rangelist.cpp.o CMakeFiles/mixxx-lib.dir/src/util/readaheadsamplebuffer.cpp.o CMakeFiles/mixxx-lib.dir/src/util/rlimit.cpp.o CMakeFiles/mixxx-lib.dir/src/util/rotary.cpp.o CMakeFiles/mixxx-lib.dir/src/util/runtimeloggingcategory.cpp.o CMakeFiles/mixxx-lib.dir/src/util/sample.cpp.o CMakeFiles/mixxx-lib.dir/src/util/samplebuffer.cpp.o CMakeFiles/mixxx-lib.dir/src/util/sandbox.cpp.o CMakeFiles/mixxx-lib.dir/src/util/semanticversion.cpp.o CMakeFiles/mixxx-lib.dir/src/util/screensaver.cpp.o CMakeFiles/mixxx-lib.dir/src/util/screensavermanager.cpp.o CMakeFiles/mixxx-lib.dir/src/util/stat.cpp.o CMakeFiles/mixxx-lib.dir/src/util/statmodel.cpp.o CMakeFiles/mixxx-lib.dir/src/util/statsmanager.cpp.o CMakeFiles/mixxx-lib.dir/src/util/tapfilter.cpp.o CMakeFiles/mixxx-lib.dir/src/util/task.cpp.o CMakeFiles/mixxx-lib.dir/src/util/taskmonitor.cpp.o CMakeFiles/mixxx-lib.dir/src/util/threadcputimer.cpp.o CMakeFiles/mixxx-lib.dir/src/util/time.cpp.o CMakeFiles/mixxx-lib.dir/src/util/timer.cpp.o CMakeFiles/mixxx-lib.dir/src/util/valuetransformer.cpp.o CMakeFiles/mixxx-lib.dir/src/util/versionstore.cpp.o CMakeFiles/mixxx-lib.dir/src/util/widgethelper.cpp.o CMakeFiles/mixxx-lib.dir/src/util/widgetrendertimer.cpp.o CMakeFiles/mixxx-lib.dir/src/util/workerthread.cpp.o CMakeFiles/mixxx-lib.dir/src/util/workerthreadscheduler.cpp.o CMakeFiles/mixxx-lib.dir/src/util/xml.cpp.o CMakeFiles/mixxx-lib.dir/src/waveform/visualplayposition.cpp.o CMakeFiles/mixxx-lib.dir/src/waveform/waveform.cpp.o CMakeFiles/mixxx-lib.dir/src/waveform/waveformfactory.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/controlwidgetconnection.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/hexspinbox.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/paintable.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/wanalysislibrarytableview.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/wbasewidget.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/wbattery.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/wbeatspinbox.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/wcolorpicker.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/wcolorpickeraction.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/wcombobox.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/wcoverart.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/wcoverartlabel.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/wcoverartmenu.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/wcuemenupopup.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/wdisplay.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/weffectbuttonparametername.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/weffectchain.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/weffectchainpresetbutton.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/weffectchainpresetselector.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/weffectknobparametername.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/weffectname.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/weffectparameterknob.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/weffectparameterknobcomposed.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/weffectparameternamebase.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/weffectpushbutton.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/weffectselector.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/whotcuebutton.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/wimagestore.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/wkey.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/wknob.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/wknobcomposed.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/wlabel.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/wlibrary.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/wlibrarysidebar.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/wlibrarytableview.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/wlibrarytextbrowser.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/wmainmenubar.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/wnumber.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/wnumberdb.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/wnumberpos.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/wnumberrate.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/wpixmapstore.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/wpushbutton.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/wraterange.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/wrecordingduration.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/wscrollable.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/wsearchlineedit.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/wsearchrelatedtracksmenu.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/wsingletoncontainer.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/wsizeawarestack.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/wskincolor.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/wslidercomposed.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/wsplitter.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/wstarrating.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/wstatuslight.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/wtime.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/wtrackmenu.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/wtrackproperty.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/wtracktableview.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/wtracktableviewheader.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/wtracktext.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/wtrackwidgetgroup.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/wvumeter.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/wwidget.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/wwidgetgroup.cpp.o CMakeFiles/mixxx-lib.dir/src/widget/wwidgetstack.cpp.o CMakeFiles/mixxx-lib.dir/src/qml/asyncimageprovider.cpp.o CMakeFiles/mixxx-lib.dir/src/qml/qmlapplication.cpp.o CMakeFiles/mixxx-lib.dir/src/qml/qmlcontrolproxy.cpp.o CMakeFiles/mixxx-lib.dir/src/qml/qmlconfigproxy.cpp.o CMakeFiles/mixxx-lib.dir/src/qml/qmldlgpreferencesproxy.cpp.o CMakeFiles/mixxx-lib.dir/src/qml/qmleffectmanifestparametersmodel.cpp.o CMakeFiles/mixxx-lib.dir/src/qml/qmleffectsmanagerproxy.cpp.o CMakeFiles/mixxx-lib.dir/src/qml/qmleffectslotproxy.cpp.o CMakeFiles/mixxx-lib.dir/src/qml/qmllibraryproxy.cpp.o CMakeFiles/mixxx-lib.dir/src/qml/qmllibrarytracklistmodel.cpp.o CMakeFiles/mixxx-lib.dir/src/qml/qmlplayermanagerproxy.cpp.o CMakeFiles/mixxx-lib.dir/src/qml/qmlplayerproxy.cpp.o CMakeFiles/mixxx-lib.dir/src/qml/qmlvisibleeffectsmodel.cpp.o CMakeFiles/mixxx-lib.dir/src/qml/qmlwaveformoverview.cpp.o CMakeFiles/mixxx-lib.dir/src/library/export/dlglibraryexport.cpp.o CMakeFiles/mixxx-lib.dir/src/library/export/engineprimeexportjob.cpp.o CMakeFiles/mixxx-lib.dir/src/library/export/libraryexporter.cpp.o CMakeFiles/mixxx-lib.dir/src/analyzer/plugins/analyzerkeyfinder.cpp.o CMakeFiles/mixxx-lib.dir/mixxx-lib_qmltyperegistrations.cpp.o CMakeFiles/mixxx-lib.dir/build/Debug/.rcc/qmlcache/mixxx-lib_res/qml/Mixxx/MathUtils_mjs.cpp.o CMakeFiles/mixxx-lib.dir/build/Debug/.rcc/qmlcache/mixxx-lib_res/qml/Mixxx/PlayerDropArea_qml.cpp.o CMakeFiles/mixxx-lib.dir/src/util/battery/batterylinux.cpp.o CMakeFiles/mixxx-lib.dir/src/sources/soundsourceffmpeg.cpp.o CMakeFiles/mixxx-lib.dir/src/effects/backends/lv2/lv2backend.cpp.o CMakeFiles/mixxx-lib.dir/src/effects/backends/lv2/lv2effectprocessor.cpp.o CMakeFiles/mixxx-lib.dir/src/effects/backends/lv2/lv2manifest.cpp.o CMakeFiles/mixxx-lib.dir/src/preferences/dialog/dlgprefbroadcast.cpp.o CMakeFiles/mixxx-lib.dir/src/broadcast/broadcastmanager.cpp.o CMakeFiles/mixxx-lib.dir/src/engine/sidechain/shoutconnection.cpp.o CMakeFiles/mixxx-lib.dir/src/preferences/broadcastprofile.cpp.o CMakeFiles/mixxx-lib.dir/src/preferences/broadcastsettings.cpp.o CMakeFiles/mixxx-lib.dir/src/preferences/broadcastsettings_legacy.cpp.o CMakeFiles/mixxx-lib.dir/src/preferences/broadcastsettingsmodel.cpp.o CMakeFiles/mixxx-lib.dir/src/encoder/encoderbroadcastsettings.cpp.o CMakeFiles/mixxx-lib.dir/src/sources/soundsourceopus.cpp.o CMakeFiles/mixxx-lib.dir/src/encoder/encoderopus.cpp.o CMakeFiles/mixxx-lib.dir/src/encoder/encoderopussettings.cpp.o CMakeFiles/mixxx-lib.dir/src/sources/soundsourcemp3.cpp.o CMakeFiles/mixxx-lib.dir/src/sources/soundsourcemodplug.cpp.o CMakeFiles/mixxx-lib.dir/src/preferences/dialog/dlgprefmodplug.cpp.o CMakeFiles/mixxx-lib.dir/src/controllers/hid/hidcontroller.cpp.o CMakeFiles/mixxx-lib.dir/src/controllers/hid/hiddevice.cpp.o CMakeFiles/mixxx-lib.dir/src/controllers/hid/hidenumerator.cpp.o CMakeFiles/mixxx-lib.dir/src/controllers/hid/legacyhidcontrollermapping.cpp.o CMakeFiles/mixxx-lib.dir/src/controllers/hid/legacyhidcontrollermappingfilehandler.cpp.o CMakeFiles/mixxx-lib.dir/src/controllers/bulk/bulkcontroller.cpp.o CMakeFiles/mixxx-lib.dir/src/controllers/bulk/bulkenumerator.cpp.o CMakeFiles/mixxx-lib.dir/src/vinylcontrol/vinylcontrol.cpp.o CMakeFiles/mixxx-lib.dir/src/vinylcontrol/vinylcontrolxwax.cpp.o CMakeFiles/mixxx-lib.dir/src/preferences/dialog/dlgprefvinyl.cpp.o CMakeFiles/mixxx-lib.dir/src/vinylcontrol/vinylcontrolsignalwidget.cpp.o CMakeFiles/mixxx-lib.dir/src/vinylcontrol/vinylcontrolmanager.cpp.o CMakeFiles/mixxx-lib.dir/src/vinylcontrol/vinylcontrolprocessor.cpp.o CMakeFiles/mixxx-lib.dir/src/vinylcontrol/steadypitch.cpp.o CMakeFiles/mixxx-lib.dir/src/engine/controls/vinylcontrolcontrol.cpp.o CMakeFiles/mixxx-lib.dir/src/sources/soundsourcewv.cpp.o src/proto/CMakeFiles/mixxx-proto.dir/beats.pb.cc.o src/proto/CMakeFiles/mixxx-proto.dir/headers.pb.cc.o src/proto/CMakeFiles/mixxx-proto.dir/keys.pb.cc.o src/proto/CMakeFiles/mixxx-proto.dir/skin.pb.cc.o src/proto/CMakeFiles/mixxx-proto.dir/waveform.pb.cc.o

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

in https://www.qt.io/blog/qml-modules-in-qt-6.2 they have
target_link_libraries(main_program PRIVATE extra_moduleplugin)
where main_program is the the binary, mixxx in our case.
Maybe there is something messed when linking to a library.

@Swiftb0y
Copy link
Member

@daschuer
Copy link
Member

If I remove the line res/qml/main.qml:2 I get:

warning [Main] file:///home/sperry/workspace/mixxxqt6/res/qml/main.qml:34:17: Type Skin.Button unavailable
warning [Main] file:///home/sperry/workspace/mixxxqt6/res/qml/Button.qml:99:9: Type Glow unavailable
warning [Main] qrc:/qt-project.org/imports/Qt5Compat/GraphicalEffects/Glow.qml:53:1: module "Qt5Compat.GraphicalEffects.private" is not installed
critical [Main] Failed to load QML file "/home/sperry/workspace/mixxxqt6/res/qml/main.qml"

Maybe I am missing a private package?

@Holzhaus
Copy link
Member Author

If I remove the line res/qml/main.qml:2 I get:

warning [Main] file:///home/sperry/workspace/mixxxqt6/res/qml/main.qml:34:17: Type Skin.Button unavailable
warning [Main] file:///home/sperry/workspace/mixxxqt6/res/qml/Button.qml:99:9: Type Glow unavailable
warning [Main] qrc:/qt-project.org/imports/Qt5Compat/GraphicalEffects/Glow.qml:53:1: module "Qt5Compat.GraphicalEffects.private" is not installed
critical [Main] Failed to load QML file "/home/sperry/workspace/mixxxqt6/res/qml/main.qml"

Maybe I am missing a private package?

Looks like your Qt6 install is broken.

@daschuer
Copy link
Member

I have now added the Qt5Compat.GraphicalEffects.private.
Unfortunately the original issue still persists.

@daschuer
Copy link
Member

When I change it to PUBLIC, it works.
target_link_libraries(mixxx-lib PUBLIC mixxx-libplugin)

Now it complains about

warning [Main] QQmlApplicationEngine failed to load component
warning [Main] file:///home/sperry/workspace/mixxxqt6/res/qml/main.qml:104:9: Type Skin.DeckRow unavailable
warning [Main] file:///home/sperry/workspace/mixxxqt6/res/qml/DeckRow.qml:70:5: Type Deck unavailable
warning [Main] file:///home/sperry/workspace/mixxxqt6/res/qml/Deck.qml:38:5: Type Skin.DeckInfoBar unavailable
warning [Main] file:///home/sperry/workspace/mixxxqt6/res/qml/DeckInfoBar.qml:74:9: MixxxControls.Spinny is not a type
critical [Main] Failed to load QML file "/home/sperry/workspace/mixxxqt6/res/qml/main.qml"

@Holzhaus
Copy link
Member Author

When I change it to PUBLIC, it works. target_link_libraries(mixxx-lib PUBLIC mixxx-libplugin)

Now it complains about

warning [Main] QQmlApplicationEngine failed to load component
warning [Main] file:///home/sperry/workspace/mixxxqt6/res/qml/main.qml:104:9: Type Skin.DeckRow unavailable
warning [Main] file:///home/sperry/workspace/mixxxqt6/res/qml/DeckRow.qml:70:5: Type Deck unavailable
warning [Main] file:///home/sperry/workspace/mixxxqt6/res/qml/Deck.qml:38:5: Type Skin.DeckInfoBar unavailable
warning [Main] file:///home/sperry/workspace/mixxxqt6/res/qml/DeckInfoBar.qml:74:9: MixxxControls.Spinny is not a type
critical [Main] Failed to load QML file "/home/sperry/workspace/mixxxqt6/res/qml/main.qml"

Okay, I changed it to public, please retry: https://github.com/mixxxdj/mixxx/compare/88320b2684a89fbedbc149528a4b6dbbc4a7a4c6..f3bfd9e434d656c78fdac4bf1bc572421e77e053

@daschuer
Copy link
Member

That was already the output with the PUBLIC linking.

@Holzhaus
Copy link
Member Author

Holzhaus commented Jan 31, 2022

That was already the output with the PUBLIC linking.

Both modules? I thought you only changed the first one.

@daschuer
Copy link
Member

Yes, that was for both.

Copy link
Contributor

@uklotzde uklotzde left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

With this patch I could build and run Mixxx on Fedora:

https://src.fedoraproject.org/rpms/qt6-qt5compat/pull-request/1

Update: Merged!

@uklotzde
Copy link
Contributor

uklotzde commented Jan 31, 2022

That was already the output with the PUBLIC linking.

Why do we need PUBLIC linking? Fedora also works fine with PRIVATE linking, just tested it.

I suppose the custom-built and untested Qt 6 libraries cause issues here. We should not introduce any workarounds for a broken environment. Therefore I recommend to undo these changes until we know the actual cause for the failures.

@Swiftb0y
Copy link
Member

Swiftb0y commented Jan 31, 2022

I was able to successfully build on fedora. However I encountered a bunch of runtime issues. Most of which come from the fact that some players don't seem to get created:

warning [Main] PlayerManagerProxy failed to find player for group "[Channel4]"
warning [Main] PlayerManagerProxy failed to find player for group "[Channel3]"
warning [Main] PlayerManagerProxy failed to find player for group "[Sampler5]"

The first few players and samplers work fine, but the "optional" ones don't work.

This commit replaces the legacy way to register C++ QML types with the
new "declarative" API using `QML_ELEMENT`/`QML_NAMED_ELEMENT(<name>)`
that was first introduced in Qt 5.15 [1].
As of Qt 6.2, this is now the recommended way to set up proper QML
modules and also takes care of generating `qmldir`/`qmltypes` files that
are necessary when linting QML files using `qmllint` [2].
We now make use of the new CMake functions [3] to take care of this.

[1]: https://www.qt.io/blog/qml-type-registration-in-qt-5.15
[2]: https://www.qt.io/blog/qml-modules-in-qt-6.2
[3]: https://doc.qt.io/qt-6/qt-add-qml-module.html
@Holzhaus
Copy link
Member Author

We should not introduce any workarounds for a broken environment. Therefore I recommend to undo these changes until we know the actual cause for the failures.

Reverted: https://github.com/mixxxdj/mixxx/compare/f3bfd9e434d656c78fdac4bf1bc572421e77e053..11fd27f2c1e4877a5f7c7452960fdd555ade75c9

@Holzhaus
Copy link
Member Author

Holzhaus commented Jan 31, 2022

However I encountered a bunch of runtime issues.

Yes, that issue probably already happend with Qt 5 I guess.

And there are some other problems too, for example the JavaScript import is not working. I opened a Qt upstream bug: https://bugreports.qt.io/browse/QTBUG-100326

I think we can resolve them in follow-up PRs.

@uklotzde
Copy link
Contributor

Merge as a first baseline? Everything else could be done later.

@Holzhaus
Copy link
Member Author

Yes, I agree.

@uklotzde uklotzde merged commit b648a88 into mixxxdj:main Jan 31, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Done
Status: Done
Development

Successfully merging this pull request may close these issues.

5 participants