startgitStatic page generator for git repositories |
git clone git://git.dimitrijedobrota.com/startgit.git |
Log | Files | Refs | README | LICENSE | HACKING | CONTRIBUTING | CODE_OF_CONDUCT | BUILDING |
BUILDING.md (1727B)
0 # Building with CMake
2 ## Build
4 This project doesn't require any special command-line flags to build to keep
5 things simple.
7 Here are the steps for building in release mode with a single-configuration
8 generator, like the Unix Makefiles one:
10 ```sh
11 cmake -S . -B build -D CMAKE_BUILD_TYPE=Release
12 cmake --build build
13 ```
15 Here are the steps for building in release mode with a multi-configuration
16 generator, like the Visual Studio ones:
18 ```sh
19 cmake -S . -B build
20 cmake --build build --config Release
21 ```
23 ### Building with MSVC
25 Note that MSVC by default is not standards compliant and you need to pass some
26 flags to make it behave properly. See the `flags-msvc` preset in the
27 [CMakePresets.json](CMakePresets.json) file for the flags and with what
28 variable to provide them to CMake during configuration.
30 ### Building on Apple Silicon
32 CMake supports building on Apple Silicon properly since 3.20.1. Make sure you
33 have the [latest version][1] installed.
35 ## Install
37 This project doesn't require any special command-line flags to install to keep
38 things simple. As a prerequisite, the project has to be built with the above
39 commands already.
41 The below commands require at least CMake 3.15 to run, because that is the
42 version in which [Install a Project][2] was added.
44 Here is the command for installing the release mode artifacts with a
45 single-configuration generator, like the Unix Makefiles one:
47 ```sh
48 cmake --install build
49 ```
51 Here is the command for installing the release mode artifacts with a
52 multi-configuration generator, like the Visual Studio ones:
54 ```sh
55 cmake --install build --config Release
56 ```
58 [1]: https://cmake.org/download/
59 [2]: https://cmake.org/cmake/help/latest/manual/cmake.1.html#install-a-project