MuseScore/README.md

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

82 lines
3.1 KiB
Markdown
Raw Normal View History

ONE BUILD SCRIPT TO RULE THEM ALL! Adds a cross-platform script that automates the process of creating a build directory and compiling MuseScore. Run the script like this: $ cmake -P build.cmake [args...] This works in all shells on all platforms. Developers with a Unix-like environment (including Git Bash on Windows) can also use: $ ./build.cmake [args...] Build step arguments: clean Delete the build directory. configure Create a build directory and run CMake inside it. build Compile code using the native build tool. install Copy compiled files to final destinations. run Run the installed program. Each step implies all previous steps except 'clean' and 'run', which are only performed when explictly requested. If no steps are given then the configure, build, and install steps are performed by default. All other arguments are passed to CMake during configuration. Example command: $ cmake -P build.cmake -GNinja -DCMAKE_BUILD_TYPE=Debug $ cmake -P build.cmake -GNinja -DCMAKE_BUILD_TYPE=Debug run -F This creates and installs a Debug build using the Ninja generator, and then runs the compiled program with the -F option to perform a factory reset, thereby ensuring it is in the initial state. Overrides: If you frequently need to build with non-default settings then you can create a file build_overrides.cmake with all your personal settings to avoid having to pass them in on the command line each time. # build_overrides.cmake example file set(ENV{QTDIR} "$ENV{HOME}/Qt/5.15.2/gcc_64") list(APPEND CONFIGURE_ARGS -GNinja -DCMAKE_BUILD_TYPE=Debug) This file is ignored by Git to prevent it being shared with other developers, but you could always copy another file into its place (e.g. during a CI build on GitHub Actions).
2021-02-28 23:23:39 +01:00
![MuseScore](assets/musescore_logo_full.png)
Music notation and composition software
2017-10-20 02:29:39 +02:00
2021-04-15 16:16:23 +02:00
[![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0.en.html)
2013-09-30 10:14:15 +02:00
2018-02-17 18:57:49 +01:00
MuseScore is an open source and free music notation software. For support, contribution, and bug reports visit MuseScore.org. Fork and make pull requests!
2016-09-29 10:08:30 +02:00
2013-09-30 10:14:15 +02:00
## Features
- WYSIWYG design, notes are entered on a "virtual notepaper"
- TrueType font(s) for printing & display allows for high quality scaling to all sizes
- Easy & fast note entry
- Many editing functions
- MusicXML import/export
- MIDI (SMF) import/export
- MuseData import
- MIDI input for note entry
- Integrated sequencer and software synthesizer to play the score
- Print or create pdf files
2013-09-30 10:14:15 +02:00
## More info
- [MuseScore Homepage](https://musescore.org)
- [MuseScore Git workflow instructions](https://musescore.org/en/developers-handbook/git-workflow)
- [How to compile MuseScore?](https://musescore.org/en/developers-handbook/compilation)
2013-09-30 10:14:15 +02:00
## License
2021-04-15 16:16:23 +02:00
MuseScore is licensed under GPL version 3.0. See [LICENSE.GPL](https://github.com/musescore/MuseScore/blob/master/LICENSE.GPL) in the same directory.
2013-09-30 10:14:15 +02:00
## Packages
2021-01-26 15:46:06 +01:00
See [Code Structure on Wiki](https://github.com/musescore/MuseScore/wiki/CodeStructure)
2020-10-29 15:38:14 +01:00
2013-09-30 10:14:15 +02:00
## Building
**Read the developer handbook for a [complete build walkthrough](https://musescore.org/en/developers-handbook/compilation) and a list of dependencies.**
2013-09-30 10:14:15 +02:00
### Getting sources
If using git to download repo of entire code history, type:
2013-12-31 10:52:04 +01:00
git clone https://github.com/musescore/MuseScore.git
cd MuseScore
2013-09-30 10:14:15 +02:00
Otherwise, you can just download the latest source release tarball from the [Releases page](https://github.com/musescore/MuseScore/releases), and then from your download directory type:
2013-12-31 10:52:04 +01:00
tar xzf MuseScore-x.x.x.tar.gz
cd MuseScore-x.x.x
2013-09-30 10:14:15 +02:00
### Release Build
ONE BUILD SCRIPT TO RULE THEM ALL! Adds a cross-platform script that automates the process of creating a build directory and compiling MuseScore. Run the script like this: $ cmake -P build.cmake [args...] This works in all shells on all platforms. Developers with a Unix-like environment (including Git Bash on Windows) can also use: $ ./build.cmake [args...] Build step arguments: clean Delete the build directory. configure Create a build directory and run CMake inside it. build Compile code using the native build tool. install Copy compiled files to final destinations. run Run the installed program. Each step implies all previous steps except 'clean' and 'run', which are only performed when explictly requested. If no steps are given then the configure, build, and install steps are performed by default. All other arguments are passed to CMake during configuration. Example command: $ cmake -P build.cmake -GNinja -DCMAKE_BUILD_TYPE=Debug $ cmake -P build.cmake -GNinja -DCMAKE_BUILD_TYPE=Debug run -F This creates and installs a Debug build using the Ninja generator, and then runs the compiled program with the -F option to perform a factory reset, thereby ensuring it is in the initial state. Overrides: If you frequently need to build with non-default settings then you can create a file build_overrides.cmake with all your personal settings to avoid having to pass them in on the command line each time. # build_overrides.cmake example file set(ENV{QTDIR} "$ENV{HOME}/Qt/5.15.2/gcc_64") list(APPEND CONFIGURE_ARGS -GNinja -DCMAKE_BUILD_TYPE=Debug) This file is ignored by Git to prevent it being shared with other developers, but you could always copy another file into its place (e.g. during a CI build on GitHub Actions).
2021-02-28 23:23:39 +01:00
To compile MuseScore for release, type:
2013-09-30 10:14:15 +02:00
ONE BUILD SCRIPT TO RULE THEM ALL! Adds a cross-platform script that automates the process of creating a build directory and compiling MuseScore. Run the script like this: $ cmake -P build.cmake [args...] This works in all shells on all platforms. Developers with a Unix-like environment (including Git Bash on Windows) can also use: $ ./build.cmake [args...] Build step arguments: clean Delete the build directory. configure Create a build directory and run CMake inside it. build Compile code using the native build tool. install Copy compiled files to final destinations. run Run the installed program. Each step implies all previous steps except 'clean' and 'run', which are only performed when explictly requested. If no steps are given then the configure, build, and install steps are performed by default. All other arguments are passed to CMake during configuration. Example command: $ cmake -P build.cmake -GNinja -DCMAKE_BUILD_TYPE=Debug $ cmake -P build.cmake -GNinja -DCMAKE_BUILD_TYPE=Debug run -F This creates and installs a Debug build using the Ninja generator, and then runs the compiled program with the -F option to perform a factory reset, thereby ensuring it is in the initial state. Overrides: If you frequently need to build with non-default settings then you can create a file build_overrides.cmake with all your personal settings to avoid having to pass them in on the command line each time. # build_overrides.cmake example file set(ENV{QTDIR} "$ENV{HOME}/Qt/5.15.2/gcc_64") list(APPEND CONFIGURE_ARGS -GNinja -DCMAKE_BUILD_TYPE=Debug) This file is ignored by Git to prevent it being shared with other developers, but you could always copy another file into its place (e.g. during a CI build on GitHub Actions).
2021-02-28 23:23:39 +01:00
cmake -P build.cmake -DCMAKE_BUILD_TYPE=Release
2013-12-31 10:52:04 +01:00
ONE BUILD SCRIPT TO RULE THEM ALL! Adds a cross-platform script that automates the process of creating a build directory and compiling MuseScore. Run the script like this: $ cmake -P build.cmake [args...] This works in all shells on all platforms. Developers with a Unix-like environment (including Git Bash on Windows) can also use: $ ./build.cmake [args...] Build step arguments: clean Delete the build directory. configure Create a build directory and run CMake inside it. build Compile code using the native build tool. install Copy compiled files to final destinations. run Run the installed program. Each step implies all previous steps except 'clean' and 'run', which are only performed when explictly requested. If no steps are given then the configure, build, and install steps are performed by default. All other arguments are passed to CMake during configuration. Example command: $ cmake -P build.cmake -GNinja -DCMAKE_BUILD_TYPE=Debug $ cmake -P build.cmake -GNinja -DCMAKE_BUILD_TYPE=Debug run -F This creates and installs a Debug build using the Ninja generator, and then runs the compiled program with the -F option to perform a factory reset, thereby ensuring it is in the initial state. Overrides: If you frequently need to build with non-default settings then you can create a file build_overrides.cmake with all your personal settings to avoid having to pass them in on the command line each time. # build_overrides.cmake example file set(ENV{QTDIR} "$ENV{HOME}/Qt/5.15.2/gcc_64") list(APPEND CONFIGURE_ARGS -GNinja -DCMAKE_BUILD_TYPE=Debug) This file is ignored by Git to prevent it being shared with other developers, but you could always copy another file into its place (e.g. during a CI build on GitHub Actions).
2021-02-28 23:23:39 +01:00
If something goes wrong, append the word "clean" to the above command to delete the build subdirectory:
2013-09-30 10:14:15 +02:00
ONE BUILD SCRIPT TO RULE THEM ALL! Adds a cross-platform script that automates the process of creating a build directory and compiling MuseScore. Run the script like this: $ cmake -P build.cmake [args...] This works in all shells on all platforms. Developers with a Unix-like environment (including Git Bash on Windows) can also use: $ ./build.cmake [args...] Build step arguments: clean Delete the build directory. configure Create a build directory and run CMake inside it. build Compile code using the native build tool. install Copy compiled files to final destinations. run Run the installed program. Each step implies all previous steps except 'clean' and 'run', which are only performed when explictly requested. If no steps are given then the configure, build, and install steps are performed by default. All other arguments are passed to CMake during configuration. Example command: $ cmake -P build.cmake -GNinja -DCMAKE_BUILD_TYPE=Debug $ cmake -P build.cmake -GNinja -DCMAKE_BUILD_TYPE=Debug run -F This creates and installs a Debug build using the Ninja generator, and then runs the compiled program with the -F option to perform a factory reset, thereby ensuring it is in the initial state. Overrides: If you frequently need to build with non-default settings then you can create a file build_overrides.cmake with all your personal settings to avoid having to pass them in on the command line each time. # build_overrides.cmake example file set(ENV{QTDIR} "$ENV{HOME}/Qt/5.15.2/gcc_64") list(APPEND CONFIGURE_ARGS -GNinja -DCMAKE_BUILD_TYPE=Debug) This file is ignored by Git to prevent it being shared with other developers, but you could always copy another file into its place (e.g. during a CI build on GitHub Actions).
2021-02-28 23:23:39 +01:00
cmake -P build.cmake -DCMAKE_BUILD_TYPE=Release clean
2013-09-30 10:14:15 +02:00
ONE BUILD SCRIPT TO RULE THEM ALL! Adds a cross-platform script that automates the process of creating a build directory and compiling MuseScore. Run the script like this: $ cmake -P build.cmake [args...] This works in all shells on all platforms. Developers with a Unix-like environment (including Git Bash on Windows) can also use: $ ./build.cmake [args...] Build step arguments: clean Delete the build directory. configure Create a build directory and run CMake inside it. build Compile code using the native build tool. install Copy compiled files to final destinations. run Run the installed program. Each step implies all previous steps except 'clean' and 'run', which are only performed when explictly requested. If no steps are given then the configure, build, and install steps are performed by default. All other arguments are passed to CMake during configuration. Example command: $ cmake -P build.cmake -GNinja -DCMAKE_BUILD_TYPE=Debug $ cmake -P build.cmake -GNinja -DCMAKE_BUILD_TYPE=Debug run -F This creates and installs a Debug build using the Ninja generator, and then runs the compiled program with the -F option to perform a factory reset, thereby ensuring it is in the initial state. Overrides: If you frequently need to build with non-default settings then you can create a file build_overrides.cmake with all your personal settings to avoid having to pass them in on the command line each time. # build_overrides.cmake example file set(ENV{QTDIR} "$ENV{HOME}/Qt/5.15.2/gcc_64") list(APPEND CONFIGURE_ARGS -GNinja -DCMAKE_BUILD_TYPE=Debug) This file is ignored by Git to prevent it being shared with other developers, but you could always copy another file into its place (e.g. during a CI build on GitHub Actions).
2021-02-28 23:23:39 +01:00
Then try running the first command again.
ONE BUILD SCRIPT TO RULE THEM ALL! Adds a cross-platform script that automates the process of creating a build directory and compiling MuseScore. Run the script like this: $ cmake -P build.cmake [args...] This works in all shells on all platforms. Developers with a Unix-like environment (including Git Bash on Windows) can also use: $ ./build.cmake [args...] Build step arguments: clean Delete the build directory. configure Create a build directory and run CMake inside it. build Compile code using the native build tool. install Copy compiled files to final destinations. run Run the installed program. Each step implies all previous steps except 'clean' and 'run', which are only performed when explictly requested. If no steps are given then the configure, build, and install steps are performed by default. All other arguments are passed to CMake during configuration. Example command: $ cmake -P build.cmake -GNinja -DCMAKE_BUILD_TYPE=Debug $ cmake -P build.cmake -GNinja -DCMAKE_BUILD_TYPE=Debug run -F This creates and installs a Debug build using the Ninja generator, and then runs the compiled program with the -F option to perform a factory reset, thereby ensuring it is in the initial state. Overrides: If you frequently need to build with non-default settings then you can create a file build_overrides.cmake with all your personal settings to avoid having to pass them in on the command line each time. # build_overrides.cmake example file set(ENV{QTDIR} "$ENV{HOME}/Qt/5.15.2/gcc_64") list(APPEND CONFIGURE_ARGS -GNinja -DCMAKE_BUILD_TYPE=Debug) This file is ignored by Git to prevent it being shared with other developers, but you could always copy another file into its place (e.g. during a CI build on GitHub Actions).
2021-02-28 23:23:39 +01:00
### Running
To start MuseScore, type:
ONE BUILD SCRIPT TO RULE THEM ALL! Adds a cross-platform script that automates the process of creating a build directory and compiling MuseScore. Run the script like this: $ cmake -P build.cmake [args...] This works in all shells on all platforms. Developers with a Unix-like environment (including Git Bash on Windows) can also use: $ ./build.cmake [args...] Build step arguments: clean Delete the build directory. configure Create a build directory and run CMake inside it. build Compile code using the native build tool. install Copy compiled files to final destinations. run Run the installed program. Each step implies all previous steps except 'clean' and 'run', which are only performed when explictly requested. If no steps are given then the configure, build, and install steps are performed by default. All other arguments are passed to CMake during configuration. Example command: $ cmake -P build.cmake -GNinja -DCMAKE_BUILD_TYPE=Debug $ cmake -P build.cmake -GNinja -DCMAKE_BUILD_TYPE=Debug run -F This creates and installs a Debug build using the Ninja generator, and then runs the compiled program with the -F option to perform a factory reset, thereby ensuring it is in the initial state. Overrides: If you frequently need to build with non-default settings then you can create a file build_overrides.cmake with all your personal settings to avoid having to pass them in on the command line each time. # build_overrides.cmake example file set(ENV{QTDIR} "$ENV{HOME}/Qt/5.15.2/gcc_64") list(APPEND CONFIGURE_ARGS -GNinja -DCMAKE_BUILD_TYPE=Debug) This file is ignored by Git to prevent it being shared with other developers, but you could always copy another file into its place (e.g. during a CI build on GitHub Actions).
2021-02-28 23:23:39 +01:00
cmake -P build.cmake -DCMAKE_BUILD_TYPE=Release run
2013-09-30 10:14:15 +02:00
ONE BUILD SCRIPT TO RULE THEM ALL! Adds a cross-platform script that automates the process of creating a build directory and compiling MuseScore. Run the script like this: $ cmake -P build.cmake [args...] This works in all shells on all platforms. Developers with a Unix-like environment (including Git Bash on Windows) can also use: $ ./build.cmake [args...] Build step arguments: clean Delete the build directory. configure Create a build directory and run CMake inside it. build Compile code using the native build tool. install Copy compiled files to final destinations. run Run the installed program. Each step implies all previous steps except 'clean' and 'run', which are only performed when explictly requested. If no steps are given then the configure, build, and install steps are performed by default. All other arguments are passed to CMake during configuration. Example command: $ cmake -P build.cmake -GNinja -DCMAKE_BUILD_TYPE=Debug $ cmake -P build.cmake -GNinja -DCMAKE_BUILD_TYPE=Debug run -F This creates and installs a Debug build using the Ninja generator, and then runs the compiled program with the -F option to perform a factory reset, thereby ensuring it is in the initial state. Overrides: If you frequently need to build with non-default settings then you can create a file build_overrides.cmake with all your personal settings to avoid having to pass them in on the command line each time. # build_overrides.cmake example file set(ENV{QTDIR} "$ENV{HOME}/Qt/5.15.2/gcc_64") list(APPEND CONFIGURE_ARGS -GNinja -DCMAKE_BUILD_TYPE=Debug) This file is ignored by Git to prevent it being shared with other developers, but you could always copy another file into its place (e.g. during a CI build on GitHub Actions).
2021-02-28 23:23:39 +01:00
Or run the compiled executable directly.
2013-09-30 10:14:15 +02:00
### Debug Build
ONE BUILD SCRIPT TO RULE THEM ALL! Adds a cross-platform script that automates the process of creating a build directory and compiling MuseScore. Run the script like this: $ cmake -P build.cmake [args...] This works in all shells on all platforms. Developers with a Unix-like environment (including Git Bash on Windows) can also use: $ ./build.cmake [args...] Build step arguments: clean Delete the build directory. configure Create a build directory and run CMake inside it. build Compile code using the native build tool. install Copy compiled files to final destinations. run Run the installed program. Each step implies all previous steps except 'clean' and 'run', which are only performed when explictly requested. If no steps are given then the configure, build, and install steps are performed by default. All other arguments are passed to CMake during configuration. Example command: $ cmake -P build.cmake -GNinja -DCMAKE_BUILD_TYPE=Debug $ cmake -P build.cmake -GNinja -DCMAKE_BUILD_TYPE=Debug run -F This creates and installs a Debug build using the Ninja generator, and then runs the compiled program with the -F option to perform a factory reset, thereby ensuring it is in the initial state. Overrides: If you frequently need to build with non-default settings then you can create a file build_overrides.cmake with all your personal settings to avoid having to pass them in on the command line each time. # build_overrides.cmake example file set(ENV{QTDIR} "$ENV{HOME}/Qt/5.15.2/gcc_64") list(APPEND CONFIGURE_ARGS -GNinja -DCMAKE_BUILD_TYPE=Debug) This file is ignored by Git to prevent it being shared with other developers, but you could always copy another file into its place (e.g. during a CI build on GitHub Actions).
2021-02-28 23:23:39 +01:00
A debug version can be built and run by replacing `-DCMAKE_BUILD_TYPE=Release`
with `-DCMAKE_BUILD_TYPE=Debug` in the above commands.
2013-09-30 10:14:15 +02:00
ONE BUILD SCRIPT TO RULE THEM ALL! Adds a cross-platform script that automates the process of creating a build directory and compiling MuseScore. Run the script like this: $ cmake -P build.cmake [args...] This works in all shells on all platforms. Developers with a Unix-like environment (including Git Bash on Windows) can also use: $ ./build.cmake [args...] Build step arguments: clean Delete the build directory. configure Create a build directory and run CMake inside it. build Compile code using the native build tool. install Copy compiled files to final destinations. run Run the installed program. Each step implies all previous steps except 'clean' and 'run', which are only performed when explictly requested. If no steps are given then the configure, build, and install steps are performed by default. All other arguments are passed to CMake during configuration. Example command: $ cmake -P build.cmake -GNinja -DCMAKE_BUILD_TYPE=Debug $ cmake -P build.cmake -GNinja -DCMAKE_BUILD_TYPE=Debug run -F This creates and installs a Debug build using the Ninja generator, and then runs the compiled program with the -F option to perform a factory reset, thereby ensuring it is in the initial state. Overrides: If you frequently need to build with non-default settings then you can create a file build_overrides.cmake with all your personal settings to avoid having to pass them in on the command line each time. # build_overrides.cmake example file set(ENV{QTDIR} "$ENV{HOME}/Qt/5.15.2/gcc_64") list(APPEND CONFIGURE_ARGS -GNinja -DCMAKE_BUILD_TYPE=Debug) This file is ignored by Git to prevent it being shared with other developers, but you could always copy another file into its place (e.g. during a CI build on GitHub Actions).
2021-02-28 23:23:39 +01:00
If you omit the `-DCMAKE_BUILD_TYPE` option entirely then `RelWithDebInfo` is
used by default, as it provides a useful compromise between Release and Debug.
2013-09-30 10:14:15 +02:00
### Testing
See [mtest/README.md](/mtest/README.md) or [the developer handbook](https://musescore.org/handbook/developers-handbook/finding-your-way-around/automated-tests) for instructions on how to run the test suite.
2019-02-12 16:15:39 +01:00
The new [script testing facility](https://musescore.org/node/278278) is also available to create your own automated tests. Please try it out!
2020-05-29 00:52:22 +02:00
### Code Formatting
Run `./hooks/install.sh` to install a pre-commit hook that will format your staged files. Requires that you install `uncrustify`.
If you have problems, please report them. To uninstall, run `./hooks/uninstall.sh`.