Development Environment for MS3.7

• Jan 13, 2025 - 19:12

Are there any details on how to set up a development environment for MS3.7 Evolution on Windows? If so, where can I find them?

[Update] Added the wiki link here so that it's at the top of this thread.

https://github.com/Jojo-Schmitz/MuseScore/wiki/Setting-Up-a-Development…


Comments

In reply to by yonah_ag

And it actually needs to be done by someone setting it up from scatch, as documenting a setup long after the fact is not going to work well. Like I can only confirm or deny the need of certain things, but my setup is several yeras old and I just don't remember everything any more. I do remember though to having modified the developers' handbooks (indeed both) if and when I found missing or wrong steps.

In reply to by Jojo-Schmitz

Yes, that makes sense. I've already had a few re-installs of several packages so, probably next weekend, I'm going to uninstall everything and start again, looking for a minimum installation for Win 64 builds. (I still have Jack and the prerequisites package to play with). Is it worth doing the whole setup before adding my downloaded repo?

In reply to by Jojo-Schmitz

I'm using VS for master and QtCreator/MinGW for 3.x, mainly to keep them appart more easily. But QtCreator/MSVC should be possible too, for both (in the end on GitHub CI MSVC is used anyway), and (at least the former) even needed when it comes to deal with (i.e. modify) .ui files. I've so far just been to stupid and lazy to get this set up.

That is interesting for me as well.
I know I already said that some years ago and never really went up to a PR, but I 'm thinking helping 3.7 dev if possible.

In reply to by frfancha

That's exactly my situation. I have a simple enhancement to add but I've put off setting up a development environment as it looks quite a daunting process but it's now time to take the plunge. What OS are you using?

If that goes well then I hope to add some more developments to 3.7, particularly in the area of the Plugin API.

In reply to by Jojo-Schmitz

I'll stick with 5.15.2 since my installed 3.7 is working fine.

Progress so far:

• VS2022 installed
• Cloned your GitHub MuseScore 3.x branch to my GitHub account as MS3.7
• Cloned my GitHub MS3.7 repo to my local computer.

I am documenting with screenshots as I go along. Next I want to familiarise myself with VS2022 and the codebase structure; then I'll install the specified prerequisites and do a test compile without any source mods.

Do I have to take care not to overwrite my installed MS3.7 when I compile?

Finally got Qt5.15.2 installed.
It's a very slow download; seems to be throttling the bandwidth but not sure.
Any way, I now get this error message when starting VS2022.
(Also show are my Qt versions list from VS2022).
Any ideas?

QtVST.png

1.4 Qt bin folder added to path. CMake now stops complaining about it being awol.

1.6 7-Zip Already had installed, (for MS3.7 extractions), but I recall it being a simple install.

1.7 Dependencies
Dependencies01.png
Downloaded OK but I don't appear to have a checkout folder under my MuseScore 3.7 folder:

Dependencies02.png

I have searched all sub-folders of the above and checkout is definitely not there.

@Yonah I'm finally starting the same journey.
Have you updated the existing guide, created a new doc, or should I just follow the existing guide for now?

In reply to by frfancha

The existing guide is a bit confusing as it has some MS4 instuctions included but it is usable. Use everything that is for 3.6.2 but "master" means MS4.

My experience suggests that some options may not be needed as separate installation, e.g. CMake which is already part of Qt and also VS.

I will update Jojo's new Wiki for 3.7 once I have got everything running.
You can follow my progress in the above comments and just have a go. Do make sure to be selective in your Qt options as the default can generate a 50+ GB installation.

I feel that I must be nearly ready now but there are still a few teething troubles.

In reply to by Jojo-Schmitz

I was surprised to see (2) in this list:

wiki01.png

I thought that I would only see (1) in this list and that I would reference (2) from (1) inside the Markdown. So, is it expected that (2) would also show in this page list or have I done something wrong? I am not familiar with GitHub wiki editing.

In reply to by Jojo-Schmitz

Default fork option of github: calling "my" repo MuseScore, and copying branch 3.x only
=> ok to call it MuseScoreEvolution or the name should rather be MuseScore ?
=> is 3.X indeed "the" branch to copy ?

In reply to by yonah_ag

I'm quite familiar with GIT Extensions and like to use that one.
I know GIT is very well integrated with Visual Studio (and Visual Studio Code) and that GIT Extensions is not really necessary anymore but old habits...
I also like that by being in GIT Extensions I know all I'm doing is taking care of GIT stuff, and not GIT stuff and also a bit of coding

In reply to by yonah_ag

If you have never heard of GIT, then I would really recommend you install GIT Extensions.
You will need to use GIT (a lot) to contribute to the source code, and GIT Extensions is a visual interface around the GIT commands that will allow you to be very quickly fully operational in GIT without any need to remember their names and options.
It also makes commit preparation easier.

Well I could't find any output from "CMake Generation Finished" so I had a look on the Build menu and found an option called Build All so I thought I'd give it a try. It ran for about 5 minutes and generated a process log ending with this:

BuildAll.png

There are lots of warnings and it seems to have stopped on step [868]/[869].
Any ideas what to try next?

I'm removing compoments from Qt to find a minimum installation for Windows. So far Qt's CMake has gone the distance because VS2022 has its own CMake and it works.

Are Qt Creator and QT Design Studio any use? I can open a MuseScore QML plugin with Creator and the editor is much better than the MS built-in one but Notepad++ is just as good. There doesn't seem to be any way to run the plugin from Qt Creator, (to test the UI layout), so it looks redundant.

Qt 5.15.2
I have wiped and re-installed Qt 5.15.2 and made a screensnip of every step of the installation. Should I include all 24 of these in the wiki or write text instructions and add only those screensnips that I think would be most useful?

In reply to by yonah_ag

@yonah_ag
Good job!
This is an instruction aimed at the minimal development environment for building an executables for 64-bits Windows, isn't it?

I have roughly understood the procedure with "Overview" and "Download Software Components".
At later, following that instruction, I will try to prepare a development environment in my clean environment, too.

In reply to by knoike

Yes, it's almost minimal and is for 64-bit Windows. (I don't have access to any other OS). I have included CMake from Qt even though Visual Studio has it built in because there may be some use for it, (based on Jojo's feedback).

I'll add sections 2 and 3 tomorrow to complete the guide.

In reply to by Jojo-Schmitz

Sorry, I don't quite follow.

I have extracted the 7zip file in 1.2.5 to ensure that everything is ready for the source code. In section 2 I will fork your repo; clone to local PC; and move the extracted dependencies folder into the cloned repo.

I can change this order if it makes more sense but I don't understand the issue.

In reply to by Jojo-Schmitz

Busy to do that.
Not sure what to do at step 2.4: In Visual Studio I have menu Extensions => Manage Extensions...
Where I find "Qt Visual Studio Tools" that I can install
But the look of that window is not at all like the screen capture
So checking before doing something incorrect...

In reply to by frfancha

There is just no option "QT" in the extensions menu at all.
I'm wondering, maybe you forgot the "Install QT Extensions" step in VStudio, and jumped directly to the configure step that comes after?

In reply to by yonah_ag

That's very kind of you to take the time to do that, but let me try it here then.
Ok, so indeed one needs to Intall the extension "QT Vs Tools" before being able to configure it.
Once installed, the options panel is exactly as your screen capture.
However the button "Auto detect" does nothing here.
To get the list I had to click on "Import" and manually navigate to the Qt 5.2.12 folder
Then I'm getting a much longer list than yours:
QT Vs Tools Options.jpg

I will change the default to your choice 2019 64

In reply to by frfancha

The Auto detect failure may have been because of the missing path step. Maybe you selected more install options in Qt to get such a long list. I only want for those that started with 5.15.2_msvc then I set the most recent one of those as the default.

In reply to by yonah_ag

Step 3.1 now

Opening Musescore folder from VStudio gives:

CMake Error at build/functions.cmake:90 (message):
Unable to find Qt (cmd: qmake)
Please make sure Qt is installed and available in your PATH environment
variable.

So I suppose the "default" installation of Qt is not "enough", it must be manually added to the path ??

In reply to by Jojo-Schmitz

Ok, last instruction says:
Your personal version of MuseScore 3.7 Evolution is ready to run!
True! Success!
Now... "personal" is probably slightly overrated as there is not a single line of personal code - yet.

My goal is to implement the play panel suggested by Scorster, as this is exactly what I need.

I'll see if I succeed or if that too ambitious for a first "project".

In reply to by frfancha

Thanks for closing the gaps. I remember modifying the path now. Oops!

Once things are up and running it's easy to forget some steps. I should've kept a closer eye on my 24 screensnips, then I wouldn't have missed those steps out. Feel free to update the wiki, but no pressure, I'll update it when I get a moment.

Now I need to find my way around the source code. There's a very basic guide in Jojo's wiki but it'll take a lot more digging to get a good mental picture of how it all fits together. A two 'view' document would be nice: one view answering, "Looking in the solution, what does this .cpp do?" and another view answering, "Running MuseScore, where do I find the .cpp and .ui which implement this particular function, feature, option, setting?".

(Another part of the wiki perhaps? I'll start taking notes as I go along; maybe adding them to my Excel mscx file explorer).

In reply to by yonah_ag

@yonah_ag
I tried working on it following your instructions and got almost the same situation as frfancha.

0/
I could not fork "master" branch, so I forked "3.x" branch.
https://musescore.org/en/node/373898#comment-1278440

1/
Installation of the extension "Qt VS Tools" was required.

2/
In Qt Versions of "Qt VS Tools", some settings was required.
[Import] -> set folder to "C:\Qt\"
and
Change Default "5.15.2_msvc2015_64" to "5.15.2_msvc2019_64" .
(Choose "5.15.2_msvc2019_64" and press [Default] button.)

3/
Adding "C:\Qt\5.15.2\msvc2019_64\bin" to the environment variable PATH was required.
(I added it to PATH for USER not for SYSTEM.)

I could build and run the personal(self-builded) version of Evolution!
Thank you for your great job!

Require_Qt_VS_Tools.png

Before_change_default.png

In reply to by frfancha

frfancha • Feb 2, 2025 - 20:31
My goal is to implement the play panel suggested by Scorster, as this is exactly what I need.

Nice! Is there somewhere where collaborators can chat about these developments, ask questions, see who's working on what etc?

In reply to by frfancha

@yonah_ag A GIANT thank you to yonah_ag for documenting the dev setup in Visual Studio for mS 3.7. That information will likely prove quite useful to me in the near future.

@frfancha wrote "My goal is to implement the play panel suggested by Scorster, as this is exactly what I need."

🤞🏼  Are you planning to update MS3.7's Play Panel? MS 4's? Or both?

In reply to by knoike

Re: Forking master vs. 3.x

It is the master branch of Jojo's 3.x fork.
There are other branches:

Screenshot_20250203-082827_Samsung Internet.jpg

I don't know why your screen was different but it still looks like the 3.x branch. It is not the main MuseScore master as that is now for MS4.

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