18f8578810
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).
70 lines
2.5 KiB
Makefile
70 lines
2.5 KiB
Makefile
#=============================================================================
|
|
# Mscore
|
|
# Linux Music Score Editor
|
|
#
|
|
# Copyright (C) 2002-2007 by Werner Schweer and others
|
|
#
|
|
# This program is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License version 2.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program; if not, write to the Free Software
|
|
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
#=============================================================================
|
|
|
|
$(warning DEPRECATION NOTICE. This method of compiling will soon be removed.)
|
|
$(warning )
|
|
$(warning Please use 'build.cmake' instead with these options:)
|
|
$(warning )
|
|
$(warning $ $$ cmake -P build.cmake -G "MinGW Makefiles")
|
|
$(warning )
|
|
$(warning See https://github.com/musescore/MuseScore/pull/7531 for details.)
|
|
$(warning )
|
|
|
|
VERSION := $(cmake -P config.cmake | sed -n -e "s/^.*VERSION *//p")
|
|
BUILD_NUMBER=""
|
|
CPUS = %NUMBER_OF_PROCESSORS%
|
|
BUILD_FOR_WINSTORE="OFF" # Override with "ON" to enable.
|
|
TELEMETRY_TRACK_ID=""
|
|
|
|
|
|
release:
|
|
if not exist build.release\nul mkdir build.release
|
|
if not exist win32install\nul mkdir win32install
|
|
cd build.release & cmake -G "MinGW Makefiles" -DCMAKE_INSTALL_PREFIX=../win32install -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_MAKE_PROGRAM=mingw32-make.exe -DBUILD_FOR_WINSTORE=${BUILD_FOR_WINSTORE} -DTELEMETRY_TRACK_ID=${TELEMETRY_TRACK_ID} ..
|
|
cd build.release & $(MAKE) lrelease
|
|
cd build.release & $(MAKE) -j ${CPUS}
|
|
|
|
debug:
|
|
if not exist build.debug\nul mkdir build.debug
|
|
if not exist win32install\nul mkdir win32install
|
|
cd build.debug & cmake -G "MinGW Makefiles" -DCMAKE_INSTALL_PREFIX=../win32install -DCMAKE_BUILD_TYPE=DEBUG -DCMAKE_MAKE_PROGRAM=mingw32-make.exe -DBUILD_FOR_WINSTORE=${BUILD_FOR_WINSTORE} ..
|
|
cd build.debug & $(MAKE) lrelease
|
|
cd build.debug & $(MAKE) -j ${CPUS}
|
|
|
|
install:
|
|
cd build.release & $(MAKE) -j ${CPUS} install
|
|
|
|
installdebug:
|
|
cd build.debug & $(MAKE) -j ${CPUS} install
|
|
|
|
package:
|
|
cd build.release & $(MAKE) package
|
|
|
|
revision:
|
|
git rev-parse --short=7 HEAD > local_build_revision.env
|
|
|
|
version:
|
|
@echo ${VERSION}
|
|
|
|
#
|
|
# clean out of source build
|
|
#
|
|
|
|
clean:
|
|
-rmdir /S/Q build.debug build.release win32install
|