# CMake

## Сборка проекта

Для сборки проекта `CMake` необходимо создать каталог, в котором будет производиться сборка. Чтобы не "засорять" директорию с исходниками (например, `project`), лучше создать каталог сборки рядом с ней (например, `build_project`):

```sh
.
├── build_project
└── project
```

Перейти в каталог `build_project` и выполнить команду **конфигурирования** проекта для последующей сборки и установки:

```sh
cmake -B <destination> -S <sources> -DCMAKE_INSTALL_PREFIX=<path_install> -DCMAKE_BUILD_TYPE=Release <more keys>
```

где

- `<destination>` - путь, куда конфигурировать проект
- `<sources>` - путь к проекту, который необходимо собрать
- `<path_install>` - путь инсталляции, куда необходимо установить собранный проект соответствующей командой
- `<more keys>` - перечисление остальных аргументов конфигурации

В итоге на текущем примере строка конфигурирования будет выглядеть так:

```sh
cmake -B . -S ../project -DCMAKE_INSTALL_PREFIX=$(pwd)/../install_project -DCMAKE_BUILD_TYPE=Release
```

Далее выполнить сборку и установку проекта:

```sh
cmake --build . --target install -j4
```

где

- `.` - является теущим каталогом сконфигурированных исходников
- `-j4` - использование количества потоков (`4`) при компиляции исходников

После выполнения команды в каталоге `install_project` будет находиться установленный проект:

```sh
.
├── build_project
├── install_project
└── project
```
