diff --git a/programming/README.md b/programming/README.md index 898513d..ff7c593 100644 --- a/programming/README.md +++ b/programming/README.md @@ -1,5 +1,6 @@ # Программирование +- [CMake](src/cmake.md) - [Работа с библиотеками](src/libs.md) ## [Язык программирования C](c) diff --git a/programming/src/cmake.md b/programming/src/cmake.md new file mode 100644 index 0000000..6e58b78 --- /dev/null +++ b/programming/src/cmake.md @@ -0,0 +1,50 @@ +# CMake + +## Сборка проекта + +Для сборки проекта `CMake` необходимо создать каталог, в котором будет производиться сборка. Чтобы не "засорять" директорию с исходниками (например, `project`), лучше создать каталог сборки рядом с ней (например, `build_project`): + +```sh +. +├── build_project +└── project +``` + +Перейти в каталог `build_project` и выполнить команду **конфигурирования** проекта для последующей сборки и установки: + +```sh +cmake -B -S -DCMAKE_INSTALL_PREFIX= -DCMAKE_BUILD_TYPE=Release +``` + +где + +- `` - путь, куда конфигурировать проект +- `` - путь к проекту, который необходимо собрать +- `` - путь инсталляции, куда необходимо установить собранный проект соответствующей командой +- `` - перечисление остальных аргументов конфигурации + +В итоге на текущем примере строка конфигурирования будет выглядеть так: + +```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 +```