Skip to content

CMake build system using guide (with examples) for first grade students MIPT DAFE/RSE

License

Notifications You must be signed in to change notification settings

UmbrellaLeaf5/simple_cmake_guide

Repository files navigation

Simple CMake Guide

Этот репозиторий представляет собой небольшой гайд по использованию CMake и различных его фишек в учебных проектах для студентов первого курса МФТИ ФАЛТ (ПИШ РПИ).

Гайд написан другим студентом, а потому может содержать ошибки, неточности, непрофессиональную лексику и т.п.

Убедительная просьба отнестись с понимаем и обо всём таком писать в Issues :)

Contents

CMake configuring in VS Code

Так как подавляющее большинство на первом курсе использует VS Code в качестве редактора кода (искренне одобряется :), я решил включить сюда небольшие рекомендации по интегрированию CMake в эту среду разработки для его удобного использования.

CMake

Перед настройкой внутри VS Code, сначала необходимо установить сам CMake и добавить его в Переменные Среды вашего устройства (далее PATH).

Самый простой способ это сделать в случае операционной системы Windows - скачать архив с бинарными файлами и распаковать его в удобную вам папку (например, C:\Program_Files\CMake) по этой ссылке. Далее путь к нему необходимо добавить в PATH. Вот так это выглядит под Windows 10:

-> -> ->

Варианты для других операционных систем и системных конфигураций также можно найти на странице загрузки CMake: https://cmake.org/download.

VS Code

В самом VS Code необходимо скачать расширение: CMake Tools

CMake Tools provides the native developer a full-featured, convenient, and powerful workflow for CMake-based projects in Visual Studio Code.

И поменять следующую настройку (для удобного отображения CMake Status Bar внизу окна):

Также рекомендуется:

CMake Language Support - для подсветки синтаксиса и автоформатирования.

C/C++ Compile Run - для подсветки ключевых слов в Output (да, целевое назначение этого расширения заключается в компилировании одиночных .cpp файлов, с чем оно тоже неплохо справляется, однако его дополнительный функционал не стоит игнорировать).

До / После: До / После

Repo configuring recommendations

Для скачивания материалов репозитория, можно воспользоваться командами

git clone --recurse-submodules https://github.com/UmbrellaLeaf5/simple_cmake_guide 

или

git clone https://github.com/UmbrellaLeaf5/simple_cmake_guide
git submodule init
git submodule update

В этом репозитории используется довольно много различных библиотек, каждую из которых скачивать вручную - не самое приятное занятие. Так что рекомендуется установить сборник инструментов MSYS2, в который входят MINGW, Clang, а также есть возможность устанавливать пакеты, используя встроенный терминал и пакетный менеджер pacman.

Видео-инструкция по установке MSYS2 и настройки FLTK на C++ с помощью него.

Как и в случае с CMake, необходимо добавить MSYS2 в PATH, а далее, запустив терминал MSYS2 MSYS (после установки с официального сайта будет добавлен в меню "Пуск"), затем вставить следующие команды для установки необходимых пакетов:

pacman -S mingw-w64-x86_64-gcc
pacman -S mingw-w64-x86_64-cmake
pacman -S mingw-w64-x86_64-boost
pacman -S gtest
pacman -S mingw-w64-x86_64-gtest
pacman -S mingw-w64-x86_64-eigen3
pacman -S mingw-w64-x86_64-fltk

В этом примере рассматриваются азы написания CMakeLists.txt с поэтапным увеличением кол-ва используемых CMake команд (simple, nice и good).

В этом примере CMake используется для компиляции примера выполнения второго домашнего задания по C++ в первом семестре.

! Предупреждение !

Использование этого примера при попытке сдачи задания своему семинаристу не рекомендуется, так как далеко не все баги исходного кода Бьярне Страуструпа были исправлены в этой версии :)

Пример с подключением дополнительной библиотеки для работы с матрицами Eigen.

Пример с подключением дополнительной легковесной графической библиотеки FLTK.

Пример с клонированием репозитория библиотеки для работы с .json файлами nlohmann/json и её "ручным" подключением к CMake проекту.

Пример комплексного CMake проекта, с использованием CMake library и рекурсивным добавлением подпроектов (в данном случае, это репозиторий с домашними работами по предмету "Алгоритмы и структуры данных" 3-го семестра).

Example 7&8: Another languages projects

CMake with C - пример, где CMake используется для компиляции и сборки проекта на языке программирования C.

! Предупреждение !

Компилируется только под Linux-подобными операционными системами!

CMake with Assembly - пример, где CMake используется для компиляции и сборки проекта на нескольких обратно совместимых языках (C, C++ и язык Ассемблера для архитектуры процессора Intel x86-64).

! Предупреждение !

Компилируется только под указанной архитектурой процессора!

Useful links

ты C++ РАЗРАБОТЧИК?) ага. — Текст : электронный, видеоряд // YouTube : сайт.

CMake Documentation and Community. — Текст : электронный // CMake : сайт.

About

CMake build system using guide (with examples) for first grade students MIPT DAFE/RSE

Topics

Resources

License

Stars

Watchers

Forks