Building from source on MAC having challenges. Seeking help.
Hi Everyone,
I recently started to build MuseScore on MAC. I went over the below.
-
Built Qt6 from this wiki:
https://wiki.qt.io/Building_Qt_6_from_Git -
Built MuseScore using GitHub downloaded source.
The build completed with some warnings but I was able to find the mscore app.
After playing with it and watching it to crash a few times, I debugged into it and found the DockView init was having a problem resulted in the below error message.
"QObject::connect: Unique connection requires the slot to be a pointer to a member function of a QObject subclass."
This leads me to think the DockView is not a QWidget after some searching.
So, I believe my problem still lies around some version issues. Could someone please give me some pointers?
Sincerely,
Student_T
Comments
MuseScore's master branch currently needs Qt 6.2.x in order to work correctly. You may have used a newer version, which could indeed cause a crash on launch because of behaviour changes in Qt 6.3+.
None of the stuff in
src/framework/dockwindow
is related to Qt Widgets, but these things are QQuickItems. The problem is that the 4th argument passed to theconnect
function is a lambda function, instead of a pointer to a member function ofDockWindow
that is annotated as a slot. This seems difficult to change, because of thepage
argument that would need to be captured by the lambda and I don't immediately see how that could be done with only a member function and not a lambda.Anyway, when using the correct version of Qt, that shouldn't be a problem for now, and we're going to have to rework the docking system quite a bit anyway, so this code might disappear.
In reply to MuseScore's master branch… by cbjeukendrup
Thank you so very much for the advice! I finally seem to able to build Qt 6.2.8 on my M3 box. My configuration goes like:
cmake -DCMAKE_BUILD_TYPE=Debug -G Ninja -DCMAKE_OSX_DEPLOYMENT_TARGET=10.15 -DCMAKE_PREFIX_PATH=“/usr/local/Qt-6.2.8:/Users/usr1/Document/my_llvm” ..
Following this line, I did the famous
cmake --build .
And, to my surprise, my excellent M3 box took a long time to do the build.
Afterward, I did the below.
cmake --install .
To deploy to /usr/local/Qt_6.2.8
However, when I went back to carry on my MuseScore build, which I didn't get any older version from Git or whatever, I got the following errors now.
CMake Error at buildscripts/cmake/FindQt6.cmake:50 (find_package):
By not providing "FindQt6OpenGL.cmake" in CMAKE_MODULE_PATH this project
has asked CMake to find a package configuration file provided by
"Qt6OpenGL", but CMake did not find one.
Could not find a package configuration file provided by "Qt6OpenGL" with
any of the following names:
Add the installation prefix of "Qt6OpenGL" to CMAKE_PREFIX_PATH or set
"Qt6OpenGL_DIR" to a directory containing one of the above files. If
"Qt6OpenGL" provides a separate development package or SDK, be sure it has
been installed.
Call Stack (most recent call first):
CMakeLists.txt:146 (include)
I took the below advice and fired the command as following.
cmake -DMUSESCORE_USE_OPENGL=OFF -G Ninja CMakeLists.txt
Can you please further point me in the right direction?
Sincerely,
StudentT_101
In reply to Thank you so very much for… by Student_T101
That seems to mean that your build of Qt doesn't contain the OpenGL module. Perhaps it wasn't built because some dependencies are missing on your computer. On the internet, I found this, which might be useful: https://github.com/forderud/QtWasm/issues/8