This adds the following:
* A `compile_commands` target for the ninja_build.sh script.
This generates a `compile_commands.json` file, which is used
by tools such as clangd, in a new target directory called
`build.tooldata`. Unity builds must be disabled for the database
to be complete; see [this Discord comment by Casper Jeukendrup](https://discord.com/channels/818804595450445834/939880479887327302/1001483416753143818)
for more info.
* Additionally, a configuration file for clangd has been created
to tell it to find the file in the `build.tooldata` directory.
* Add a one-line change to the workspace settings for VSCode,
telling it where to find the Uncrustify config.
AppImage resources are now installed to paths like:
bin/mscore4portable
share/applications/org.musescore.MuseScore4portable.desktop
share/icons/hicolor/SIZE/mimetypes/application-x-musescore4portable.png
share/mime/packages/musescore4portable.xml
share/man/man1/mscore4portable.1.gz
This enables MuseScore 4 to be installed alongside MuseScore 3 on Linux.
The binary name is now `mscore4portable` instead of `mscore-portable`.
The hyphen was removed to prevent it appearing in the AppStream
component ID, where its use is discouraged for compatibility reasons.
To avoid MuseScore 4.0 being called "MuseScore 4.04portable", it was
necessary to change the app name in the .desktop file. The new name
is "MuseScore 4.0 Portable", with "Portable" there to distinguish our
AppImage from distribution packages when displayed in the OS launcher.
The suffix is necessary to allow nightly builds to be installed
alongside release builds without conflicts. For example, it is
necessary for both builds to appear in:
- The system's application launcher menu.
- The file manager's right-click "Open with..." menu.
- The user's $PATH for command line usage.