From 3b5902c2bf5f7f0cfff5a5b862baae023b18a94a Mon Sep 17 00:00:00 2001 From: Alexander Zhirov Date: Wed, 13 Jul 2022 10:51:52 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=BE:=20CMake?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- programming/README.md | 1 + programming/src/cmake.md | 50 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 programming/src/cmake.md 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 +```