Compilation of MuseScore with Visual Studio Community (MSVC) Release
We are pleased to announce a big step forward in compilation under Visual Studio and MSVC respectively. Compilation under Visual Studio Community is now available and fully supported.
Why do we need it?
MuseScore 3.0 is based on the latest Qt version. Unfortunately, QtWebKit which is used for MuseScore Connect is not presented in QT since version 5.4. So we migrated from QtWebKit (QWebView in particular) to QtWebEngine. Unfortunately, QtWebEngine team doesn’t maintain libs for MinGW due to the difficulties in supporting Chromium with the toolchain (https://bugreports.qt.io/browse/QTBUG-42725). So we implemented MSVC compilation for MuseScore to allow using MuseScore Connect on Windows.
Pros and cons
Visual Studio Community is free IDE software which can be a real alternative to the QtCreator.
MSVC compilation is faster than MinGW compilation (about 23% faster). Moreover, the most significant improvement is the incredibly faster linkage, so changing the code in Visual Studio and starting debugger takes few seconds comparing to more than a minute in QtCreator.
We are using AppVeyor CI to build and deploy Windows packages. It is free for open source projects but doesn’t allow several parallel jobs, so we had to limit building MuseScore only with MSVC, in particular, using Visual Studio 2017 (MSVC 15).
Note, QtWebEngine is disabled under MinGW compilation. You can still keep working in QtCreator with MinGW compiler. The core team plan to support full compatibility with mingw compiler for half a year and then drop it, except if someone in the community is committed to supporting it.
Check out the instruction and build MuseScore with Visual Studio https://musescore.org/en/handbook/developers-handbook/compilation/compi….
We thank afprado for great work done to start this significant migration to MSVC. His huge contribution allows us to get things done brick by brick. We also want to thank Jojo for thorough testing the instructions and big input in fixing annoying warnings.
Help us to make MuseScore better
Compilation on MSVC still shows a lot of warnings which are important and show real issues. Some warnings relate to third-party components which we won’t fix, but some of them are about real issues in the MuseScore code. Feel free to submit pull requests with the fixes.
Let's make MuseScore number one together!