Building from source on MAC having challenges. Seeking help.

• May 6, 2024 - 11:51

Hi Everyone,

I recently started to build MuseScore on MAC. I went over the below.

  1. Built Qt6 from this wiki:
    https://wiki.qt.io/Building_Qt_6_from_Git

  2. 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 the connect function is a lambda function, instead of a pointer to a member function of DockWindow that is annotated as a slot. This seems difficult to change, because of the page 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 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:

Qt6OpenGLConfig.cmake
qt6opengl-config.cmake

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

Do you still have an unanswered question? Please log in first to post your question.