Green-sell.info

Новые технологии
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Cmake linux установка

How to Install the Latest Version of CMake on Ubuntu 16.04/18.04 Linux

This post will guide you how to download and install the latest stable version of CMake on your Ubuntu Linux server. How do I install CMake tool from source code on Ubuntu Linux 16.04/18.04. How to install CMake from binary distrubtion on Ubuntu system.

What is CMake?

CMake is a cross-platform free and open-source software application for managing the build process of software using a compiler-independent method. It supports directory hierarchies and applications that depend on multiple libraries. CMake can be used to build, test, and package software on your system.

CMake can be used to control the software compilation process to geneate a native build environment that will compile source code, create libraries, generate wrappers and build executables in arbitray combinations.

Installing CMake from Default Ubuntu Repo

CMake package is available in the default Ubuntu 16.04 or 18.04 repository (it may be a older version of CMake), so you can use apt install command to install it directlry, type:

After installed, you can try to verify CMake version to check if it is successfully installed on your system, type:

From the above outputs you can see, the installed version of cmake is 3.10.2. You can go to the official download web page of CMake to see that the latest stable version of CMake is 3.13.4.

Installing CMake from PPA on Ubuntu 16.04

If you are using Ubuntu 16.04 system, you can also use a PPA repository to install CMake tool on your system with the following commands:

If CMake is alreay installed on your Ubuntu system, you can use apt upgrade command to upgrade CMake to the latest version, type:

Or you can add the following entries into /etc/apt/sources.list file:

Next, run the following command to update Package manager cache, type:

Then, install CMake tool using this PPA with the following command:

Installing CMake from Binary Distrubtion

You should know that the above two methods is not able to install the latest statble version (now the latest version is 3.13.4) of CMake. You can go to the official CMake webpage to download the latest version of CMake binary distrubtion file.

The Binary Distrubtion of CMake have two file extention, one is shell script, and another is archive file. The below will show you how to use those two files to install CMake.

For Shell Binary Distrubtion of CMake:

#1 Downloading CMake Bianary file with the following wget command:

#2 After intalled CMake Binary file, just execute it:

Note: you need to press y key on your keyboard to accept the license to continue the installation process. You also need to specify one target directory, if you type Y key, it will use the default setting to install CMake in the current directory.

#3 you need to change the current directory to ./cmake-3.13.4-Linux-x86_64/bin/, and all of CMake executables are located here.

For Archive Binary Distrubtion of CMake:

You can also install CMake from binary distrubtion its extention is tar.gz. You just need to download it to your local disk, and then extract all file to a specified direcotry.

#1 Download archive binary file of CMake with the following command:

#2 Extract all files from the above downloaded CMake archive binary file, type:

#3 changing the current directory to cmake-3.13.4-Linux-x86_64

#4 CMake executable will be in ./cmake-3.13.4-Linux-x86_64/bin/ directory.

#5 executing cmake script to check the current CMake version, type:

Installing CMake from Source Code

You can also compile the latest source code of CMake to install it. At this time, the latest stable version of CMake is 3.13.4. So you need to donwload the archive source code from the offical CMake web page, then compiling it. Just do the following steps:

#1 before downloading souce code, you need to unisntall the defualt older version of CMake by the default Ubuntu Package manager. Type:

#2 go to the official download page to get the latest version of CMake with the following wget command:

#3 extract all files from downloaded archive file, type:

#4 changing the current dirctory to cmake-3.13.4, type:

#5 compiling and install cmake with the following commands:

#6 checking CMake version to verify if it is installed successfully, type:

Installing CMake GUI

If you want to install CMake GUI on your Ubuntu system, you just need to use apt install command to install it, type:

Then you can use the following commands to check if CMake-gui package is installed normally:

You can run the cmake-gui command in Ubuntu terminal to launch the cmake gui, type:

Conclusion

You should know that how to install CMake tool on Ubuntu 16.04 or 18.04 from this guide, and you also know how to install CMake with the different methods on Ubuntu Linux server(default ubuntu repo, PPA, Source code). If you want to see more information about CMake, you can go the official web site of CMake directly.

Установка CMake в Ubuntu

CMake — это набор инструментов, который позволяет создавать, тестировать и упаковывать программное обеспечение. Это семейство инструментов доступно сразу на нескольких платформах и распространяется под открытым исходным кодом. Чаще всего CMake применяют для упрощения процесса компиляции созданного ПО путём использования простых кроссплатформенных файлов конфигурации.Также с помощью CMake создаются специальные файлы makefile — наборы инструкций, которые позволяют использовать возможности компилятора в дальнейшем при автоматизации сборки.

Автором CMake является команда Kitware. Создание этого ПО было продиктовано необходимостью формирования мощной среды, которая могла бы работать сразу на нескольких платформах с проектами, где открыт исходный код (прежде всего — с Insight Segmentation and Registration Toolkit и Visualization Toolkit). В этом материале вы узнаете, как установить CMake Ubuntu, используя графический интерфейс либо командную строку. Если вы пытаетесь собрать программу и получаете ошибку cmake not found, то эта статья будет для вас очень полезной.

Установка CMake в Ubuntu

1. Менеджер приложений

На момент написания этой статьи использовалась самая последняя версия CMake (3.15.2). Она была доступна в рамках известного всем магазина Snap Store. Ниже вы узнаете, как установить CMake через штатный в Менеджер приложений в Ubuntu.

Если вы не хотите тратить много времени на взаимодействие с командной строкой, то работа с графическим интерфейсом должна вам понравиться из-за своей простоты. На панели инструментов, расположенной слева, щёлкните значок Менеджер приложений.

В верхней части открывшегося окна нажмите на значок поиска и в появившейся строке введите CMake. Результаты отобразятся следующим образом:

Первый пакет в результатах поиска — это и есть нужный нам файл, доступный в рамках магазина Snap Store. Щёлкните по этой записи и вы попадёте в раздел с подробной информацией о приложении, который будет выглядеть так:

Читать еще:  Visual studio 2020 linux

Нажмите кнопку Установить, чтобы запустить процесс установки CMake. Возможно, вам придётся ввести свой пароль в окошке аутентификации, которе появится сразу после нажатия кнопки Установить. Это одна из форм защиты в Ubuntu — только авторизированный пользователь может устанавливать программное обеспечение в этой системе.

Введите свой пароль и нажмите кнопку Enter. После этого вы сможете наблюдать за статусом установки на отображающемся графическом индикаторе.

После успешной установки система выдаст вам следующее сообщение:

Из этого окна уже можно запустить CMake (или тут же, например, удалить).

2. Менеджер пакетов snap и apt

Такую же версию CMake можно установить через командную строку, если воспользоваться следующей командой:

sudo snap install cmake

Установка cmake ubuntu 18.04 из официальных репозиториев выполняется командой:

sudo apt install cmake

3. Сборка CMake из исходников

Если по каким-то причинам вы не хотите использовать графический интерфейс, или вы хотите самую свежую версию, можно прибегнуть к помощи командной строки. Нам надо будет скачать исходный код с официального сайта (https://cmake.org/download/), скомпилировать его, а потом установить.

Откройте командную строку — для этого либо найдите приложение «Терминал», либо нажмите сочетание клавиш Ctrl+Alt+T. Введите команду, которая начнёт загрузку исходного кода:

Когда tar.gz полностью скачается, его нужно распаковать. Воспользуемся следующей командой:

tar -zxvf cmake-3.15.2.tar.gz

Перейдём с помощью терминала к папке с распакованными файлами:

Чтобы провести компиляцию скачанного кода, выполним ещё одну команду:

После правильного выполнения всех операций, командная строка выдаст следующий результат:

Теперь можно запустить процесс установки с помощью простой команды:

Затем выполните ещё одну команду:

sudo make install

Процесс установки завершён. Теперь можно проверить версию CMake, чтобы убедиться в правильности своих действий.

На момент написания этого материала CMake был доступен в версии 1.15.2, с которой мы и работали. Теперь вы можете использовать этот инструмент для выполнения своих рабочих задач.

Как удалить CMake?

Если вы решили удалить CMake, который был установлен через Менеджер приложений, то этот процесс будет происходить следующим образом. Снова откройте Менеджер приложений, в открывшемся списке найдите пункт CMake (рядом с ним будет надпись Установлен). Нажмите на иконку приложения, перейдите к следующему экрану и найдите кнопку Удалить. Так будет запущен процесс деинсталляции.

После этого система вновь предложит ввести вам пароль — и сразу же после этого приложение будет удалено.

Development/Tutorials/CMake (ru)

Вам следует запустить ccmake ../kdelibs по крайней мере один раз, чтобы получить представление, какие переменные использует CMake. Нажмите T, чтобы увидеть также «продвинутые» переменные. Так, если CMake не находит что-либо, запустите ccmake и установите это вручную.

Аргументы командной строки

Вы можете установить некоторые параметры через аргументы командной строки:

  • CMAKE_INSTALL_PREFIX: cmake ../kdelibs -DCMAKE_INSTALL_PREFIX=/opt/kde4 это тоже самое, что ./configure —prefix=/opt/kde4
  • CMAKE_BUILD_TYPE: определяет, какой тип сборки: debugfull, debug, profile, relwithdebinfo и release. По умолчанию этот параметр равен relwithdebinfo (-O2 -g). Посмотрите FindKDE4Internal.cmake для более подробной информации.
  • KDE4_BUILD_TESTS=ON: создает файлы Makefile включающие инструкции по сборке тестов, создаёт цели ‘test’
  • KDE4_TEST_OUTPUT=xml: Unit tests using the QTestLib framework will create xml formatted logfiles.
  • KDE4_DISABLE_MULTIMEDIA=ON: Компилирует KDE без какой-либо мультимедиа (аудио, видео) поддержки.
  • RPATH_STYLE: Этот параметр больше недоступен. By default everything will be built with RPATH set correctly. If you don’t want RPATH at all, set CMAKE_SKIP_RPATH to TRUE.
  • BUILD_чёто=OFF: отключает сборку подпапки ‘чёто’.
  • WITH_чёто: есть несколько опций типа WITH_CUPS или WITH_Jasper. Если вы отключите их, cmake даже не будет искать этот пакет в системе. Если опция включена, cmake будет искать установочный пакет. Если у cmake не получится его найти, вы по-прежнему можете настроить cmake вручную как было описано выше.

Переменные окружения

Если у вас есть заголовочные файлы и библиотеки, установленные в нестандартные директории, которые cmake не может найти (например fink на Mac OSX установлена в /sw), тогда вам необходимо установить следующие переменные окружения (несмотря на похожие соглашения о наименовании, они не будут работать как аргументы командной строки cmake):

  • CMAKE_INCLUDE_PATH, например export CMAKE_INCLUDE_PATH=/sw/include
  • CMAKE_LIBRARY_PATH, например export CMAKE_LIBRARY_PATH=/sw/lib

Более подробную информацию о переменных окружения смотрите на this cmake.org wiki page

Идём дальше

Если cmake завершается с сообщением «Generating done», тогда ошибок не обнаружено, но если он завершается с сообщением «Configuring done», тогда обнаружены ошибки и вам необходимо их исправить. Когда cmake завершится успешно, запустится ваша система сборки (например make, KDevelop, XCode или MSVC) и соберет ваше приложение.

Если cmake завершился неудачно, вы увидите что-то вроде этого:

Это означает, что у вас не найдена требуемая библиотека (или другая зависимость). Для того, чтобы понять, какая библиотека не найдена, найдите в каталоге cmake/modules переменную, которую сmake не может найти. Например

В данном случае не найдена библиотека Xtst. Вам необходимо найти её (возможно установив libXtst-devel) и перезапустить cmake.

Использование CMake для простого приложения

Здесь самый простой пример CMakeLists.txt

Этот файл создает выполняемый код, который называется «hello» (или «hello.exe» в Windows) из файла исходного текста main.cpp. Вы можете смешивать файлы C и C++ так как вам хочется. Вы можете иметь много исполняемых файлов и библиотек в одном CMakeLists.txt. Один и тот же файл исходного текст может быть использован для нескольких целей или может быть скомпилирован для каждой цели отдельно. Возможно, самая главная часть языка cmake — это переменные:

Используйте команду SET(), чтобы установить значение переменной. Если вы составляйте список более чем из одной строки, переменная может быть списком. Список — это список строк, разделенных точкой с запятой. Если вы установили только один элемент, вам необходимо только значение. Для получение значения переменной используйте $. Вы можете совершать операции над списком, используя FOREACH():

Команды CMake не чувствительны к регистру. Имена переменных и параметров чувствительны к регистру.

Вы можете проверять различные условия:

In the cmake Wiki there is also a tutorial on using cmake to build KDE 4 software. It is recommended reading.

Использование CMake для проекта KDE

Здесь приведен файл CmakeList, который собрирает маленький проект KDE 4:

Переменные, макросы и другую полезную информацию, относящуюся к KD можно найти на странице Development/CMake/Addons for KDE.

Расширение CMake

CMake может быть расширен использованием скриптов cmake. CMake поставляется с некоторым количеством скриптов; в UNIX они по умолчанию устанавливаются в /usr/local/share/CMake/Modules/. Библиотеки KDE также устанавливаются с набором модулей cmake в share/apps/cmake/modules/. The files located there will be preferred over the ones in the system global cmake module path. Для определения программных пакетов существуют файлы FindFOO.cmake. Более подробно об этом смотрите здесь. Вы также можете писать макросы в CMake. Они достаточно мощные, чтобы делать всё что вам нужно для сборки приложения, но они не предназначены для того, чтобы использоваться как язык программирования общего назначения.

Преобразование приложений KDE на базе autotools в приложения KDE на базе CMake

В kdesdk/cmake/ вы можете найти скрипт am2cmake . Это скрипт на языке Ruby, поэтому необходимо чтобы Ruby был установлен. Запустите am2cmake в корневой директории дерева исходных кодов:

Читать еще:  Management studio linux

Не забудьте переключатель —kde4, в противном случае вы не получите файлов, подходящих для сборки приложений для KDE 4. Преобразованные файлы могут работать сразу, но сложные проекты требует некоторого дополнительного редактирования.

Вы можете также:

  • добавить дополнительные директории, исользуя INCLUDE_DIRECTORIES()
  • добавить дополнительные библиотеки, используя TARGET_LINK_LIBRARIES()
  • добавить дополнительные ключи компиляции, используя ADD_DEFINITIONS()
  • добавлять проверки для «configure» , подробнее об этом можно узнать на How To Do Platform Checks и How To Find Installed Software
  • take special care of former libtool convenience libraries. They are not supported by cmake, instead there will be a file ConvenienceLibs.cmake created. In this file you will find for every convenience lib a variable, which contains all source files of this convenience lib. For the targets which linked to this convenience lib, just add the variable to the sources.
  • a file AdditionalInfo.txt will be created. There you will see all *.in and *.in.in files of your project. The stuff done in these files will have to be converted manually to cmake.

Часто задаваемые вопросы

Как я могу научить мой любимый редактор синтаксису и выравниванию CMake ?

Прочитайте раздел CMake Wiki CMake Editors Support. В нем описывается, как настроить Emacs (XEmacs тоже работает), VIM, Kate, KWrite и KDevelop.

Мне необходимо создать некоторые файлы в процессе сборки. Как мне это сделать ?

Используйте ADD_CUSTOM_COMMAND(). Это объясняется в CMake wiki: How can I generate a source file during the build

Мне необходимо собрать исполняемый модуль, который будет использоваться позже в процессе сборки для создания файлов. Как мне это сделать ?

Предположим, что исполняемый файл называется genembed. В этом случае используйте KDE4_ADD_EXECUTABLE(foo RUN_UNINSTALLED $) для того, чтобы создать исполняемый файл. Параметр RUN_UNINSTALLED нужен для того, чтобы исполняемый файл запускать из каталога, в котором он был собран и связывать его с библиотеками, которые находятся в каталоге сборки. Чтобы достичь этого, исполняемый файл компилируется с установленной соответствующим образом RPATH и скрипт, названный как исполняемый файл, но имеющий расширение «.sh». Скрипт устанавливает LD_LIBRARY_PATH и вызывает существующий исполняемый файл. Использование этого скрипта в ADD_CUSTOM_COMMAND() описано ниже. Вы можете получить его имя и расположение запросом свойства WRAPPER_SCRIPT. Здесь дан полный пример, взяты из kdelibs/kstyles/keramik/ :

Как видите, genembed здесь обозначен как зависимость. Это значит, что cmake должен собрать genembed перед тем, как использовать это правило.

Я не хочу устанавливать параметр командной строки -DCMAKE_INSTALL_PREFIX. cmake поддерживает переменную окружения KDEDIR ?

Нет. $KDEDIR устарела в KDE 4.

Почему я получаю ошибки при компиляции, такие как /usr/lib/qt4/include/QtCore/qstring.h:536: undefined reference to `QString::fromLatin1_helper(char const*, int)’?

A: Если у вас старая версия Qt4 в директории qt/lib, вы должны удалить старые (4.0.1) файлы.

Как я могу указать cmake создавать подробные makefiles? Я хочу видеть, какие точно запускаются команды в процессе сборки.

Передайте переменную VERBOSE в make, то есть

Более подробную информацию можно найти на CMake wiki: Is there an option to produce more ‘verbose’ compiling?

В сгенерированном Makefile нет цели ‘make distclean’. Как я могу очистить всё, включаю кешированные файлы?

Удалите директорию, в которой было собрано приложение или просто удалите её содержимое.

  • Навигация
  • Home
  • Справка
  • Свежие правки
  • Contributor Help Pages
  • Tasks and Tools
  • Modify a page
  • Add new content
  • Page elements
  • Typographical guidelines
  • More markup help
  • Translator Help Pages
  • Получить учётную запись переводчика
  • Languages represented
  • Translation Workflow
  • Translate a Page
  • Off-line Translation
  • Translation Statistics
  • More Help pages
  • Инструменты
  • Ссылки сюда
  • Связанные правки
  • Спецстраницы
  • Версия для печати
  • Постоянная ссылка
  • Сведения о странице
  • Персональные инструменты
  • русский
  • Login with Phabricator

Donate to KDE Why Donate?

Visit the KDE MetaStore

Show your love for KDE! Purchase books, mugs, apparel, and more to support KDE.

How to Install CMake on Ubuntu 18.04 LTS

CMake is an open-source, cross-platform family of tools designed to build, test and package software. CMake is used to control the software compilation process using simple platform and compiler-independent configuration files, and generate native makefiles and workspaces that can be used in the compiler environment of your choice. The suite of CMake tools was created by Kitware in response to the need for a powerful, cross-platform build environment for open-source projects such as ITK and VTK.

In this article, we will describe how you can install CMake to your Ubuntu both through the UI and the command line.

We have run the commands and procedures mentioned in this article on a Ubuntu 18.04 LTS system.

Install CMake through the Ubuntu UI

The latest version of CMake at the time of writing this article was 3.15.2 and luckily available through the Snap Store. Here, we will explain how you can install it through the Ubuntu Software Manager.

Installation

For a person who does not want to open the Command Line much, installing software present in the Ubuntu repository through the UI is very simple. On your Ubuntu desktop Activities toolbar, click the Ubuntu Software icon.

In the following view, click on the search icon and enter “CMake” in the search bar. The search results will display Cmake as follows:

The first package listed in the search result is the one maintained by the Snap Store. From the Software Manager, click on the CMake entry to open the following view:

Click the Install button to begin the installation process. The following authentication dialog will display for you to provide your authentication details as only an authorized user can install software on Ubuntu.

Enter your password and click the Authenticate button. After that, the installation process will begin, displaying a progress bar as follows.

CMake will then be installed to your system and you will get the following message after a successful installation:

Through the above dialog, you can choose to directly launch CMake and even Remove it immediately for whatever reason.

Note: The same version of the software can be installed through the command line using the following command:

Remove CMake

If you want to remove CMake that was installed using the above method, you can remove it from your system as follows:

Open the Ubuntu Software Manager and search for CMake. You will see the “Installed” status in the search entry. Click this entry and then click Remove from the following view:

Then, the system will prompt you with an Authentication dialog. The software will be removed when you provide the password for the sudo user and click Authenticate on the dialog.

Install CMake through the Ubuntu Command Line

If you prefer the command line over the UI, here is the method you will need to follow in order to install the latest version of CMake. I also tried installing CMake through default Ubuntu repositories and also through PPA but none of them gave me the latest version. The only workable method involves downloading the source code from the Official CMake website “https://cmake.org/download/”, compiling it and then installing CMake through it.

Читать еще:  Asp net core deploy linux

Open the Ubuntu command line, the Terminal either through the Ctrl+Alt+T shortcut or through the Application launcher search.

Then, enter the following command to download the source code:

Once the tar.gz file is downloaded, enter the following command to extract it:

Then move to the extracted folder as follows:

Finally, run the following commands to compile and install CMake:

When CMake has bootstrapped, you will get the following output:

You can now make it using the following command:

And then install it as follows:

After the software is successfully installed, you can verify its installation and also if the correct version is installed, through the following command:

You can see that CMake 1.15.2 which was the latest version of the software at the time of writing this article is installed on my Ubuntu. You can now use the CLI tool to work with your software’s code.

Личный опыт разработки ПО

Сборка проектов с CMake. Введение

Для автоматизации сборки проектов традиционно используют системы сборки, такие как make на Unix подобных системах и nmake для компилятора Microsoft. Также традиционно написание файлов для сборки проекта под эти системы является задачей нетривиальной. Конечно в пользуясь только Mictosoft Visual Studio можно даже не подозревать о существовании этих файлов, так как интегрированная среда разработки достаточно удобно скрывает всю кухню, оставляя снаружи несколько диалоговых окон и кнопку Build. Но для сложных проектов использующих массу сторонних библиотек и кроссплатформенных проектов такой подход часто оказывается неприемлемым.

Кратко говоря make-файл представляет из себя описания последовательности действий необходимых для того чтобы достичь какой либо цели, например скомпилировать программу. На псевдокоде это может выглядеть примерно так:

Что нужно сделать?

Собрать программу hello_world.

Как ее делать?

Взять файлы hello_world.h и hello_world.cpp и запустить компилятор передав их в качестве параметров.

Что делать когда компилятор закончит работать?

Взять получившийся в результате работы компилятора объектный файлы hello_world.o и запустить линковщик передав ему этот файл.

Причем каждый подпроект может иметь свой файл сборки, а главный make-файл сможет пройти рекурсивно по подпроектам, выполнив его файл сборки, а потом собрать проект из этих компонентов.

Выглядит все просто, проблемы возникают дальше и проблем несколько:

  1. Разрешение зависимостей возникающих между частями проекта
  2. Синтаксическая сложность и неоднозначность классических make-файлов
  3. Привязка к конкретной утилите автоматической сборки и как следствие непереносимость на другие платформы

Для решения части этих проблем или всех сразу были созданы следующие инструменты: Automake (http://sourceware.org/automake/) , CMake (http://www.cmake.org/), SCons (http://www.scons.org/). Список далеко не полный.

Я предлагаю рассмотреть CMake, как простой для изучения, понятный, мощный и кроссплатформенный инструмент, который решает сразу все три проблемы. Подробности ниже.

Сам CMake не осуществляет сборку проекта, он лишь генерирует из своего файла сборки make-файл для конкретной платформы. Это может быть проект Microsoft Visual Studio, NMake makefile, проект XCode для MacOS, Unix makefile, Watcom makefile, проект Eclipse или CodeBlocks. Более того файлы CMake открывает как проект набирающая популярность среда разработки QtCreator.

Данный файл обычно называется CMakeLists.txt и содержит команды понятные CMake. Выполнив

Мы получим либо проект который можно открыть в вашей среде разработки, либо makefile по которому можно собрать проект запустив соответствующую систему сборки (make, nmake, wmake). Всегда можно явно указать, что должна генерировать программа, указав ключ –G с нужным параметром (просто запустите cmake, чтобы увидеть доступные варианты).

Где взять CMake?

Дистрибутив CMake можно скачать с официального сайта (http://cmake.org/cmake/resources/software.html) где есть версии для всех популярных платформ или установить из репозитория вашего дистрибутива Linux, скорее всего он там уже есть.

Hello, World!

Предлагаю рассмотреть простой CMake-файл:

Что здесь происходит?

  1. В первой строке просто указана минимальная версия CMake необходимая для успешной интерпретации файла.
  2. В третьей строке определяется переменная PROJECT и ей задается значение hello_world — так будет называться наша программа.
  3. О чем и говорится в пятой строке. Конструкция $ <ИМЯ_ПЕРЕМЕННОЙ>возвращает значение переменной, таким образом проект будет называться hello_world.
  4. В седьмой и десятой строках вводятся переменные содержащие список файлов необходимых для сборки проекта.
  5. И в последней строке идет команда собрать исполняемый файл с именем указанном в переменной PROJECT и из файлов имена которых находятся в переменных HEADERS и SOURCES.

Здесь написано больше, чем требует CMake, но зато этот шаблон удобно использовать где угодно, для этого достаточно изменить название проекта и имена файлов.

Как собрать библиотеку с CMake?

Точно также как и исполняемый файл, но в последней строке вместо команды add_executable, укажите команду add_library. В этом случае будет собрана статическая библиотека, для сборки динамической библиотеки надо указать параметр SHARED после имени библиотеки:

Немного о стиле

Не буду усложнять, просто расскажу о том стиле форматирования которым пользуюсь я для написания CMake-файлов. Правила достаточно лояльны:

  • Имена переменных пишутся английскими буквами в верхнем регистре
  • Команды CMake записываются английскими буквами в нижнем регистре
  • Параметры команд CMake пишутся английскими буквами в верхнем регистре
  • Команды CMake отделены пробелом от открывающей скобки

Где должен находится CMakeLists.txt?

Очень удобно в корне каждого проекта иметь директорию build с файлами сборки проекта, причем имя файла во всех директориях должно называться одинаково (название по умолчанию CMakeLists.txt отлично подойдет). Это позволит собирать сложные проекты рекурсивно подключая директории с подпроектами (о подключении подпроектов к проекту можно прочесть в моей заметке).

Создавать отдельную директорию, а не хранить файл в корне удобно, как из соображений четко организованной структуры проекта, так и потому, что CMake при работе создает ряд файлов, которые удобно хранить отдельно, чтобы не захламлять проект.

Сборка сложного проекта

Усложним задачу и соберем проект зависящий от библиотеки. Для этого надо сделать следующие вещи:

  1. Собрать библиотеку
  2. Подключить библиотеку к проекту

С пунктом 1 сложностей возникнуть не должно, о том как собрать исполняемый файл или библиотеку написано выше.

Теперь о том как эту библиотеку подключить. Сделать это можно добавив в CMakeLists.txt проекта три строки:

Первая строка нужна для того, чтобы указать путь (в данном случае это корень проекта) по которому компилятор будет искать подключаемые заголовочные файлы.

Во второй строке идет указание CMake взять файл из директории build подпроекта, выполнить его и результат работы положить в директорию ./bin/ИМЯ_БИБЛИОТЕКИ.

Третья строка должна быть в файле после команды add_executable и указывает, что проект надо линковать вместе с указанной библиотекой.

Можно добавлять эти команды вручную, но я предлагаю изменить шаблон, чтобы было можно изменять только одну строку, указывая имя библиотеки:

Ссылка на основную публикацию
Adblock
detector