Commit graph

4 commits

Author SHA1 Message Date
larry
2a33f21b47 fix detection of 64bit on mingw
sets BUILD_64 correctly
2021-09-09 13:40:09 +02:00
Peter Jonas
437e538d77 build.cmake: Show elapsed time for builds 2021-06-08 12:59:16 +00:00
Peter Jonas
02bea00799 build.cmake: Use -S and -B CMake options and CMAKE_HOST_SYSTEM_NAME
CMAKE_SYSTEM_NAME is not set when CMake is run in script mode (with
-P option) so use CMAKE_HOST_SYSTEM_NAME instead.

The special '--' option to prevent subsequent arguments being parsed as
options doesn't seem to work with CMake 3.20 so switch to using the
explicit -S (source dir) and -B (build dir) options instead.
2021-06-08 12:59:16 +00:00
Peter Jonas
18f8578810 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-03-05 12:30:31 +02:00