Этот репозиторий представляет собой небольшой гайд по использованию CMake и различных его фишек в учебных проектах для студентов первого курса МФТИ ФАЛТ (ПИШ РПИ).
Гайд написан другим студентом, а потому может содержать ошибки, неточности, непрофессиональную лексику и т.п.
Убедительная просьба отнестись с понимаем и обо всём таком писать в Issues
:)
- CMake configuring in VS Code
- Repo configuring recommendations
- Example 1: Hello World!
- Example 2: Stroustrup calculator
- Example 3: Using Eigen library
- Example 4: Using FLTK library
- Example 5: Using Nlohmann/json library
- Example 6: Complex CMake project
- Example 7&8: Another languages projects
- Useful links
Так как подавляющее большинство на первом курсе использует VS Code в качестве редактора кода (искренне одобряется :), я решил включить сюда небольшие рекомендации по интегрированию CMake в эту среду разработки для его удобного использования.
Перед настройкой внутри VS Code, сначала необходимо установить сам CMake и добавить его в Переменные Среды вашего устройства (далее PATH
).
Самый простой способ это сделать в случае операционной системы Windows - скачать архив с бинарными файлами и распаковать его в удобную вам папку (например, C:\Program_Files\CMake
) по этой ссылке. Далее путь к нему необходимо добавить в PATH
. Вот так это выглядит под Windows 10:
Варианты для других операционных систем и системных конфигураций также можно найти на странице загрузки CMake: https://cmake.org/download.
В самом 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
файлов, с чем оно тоже неплохо справляется, однако его дополнительный функционал не стоит игнорировать).
Для скачивания материалов репозитория, можно воспользоваться командами
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-го семестра).
CMake with C - пример, где CMake используется для компиляции и сборки проекта на языке программирования C.
! Предупреждение !
Компилируется только под Linux-подобными операционными системами!
CMake with Assembly - пример, где CMake используется для компиляции и сборки проекта на нескольких обратно совместимых языках (C, C++ и язык Ассемблера для архитектуры процессора Intel x86-64).
! Предупреждение !
Компилируется только под указанной архитектурой процессора!
ты C++ РАЗРАБОТЧИК?) ага. — Текст : электронный, видеоряд // YouTube : сайт.
CMake Documentation and Community. — Текст : электронный // CMake : сайт.