Cleanup the build process and use new Qt5 cmake integration

• Apr 14, 2016 - 09:50
Reported version
3.0
Type
Functional
Severity
S4 - Minor
Status
closed
Project
Tags

Our build process has evolved organically in the past 10 years... It would be good to review the full build process, especially in light of http://doc.qt.io/qt-5/cmake-manual.html

Such a refactoring could also be a good time to :
* Add the ability to build with MSVC on Windows.
* Move our nightly build process to travis (for mac osx) and appveyor (for windows).
See #106071: Migrate MuseScore windows nightlies from a dedicated server to appveyor
See #106076: Migrate MuseScore MacOSX nightlies from a dedicated server to travis


Comments

regarding QWebEngine, it would be nice to have a compile-time switch, probably via the CMakeLists, which could build musescore without the QWebEngine components (i.e. no start center). Debian doesn't seem to want to support qtwebengine package:

https://www.phoronix.com/scan.php?page=news_item&px=QtWebEngine-Mess-De…

Which means that I imagine Debian (and all derived distros) will have trouble releasing new versions of musescore. I'm also going to probably resort to self-compiling the arm version of qwebengine. (Note that arm debian experimental currently has most qt 5.6 libraries except qwebengin.)

Also kxstudio does static builds, and according to https://github.com/KXStudio/Repository/issues/35 kxstudio can not deal with the web components (I guess because must be hard to build web components as static).

I was also going to say all the nested if/else are hard to figure out on first read...is there possibly a simpler more readable way to talk to CMake?