CMake is a system to automate compilation tasks of code files created in C and C++.
On Unix type systems we can say that it is a “Makefile” generator. He is classified as a SCons.
We already made a brief introduction here on the blog about CMake, but it is also possible to generate Makefiles in Windows, although CMake also generates files for Visual Studio.
Today we will see how to install CMake on Windows.
Dependencies
As in this example we will use GCC, it is important that you have it installed on your Windows via MinGW, see here how to do it.
Now let’s go step by step!
Installation
01. Download CMake by clicking the button below:
Download CMake for Windows 64-bit
After downloading, double-click on the downloaded file: cmake-3.26.0-rc6-windows-x86_64.msi
and give administrator permissions to start the installation setup.
02. Setup presentation
Just click on
Next
.
03. Accept the license terms
And then click
Next
.
04. Add CMake to your PATH
Check the Add CMake to the system PATH for all users
option for the command to be available to all system users. And then click on Next
.
05. Select installation path
Hint: Keep what already appears and click
Next
.
06. Start the installation
Click on Install
and wait for the installation to finish.
Installing:
![]()
Once finished, click on
Finish
:![]()
Testing CMake
Open PowerShell or CMD
and type the command:
cmake --version
If the output is similar to the image below, everything is right and installed perfectly:
Compiling with CMake
-
Create a folder, for example
MyProject
, enter it (by CMD or PowerShell,cd MyProject
) and inside it do: -
Create a file named
CMakeLists.txt
with your Preferred Code Editor or IDE and fill it with the code below:
cmake_minimum_required(VERSION 3.10)
project(HelloWorld)
add_executable(hello main.cpp)
- Also create a
main.cpp
file with a basic code, example:
#include <iostream>
auto main(int argc, char** argv) -> int {
std::printf("CMake is working on Windows!\n");
return EXIT_SUCCESS;
}
At the end your MyProject
folder will have 2 files: CMakeLists.txt
and main.cpp
as shown in the image below:
- Now run the command:
cmake -G "Unix Makefiles" -B build
It will create a folder called
build
inside your project. If you don’t say-G "Unix Makefiles"
it will prepare files for Visual Studio, in which case we want a Unix-like Makefile.
The output will be similar to the image below:
- Once finished, enter the build folder (
cd build
) and run themake
command (if this command does not exist, it is because you did not rename the MinGW file to that name as mentioned in the article about MinGW cited above, then most likely the command will bemingw32-make
). And then run the final binary:hello
:
That’s it, now you can compile your C and C++ code with CMake!
Useful links
- https://cmake.org/
- https://cmake.org/download/
- https://github.com/Kitware/CMake/
cmake
windows
Related articles
To set up CMake on Windows, you will first need to download the CMake installer from the official website. Run the installer and follow the on-screen instructions to complete the installation process.
After installing CMake, you can open the CMake GUI and set the source code and binary directories for your project. Choose the generator you want to use (e.g., Visual Studio) and configure any additional settings as needed.
Once you have configured your project in the CMake GUI, click on the «Configure» button to generate the build files. Then click on the «Generate» button to create the necessary project files for building your project.
You can then open the generated project files in your preferred IDE (e.g., Visual Studio) and build your project using the tools provided by the IDE.
Overall, setting up CMake on Windows involves downloading and installing the CMake software, configuring your project in the CMake GUI, generating the necessary project files, and building your project using an IDE.
What is the best way to organize CMake files on Windows?
There is not a single «best» way to organize CMake files on Windows, as it largely depends on the size and complexity of your project. However, here are some general tips for organizing CMake files effectively:
- Separate source code from build artifacts: Keep your source code separate from CMake build artifacts, such as object files and executables, to keep your project organized and maintainable.
- Use a separate CMakeLists.txt file for each subdirectory: Break your project into logical components or modules, and use a separate CMakeLists.txt file in each subdirectory to define the build rules for that component.
- Use include directories and set variables: Use CMake’s include_directories() function to specify where to find header files and set variables to store commonly used paths or compiler options.
- Use ExternalProject_Add() for external dependencies: If your project depends on external libraries or tools, use the ExternalProject_Add() function in CMake to automatically download and build these dependencies as part of your build process.
- Use target_include_directories() and target_link_libraries(): Use these functions to specify include directories and link libraries for your build targets, making your code more portable and easier to maintain.
Overall, the key to organizing CMake files on Windows is to break your project into manageable components, use CMake functions and commands effectively, and keep your build process as simple and transparent as possible.
How to add CMake to the PATH in Windows?
To add CMake to the PATH in Windows, follow these steps:
- Find the installation directory of CMake on your computer. By default, CMake is installed in C:\Program Files\CMake\bin, but this may vary depending on your installation settings.
- Right-click on the «This PC» icon on your desktop and select «Properties.»
- Click on «Advanced system settings» on the left side of the window.
- In the System Properties window, click on the «Environment Variables» button.
- In the System Variables section, scroll down and select the «Path» variable, then click on the «Edit» button.
- Click on the «New» button and add the path to the CMake bin folder (e.g., C:\Program Files\CMake\bin).
- Click «OK» on all open windows to save the changes.
- Open a new command prompt and type «cmake —version» to verify that CMake has been successfully added to the PATH.
You have now successfully added CMake to the PATH in Windows.
What is the CMake file extension for Windows?
In Windows, CMake files typically have the extension «.cmake».
What is the CMake workflow for Windows developers?
Here is a typical workflow for Windows developers using CMake:
- Install CMake: Download the CMake installer from the official website and follow the installation instructions. Make sure to add the CMake bin directory to your system PATH.
- Set up your project: Create a new directory for your project and add your source code files. Create a CMakeLists.txt file in the root of your project directory to define your project structure and dependencies.
- Generate build files: Open a command prompt or PowerShell window and navigate to your project directory. Run the command ‘cmake -G «Visual Studio» .’. This will generate Visual Studio solution files for your project.
- Build your project: Open the generated Visual Studio solution file in the Visual Studio IDE. You can now build and run your project using the Visual Studio build tools.
- Modify and update your project: If you make changes to your project structure or dependencies, you can re-run CMake to regenerate the build files and update your project in Visual Studio.
- Debugging: Use the Visual Studio IDE to debug your project and fix any issues that may arise during development.
- Deployment: Once your project is ready, you can use Visual Studio to build a release version of your project and deploy it to your desired target platform.
This is a high-level overview of the CMake workflow for Windows developers. The specific steps may vary depending on the complexity of your project and your development environment. It’s important to refer to the CMake documentation for more detailed information and best practices.
How to manage dependencies with CMake on Windows?
To manage dependencies with CMake on Windows, you can follow these steps:
- Install CMake on your Windows machine if you haven’t already. You can download the latest version of CMake from the official website (https://cmake.org/download/).
- Create a CMakeLists.txt file in your project directory. In this file, you can specify the dependencies for your project using the find_package() or add_subdirectory() commands.
- Use the find_package() command to locate and import external libraries or packages that your project depends on. You can specify the package name and version in the command, and CMake will search for the package in the system directories.
- If the package is not found in the system directories, you can set the CMAKE_PREFIX_PATH variable to the path where the package is installed. This will help CMake find the package during the build process.
- You can also use the add_subdirectory() command to include external libraries as subdirectories in your project. This will allow CMake to build the dependencies along with your project.
- After specifying the dependencies in your CMakeLists.txt file, you can generate build files using CMake by running the following command in the terminal:
This command will generate build files in a separate build
directory.
- Now you can build your project using the generated build files. Navigate to the build directory and run the following command in the terminal:
This will compile your project along with the dependencies specified in the CMakeLists.txt file.
By following these steps, you can effectively manage dependencies with CMake on Windows and ensure that your project builds successfully with external libraries and packages.
Время на прочтение12 мин
Количество просмотров11K
В предыдущей статье имел наглость использовать CLion в качестве IDE. И тут же прибежал человек с вопросом: ой, проприетарная платная поделка, продался, зажрался, итп. Справедливости ради, на Хабре такой комментарий был всего один, но в реальности их тысячи. Например, крайний действующий аккаунт на ЛОРе, у меня зарегистрирован с 2010 года, и в почти каждой дискуссии с участием какого-то несвободного софта начинается этот ад. Понятно что никому я ничего не докажу, но редким бредущим мимо может помочь.
Статья условно делится на две части: социально-мотивационная и техническая (как собирать CMake в Windows под различными IDE).
Откуда всё пошло
В основу статьи лёг вот этот комментарий из прошлой статьи: «Если подкаст для начинающих и непрофессионалов, то почему не учли лицензию IDE :(» и далее по тексту.
Статья сделана по результатам стрима на Твиче и вашего фидбека на нём. Запись есть на YouTube. Эта статья — не расшифровка подкаста, а продукт его осмысления.
Исходный посыл
Вначале, давайте проверим валидность исходного предположения: софт — это дорого. Если зайти на сайт, то окажется, что CLion стоит 8.90 баксов в месяц. 580 рублей. Понятно, что для человека, который не зарабатывает программированием на жизнь — это иногда может показать приличной суммой, которую можно потратить на что-нибудь более полезное. Купить поесть, например.
Для профессионала всё совсем по-другому, но давайте вот оставим эту тему. Журналист отличается от работника отдела маркетинга компании-производителя софта или игры тем, что он не продвигает политику Партии, не делает шаги для продвижения продукта. Он говорит как есть. Как это всё на самом деле, как журналист по-настоящему видит вопрос. То же самое и с настоящими евангелистами.
Сущность явлений, и лет вереница,
Лица друзей, и маски врагов,
Ясно видны и не могут укрыться
От взора поэта — владельца веков.Свет дальних звезд и начало рассвета,
Жизни секреты и тайны любви,
В миг вдохновения солнцем согретый —
Все отражается в душах поэта —
В зеркале мира…(с) Константин Никольский, «Зеркало Мира»
Если действиетльно интересно, как CLion увеличивает ваш доход — вы найдете к кому обратиться, а мы тут о другом.
Типология
Вместо этого рассмотрим группы людей, которых максимально бомбит от закрытого софта.
Как вы уже поняли, я нифига не социолог, и имею только ту типологию, которая выработалась в жаре форумных разборок. Она имеет только то преимущество, что отнести человека к какой-то группе можно практически не включая мозг, посмотрев на первые два комментария.
Итак, люди бывают:
- Борцы за свободу и опенсорц
- Честно заблуждающиеся
- Животные
Варианта неправоты автора предлагаю не рассматривать. Я — это другое дело.
Борцы за свободу и опенсорц
Самые чистые и светлые — это борцы за опенсорц. Я и сам из тех, кто услышав слово «Linux» постоянно поправляет, «не Linux, а GNU/Linux». Проблема в том, что реальный мир ни разу не чёрно-белый. У нас есть некое количество свободы, и это — ресурс, который в случае необходимости можно использовать. Как пошутил (или нет) кто-то из менеджмента Mozilla, «зачем нам кредит доверия, если мы не будем его тратить?».
Пример: был такой человек, Мигель де Иказа. Он сделал Gnome и приложил руку к формированию дестопного GNU/Linux таким, как мы его знаем. А потом его выпихали из сообщества, а Столлман назвал его «предателем свободы»:
«Miguel de Icaza, по существу — предатель Free Software community. <…> Проект нацелен на обустройство функционирования якобы „опенсорсных“ программ на платформе Windows; тем самым бесценное время разработчиков уводится от свободных платформ»
И где теперь Мигель? Он и его команда работают бок о бок с одним из величайших проектов последних лет — переносу .NET на GNU/Linux под пермиссивными лицензиями. Он верно потратил своё время.
На стриме я убил не менее двадцати минут на то, чтобы запинать CMake под Visual Studio Code. Не получилось. А в бесплатной, но несвободной Visual Studio, получилось с первого раза. Это именно то, что мы так часто получаем при попытках использовать свободный софт: в опенсорце, по понятным причинам, нет времени продумывать end-to-end сценарии и заботиться о продукте целиком. Спасибо разработчикам уже за то, что сделали хоть что-то. Но для нас как для пользователей всё равно остаётся морально-этический выбор: либо выбрать свободу и потратить на запинывание свободного софта много времени, или напротив — потратить нашу свободу на покупку времени, которое можно потом пустить на какие-то добрые дела.
Поскольку этот вопрос выходит за рамки решаемости техническими вопросами, здесь и закончим. По-настоящему идейный человек верен своей идее.
Животные
О, а вот от этой категории меня бомбит.
«Специфическими особенностями человека, отличающими его от других животных, являются прямохождение, высокоразвитый головной мозг, мышление и членораздельная речь. Человек изучает и изменяет себя и окружающий мир, создаёт культуру и собственную историю.» (с) Википедия.
К сожалению, в разговоре об IDE зачастую оказывается, что собеседник не способен к самостоятельному мышлению, вместо членораздельной речи мычит «а мне и так норм» и жрёт что дают. Из-за прямохождения его легко спутать с человеком, но не ошибитесь.
На этих существах ездят все, кому ни попадя. В играх им продают лутбоксы и DLC с ностальгической музыкой. В редакторах их сажают на разные анально оккупированные штуки, имеющие целью привязать пациента к конкретной среде, экосистеме, и так завендорлочть, что никакого феназепама не нужно. Они всё съедят. «А мне и так норм.»
Важно добавить, что ездят по ушам не только маркетологи, но и просто тролли, либо натуральные клинические шизики. Шизиков много, вы не поверите сколько.
Например, помните манифест, который недавно выложил Никитонский (точней, его перевод на Хабр): Моё разочарование в софте? Как у меня от него бомбит. Искренне надеюсь, что Никитонский это всё писал чтобы знатно потролить, а не на самом деле.
Глядите какие там тезисы:
- Всё невыносимо медленно — современный телефон мощней компов, которые отправляли людей на Луну;
- Всё ОГРОМНОЕ — Андроид весит 6 гигабайт;
- Всё гниёт — старые девайсы не работают или работают плохо;
- В программировании хаос — посмотрите на графы зависимостей в npm и left-pad.
Троллинг троллингом, а кому-то может быть невдомёк, что размер исходников «что привели человека на Луну», то есть Аполлона-11, такой, что автор вряд ли бы захотел их читать.
Что современные операционки определяют любое оборудование и имеют в себе всё на любой случай жизни. Что тормознутость девайсов привела к чудесной ситуации, когда мерсссские капиталисссссты почеаслись и разивили железо до современного уровня, благодаря чему у нас в кармане и лежит мегадевайс на все случаи жизни. Даже полотенца не надо, оно есть в Google Play. Упомянутый npm позволяет в час обычному человеку писать невообразимой сложности вещи, которые раньше заняли бы годы.
И вот всем этим товарищам, которые «жрём что дают», внезапно в голову начинают прилетать мега-идеи из списка выше. Давайте распространим на IDE:
- У приложений на Electron (Visual Studio Code, Atom) буковки появляются на экране слишком медленно, то ли дело vim или emacs;
- Eclipse IDE тормозит;
- Вообще, тормозит Java — вместе со всем, что на ней написано, включая NetBeans, IDEA и Clion;
- Любые IDE тормозят жрут проц просто так;
- Проприетарщина — зло;
- Список можно продолжать.
Этого списка уже хватит, чтобы капитально съехать крышей. Не верьте всякой фигне. Если vim лучше Eclipse (или наоборот) в некоторых кейсах, то это точно не потому, что вимеров соседи облучают микроволновкой, а эклипсеров ночью похищают пришельцы.
К сожалению, в результате долгих сетевых диванных войн было в точности установлено: диалог тут можно не вести. Человеку — человеческое, а животному — животное. Так устроена жизнь. Вероятность, что кто-то прочитает эту статью и одумается крайне мала, immolate improved.
Честно заблуждающиеся
Теперь мы закончили с крайностями: особо умными из секты Столлмана с одной стороны спектра, и не очень умными животными с другой, давайте поговорим об обычных людях.
Первое заблуждение в том, что мы каким-то образом прибиты гвоздями к IDE. Это пошло с тех времён, когда люди использовали какие-то Delphi 7 и древние версии Microsoft Visual Studio. Говорят, в новой Вижуалке всё стало хорошо с проектными файлами. Привет-привет, сейчас на дворе 2018 год, рабства больше нет.
Чтобы избавиться от рабства нам свыше дан CMake: тулсет из кроссплатформенных опенсорсных утилит, который позволяет собирать, тестировать и паковать приложения.
Это всё ещё ничего не говорит новичку и руки тянутся к IDE. Всё это от страха и непонимания происходящего. Я сам родом из джавы, и поэтому хорошо знаю, как расширяются глаза человека, в первый раз увидившего pom.xml
.
Давайте разберёмся, из чего состоит созданный в прошлый раз проект, и как его построить во всевозможных разных IDE.
Состав файлов:
- CMakeLists.txt
- main.cpp
- shaders.shader
Шейдер у нас компилируется прямо в рантайме, функцией D3DCompile. Работает D3DCompiler из DirectX SDK (который теперь Windows SDK). Никакого IDE для его сборки не нужно.
main.cpp
— это единственный файл, который надо собрать. И собирается он с помощью информации, которая целиком и полностью находится в CMakeLists.txt
.
В обратную сторону: есть CMakeLists.txt
, который говорит нам, что именно мы собираемся скомпилировать. В нём прописана сборка main.cpp
. Этого хватает, чтобы скомпилировать проект. После компиляции получается exe-файл, который после запуска собирает и шейдер, и показывает его на экране. Всё предельно просто, IDE в этой цепочке не участвует и может быть любым.
IDE не обязательна. Вообще. Что тут непонятного?
Сборка
Подготовительные моменты
Как всегда, подготовка занимает чуть ли не большую часть процесса. Нужно уяснить несколько вещей.
Предполагается, что всё делается на основе Msys2, который мы устанавливали в прошлый раз. Если это не так, расхлебывать придется самостоятельно
Как установить CMake и Ninja
Чтобы мочь что-то собрать, необходимо установить CMake, если вы это ещё не сделали.
- Качаем с сайта: https://cmake.org/download. У меня cmake-3.12.2-win64-x64;
- Распаковываем и добавляем в виндовую переменную окружения PATH путь до места, где лежит cmake.exe;
- Качаем с сайта генератор ninja самой свежей версии;
- Распаковываем и тоже кладём куда-нибудь в PATH.
Как редактировать PATH, чтобы не поехать кукухой
Первый способ всем известен: win+pause -> Advanced system settings -> Advanced -> Environment variables. К сожалению, даже в Windows 10, в которой добавили редактор переменной PATH, это всё ещё не очень удобно.
Если вы часто пердолитесь с PATH, использование стандартного окна редактирования очень действует на нервы. Советую использовать Rapid Environment Editor — он бесплатный и сильно экономит нервы.
Как подключать DLL из MinGW в режиме разработки
Чотбы приложуха запустилась, нужны dll файлы как минимум из mingw64\bin
.
К сожалению, я так и не смог найти действительно удобного решения для подбрасывания библиотек из MinGW в PATH. Если какой-то мудрец в комментариях можект рассказать, буду премного благодарен.
Сейчас самым простым кажется подкладываение bin-директории MinGW прямо на первое место в PATH. (В случае Visual Studio, можно и просто набросать библиотек в каталог сборки.) К сожалению, у этого способа есть огромный минус: часть софта в Windows начинает отваливаться сразу же после модификации PATH. Например, у меня перестал запускаться Overwatch, а это совершенно фатальная штука.
Если вы так же, как и я, живёте в компьютере, а не только включаете его в рабочие часы, предлагается следующая схема: перед началом программирования добавлять MinGW в PATH, а после — убирать. Для облегчения процесса нужно сделать два батника, которые можно запускать двойным щелчком:
before.bat:
setx path "Z:\msys64\mingw64\bin;%path%"
after.bat:
setx PATH "%PATH:Z:\msys64\mingw64\bin;=%"
Как подключать DLL в режиме «тестового релиза»
Ясно, что предыдущий способ работает только пока mingw64\bin
находится в PATH, то есть только на компьютере разработчика. Да и там даже, не всегда хочется уродовать PATH. Если же это запустит обычный человек (или мы сами после запуска after.bat), то произойдет нечто вроде:
Самый простой способ решить эту проблему — подложить нужные dll рядом с исполняемым файлом. Но для этого нужно узнать, какие dll используются!
У нас уже есть для этого некие утилиты производства Microsoft.
- Посмотреть полный список работающего приложения можно было бы с помощью ListDLLs, но оно не показывает то, что ещё не загружено.
- Если сделать Tools -> Visual Studio Command Prompt,
dumpbin /dependents "Z:\game\build\Mingw64-Debug\src.exe"
, то оно покажет только dll самого первого уровня. Иначе говоря, если докинуть только то, что подсказывает dumpbin, то после запуска всё ещё будут ошибки — просто они будут про другие DLLки.
Чтобы побегать по зависимостям в глубину, есть вот такой скрипт, который можно выполнять прямо из командной строки (msys2, cygwin, итп — достаточно чтобы там внутри был установлен python2/3 и objdump).
- Качаете скрипт mingw-bundledlls,
- Кладёте рядом с экзешником,
- В текстовом редакторе в массив
blacklist = [
добавляете наши кусочки DirectX:d3d10.dll, d3d11.dll, d3dcompiler_43.dll
, chmod 755 ./mingw-bundledlls
,- Чтобы посмотреть использованные dll:
./mingw-bundledlls ./src.exe
(ну, любой экзешник, который вам более интересен), - Чтобы автоматически скопировать и положить рядом:
./mingw-bundledlls --copy ./src.exe
- PROFIT: экзешник запускается и просто так, двойным щелчком по exe-файлу, и из Visual Studio.
Есть ещё разные хитрые способы подрядить CMake сам копировать dll, но если начинать углубляться в вопросы дистрибуции, то так можно это статью вообще никогда не закончить.
Сборка вручную
- before.bat
- Пуск -> Выполнить -> cmd.exe
cd /d z://game/src
cmake -G "Ninja" -D EXECUTABLE_OUTPUT_PATH="bin" -D CMAKE_CXX_COMPILER="Z:/msys64/mingw64/bin/g++.exe" -D CMAKE_C_COMPILER="Z:/msys64/mingw64/bin/gcc.exe" .
- ninja
- Запускаете сгенерированный в bin файл сразу, или подкладываете dll по инструкции выше и выполняете after.bat
Мы докзали, что не привязаны к IDE вообще.
Сборка в Visual Studio
Но всё-таки, разрабатывать без IDE — не дело. В прошлый раз мы уже собрали тестовое приложение с помощью CLion. Но это ведь платная проприетарщина и зашквар, верно? Забудем. Теперь только свободка.
В Visual Studio последовательность необходимых действий супер простая.
- before.bat
- Запустить Visual Studio;
- File -> Open -> CMake;
- Выбрать CMakeLists.txt;
- Вижуалка некоторое время думает и отображает проект;
- Главное меню -> Cache -> Generate -> имя проекта;
- Смотрим на Output и исправляем ошибки (например, у меня ругалось на версию CMake, пришлось опустить до 3.11 вместо 3.12);
- Главное меню -> CMake -> Change CMake Settings (выбираем MinGW64-Debug);
- В проекте автогенерируется файл CMakeSettings.json. Указываем там путь до MinGW (у меня это в предыдущем видео был «Z:\msys64\mingw64»), сохраняем файл;
- Главное меню -> Cache -> Generate -> CMakeLists.txt;
- Главное меню -> Cache -> Generate -> имя проекта;
- Если всё правильно сделали, в меню Select a valid startup item (рядом с зеленой стрелкой запуска приложения) появится пункт с именем проекта;
- Запускаем.
Как и в случае с консолью, можно запустить прямо так (помня, что MinGW находится в PATH), либо выполнить after.bat и подложить необходимые DLL по инструкции. DLL нужно класть прямо в каталог, куда собирается приложение. Его можно указать в параметре buildRoot в файле CMakeSettings.json.
Итак, господа, самое главное: из Visual Studio всё отлично компилируется и запускается. Мы докзали, что не привязаны к коммерческой IDE.
Сборка в Visual Studio Code
К сожалению, Visual Studio всё ещё остаётся несвободным закрытым ПО. Нужно перейти к чему-то более свободному, и это Visual Studio Code.
Вначале забавный майндфак. Если запустить VSCode на мониторе с большим масштабированием (я дома сижу за телевизором, например), то интерфейс VSCode превратится в кашу. Чтобы этого не происходило, нужно запускать его с ключом --force-device-scale-factor
(сделать ярлычок на рабочий стол, или что-то такое).
К сожалению, менеджмент PATH для VSCode я так и не осилил, поэтому единственный способ запуска — это модификация PATH с помощью before.bat и ещё один хак, который я опишу ниже.
Дальше надо настроить VSCode.
- Устанавливаем CMake Tools: View -> Extensions -> в поиск вписать «CMake Tools», нажать install напротив пакета, который сделал автор vector-of-bool.
- View -> Explorer -> Open Folder (выибраем директорию с нашим проектом);
- Command Palette (CP, шорткат Ctrl+P) -> «> CMake: Scan for Kits»;
- Выбрать наш «GCC 8.2.0», пусть до которого ведёт в правильное место, где установлен msys2 или что вы там используете;
- File > Preferences > Settings;
- Перейти на вкладку User Settings;
- Щелкнуть по трём точкам в верхнем правом углу панели, и из меню выбрать «Open settings.json»;
- Добавить следующие опции:
"cmake.configureOnOpen": true,
"terminal.integrated.shell.windows": "D:/msys64/usr/bin/bash.exe",
"terminal.integrated.shellArgs.windows": [
"-i"
],
"terminal.integrated.env.windows": {
"PATH": "/mingw64/bin;/usr/local/bin;/usr/bin;/bin;Z:/msys64/bin/;Z:/msys64/usr/local/bin;Z:/msys64/usr/bin;Z:/msys64/bin;Z:/msys64/mingw64/bin/;%PATH%"
},
"cmake.buildDirectory": "${workspaceRoot}/build/${buildType}",
"cmake.clearOutputBeforeBuild": true,
"cmake.generator": "Ninja",
"cmake.cmakePath": "C:\\my\\opt\\cmake-3.12.2-win64-x64\\cmake-3.12.2-win64-x64\\bin\\cmake.exe",
"cmake.mingwSearchDirs": [
"Z:/msys64/mingw64",
],
"cmake.preferredGenerators": [
"Ninja"
],
"cmake.loggingLevel": "debug"
- Сборка должна произойти автоматически, и билд сложится в директорию
build
. Если этого не произошло, нужно мышкой клацнуть по кнопкеBuild
с шестерёнкой в статусной строке.
Понятно, что там нужно напрямую указать путь до mingw и cmake. «Но у меня же PATH!» Просто укажите, пожалуйста, это решит целый комплекс проблем.
Есть, впрочем, один эксклюзивный способ не поганить себе PATH.
"cmake.generator": "MSYS Makefiles"
"cmake.preferredGenerators": [ "MSYS Makefiles"]
- Проверьте что MinGW нет в PATH (after.bat);
- Проверьте что удалили директорию build в проекте.
- Запустите консоль Msys2;
export PATH=/z/msys64/mingw64/bin;$PATH
(можно потом будет вписать в какой-нибудь"~/.bashrc"
)- Из неё запустите VSCode, например так:
"C:\Users\olegchir\AppData\Local\Programs\Microsoft VS Code\Code.exe"
- И дальше всё как раньше. Должен нормально сгенерироваться файл.
- При попытке немедленно запустить его из Проводника двойным щелчком мгновенно приведёт к ошибкам поиска DLL — это значит, что всё верно, внутри VSCode у нас действительно используется специальный PATH, а вне его — нет.
Итак, мы доказали что в свободном IDE мы тоже жить вполне себе можем.
Итоги
Резюмируя, если вы нормальный человек, то можете пользоваться CMake, MinGW и в ус не дуть. Всё свободно переносимо между IDE, всё просто работает. Мы можем в любой момент использовать любую платную, закрытую, несвободную IDE, и нам за это ничего не будет. А вот все остальные будут страдать, и поделом.
В будущих статьях будет учитываться ваше мнение. Вы можете прямо во время стрима на Твиче завать вопросы и предлагать предложения в комментариях. Будут ли вообще эти статьи — зависит от того, насколько яростно вы наяриваете стрелочку вверх под этим комментарием.
олег родился в интернете
в почтенной геймерской семье
питался лайками и в гугол
за двойки ставили его
© Александр Раевский
That’s it, ground.
I wonder if it will be friends with me?
Hello, ground!
Obviously to use some tool you need to install it first. CMake can be installed
using your default system package manager or by getting binaries from
Download page.
2.1.1. Ubuntu¶
CMake can be installed by apt-get
:
> sudo apt-get -y install cmake > which cmake /usr/bin/cmake > cmake --version cmake version 2.8.12.2
Installing CMake GUI is similar:
> sudo apt-get -y install cmake-qt-gui > which cmake-gui /usr/bin/cmake-gui > cmake-gui --version cmake version 2.8.12.2
Binaries can be downloaded and unpacked manually to any location:
> wget https://cmake.org/files/v3.4/cmake-3.4.1-Linux-x86_64.tar.gz > tar xf cmake-3.4.1-Linux-x86_64.tar.gz > export PATH="`pwd`/cmake-3.4.1-Linux-x86_64/bin:$PATH" # save it in .bashrc if needed > which cmake /.../cmake-3.4.1-Linux-x86_64/bin/cmake > which cmake-gui /.../cmake-3.4.1-Linux-x86_64/bin/cmake-gui
Version:
> cmake --version cmake version 3.4.1 CMake suite maintained and supported by Kitware (kitware.com/cmake). > cmake-gui --version cmake version 3.4.1 CMake suite maintained and supported by Kitware (kitware.com/cmake)
2.1.2. OS X¶
CMake can be installed on Mac using brew:
> brew install cmake > which cmake /usr/local/bin/cmake > cmake --version cmake version 3.4.1 CMake suite maintained and supported by Kitware (kitware.com/cmake)
Binaries can be downloaded and unpacked manually to any location:
> wget https://cmake.org/files/v3.4/cmake-3.4.1-Darwin-x86_64.tar.gz > tar xf cmake-3.4.1-Darwin-x86_64.tar.gz > export PATH="`pwd`/cmake-3.4.1-Darwin-x86_64/CMake.app/Contents/bin:$PATH" > which cmake /.../cmake-3.4.1-Darwin-x86_64/CMake.app/Contents/bin/cmake > which cmake-gui /.../cmake-3.4.1-Darwin-x86_64/CMake.app/Contents/bin/cmake-gui
Version:
> cmake --version cmake version 3.4.1 CMake suite maintained and supported by Kitware (kitware.com/cmake). > cmake-gui --version cmake version 3.4.1 CMake suite maintained and supported by Kitware (kitware.com/cmake).
2.1.2.1. DMG installer¶
Download cmake-*.dmg
installer from
Download page and run it.
Click Agree
:
Drag CMake.app
to Applications
folder (or any other location):
Start Launchpad
:
Find CMake
and launch it:
2.1.3. Windows¶
Download cmake-*.exe
installer from
Download page and run it.
Click Next
:
Click I agree
:
Check one of the Add CMake to the system PATH ...
if you want to have
CMake in PATH
. Check Create CMake Desktop Icon
to create icon on
desktop:
Choose installation path. Add suffix with version in case you want to have
several versions installed simultaneously:
Shortcut in Start Menu folder:
Installing…
Click Finish:
Desktop icon created:
If you set Add CMake to the system PATH ...
checkbox then CMake can be
accessed via
terminal
(otherwise you need to add ...\bin
to
PATH environment variable):
> where cmake C:\soft\develop\cmake\3.4.1\bin\cmake.exe > where cmake-gui C:\soft\develop\cmake\3.4.1\bin\cmake-gui.exe > cmake --version cmake version 3.4.1 CMake suite maintained and supported by Kitware (kitware.com/cmake).
I am working on a project which require me to build and compile MariaDB database. To build MariaDB, CMake is required. CMake will first verify on which operating system, it is being run, then it will create and\or copy the appropriate directories, files on the operating system.
CMake
It is an open source software under the BSD-3-Clause license. C++ compiler is required to run CMake build system. CMake is used in the software development industry for build automation, testing, packaging and installation of software.
CMake is not a build system, it creates the build system files for other operating systems, which includes support for directory hierarchy.
Let’s install CMake on windows.
Download the code
https://cmake.org/download/
Choose executable from the list
At this time, the current version is 3.26.0
https://github.com/Kitware/CMake/releases/download/v3.26.0/cmake-3.26.0-windows-x86_64.msi
Install CMake from the executable
Step 1 Double click on the downloaded executable file
Step 2 Follow the instructions on the screen
Alert : Make sure to add CMake to the PATH
Step 2 Make sure CMake is installed on the system
Reboot your Machine.
# Command
where cmake
# Output
C:\Program Files\CMake\bin\cmake.exe
Enter fullscreen mode
Exit fullscreen mode
CMake is properly installed on your system.
Disclaimer: I have been working on a project which require me to install, configure, troubleshoot various packages on multiple Operating system. If you find any issue, please reach out to me.