Национальный цифровой ресурс Руконт - межотраслевая электронная библиотека (ЭБС) на базе технологии Контекстум (всего произведений: 634620)
Контекстум
.

Система построения проектов CMake (628,00 руб.)

0   0
Первый авторДубров Д. В.
АвторыЮжный федеральный ун-т
ИздательствоРостов н/Д.: Изд-во ЮФУ
Страниц419
ID637301
АннотацияРабота посвящена инструменту CMake, который является современной системой для описания программных проектов и обладает богатыми возможностями. В учебнике изложен материал, достаточный для создания при помощи CMake проектов со сложной структурой, использующих внешние библиотеки или вспомогательные инструменты разработчика.
Кому рекомендованоУчебник предназначен для магистрантов Института математики, механики и компьютерных наук им. И. И. Воровича Южного федерального университета по направлению подготовки «Фундаментальная информатика и информационные технологии», изучающих курс «Разработка кроссплатформенных приложений». Также учебник может быть полезен всем студентам, аспирантам и специалистам, которые участвуют в разработке сложных программных проектов.
ISBN978-5-9275-1852-4
УДК004
ББК32.97
Дубров, Д.В. Система построения проектов CMake : учебник / Южный федеральный ун-т; Д.В. Дубров .— Ростов-на-Дону : Изд-во ЮФУ, 2015 .— 419 с. : ил. — ISBN 978-5-9275-1852-4 .— URL: https://rucont.ru/efd/637301 (дата обращения: 19.04.2024)

Предпросмотр (выдержки из произведения)

Принципы работы систем автоматического построения В этой главе мы коротко повторим основные принципы модульного программирования, которые понадобятся для дальнейшего изложения материала. <...> При использовании относительных путей расположение выходного каталога фиксируется относительно каталога проекта, изменение его требует очередного массового изменения настроек проектов. <...> В диалоговых окнах среды Qt Creator можно только устанавливать настройки, не указываемые в файлах проекта: каталог построения, параметры командной строки при вызове qmake и т. д. <...> Принципы работы систем автоматического построения — Возможность работы над проектами в средах Visual Studio, XCode, Qt Creator. <...> Принцип работы инструмента CMake аналогичен принципу работыqmake: из каталога исходных кодов считывается файл CMakeLists.txt с описанием проекта, на выходе инструмент генерирует файлы проекта для одной из множества конечных систем построения (рис. <...> Принципы работы систем автоматического построения Visual Studio (*.sln, *.vcxproj) Eclipse CMakeLists.txt cmake Code::Blocks (*.cbp) Makefile . <...> Генерация проектов при помощи утилиты CMake Следует отметить, что современные версии интегрированной среды Qt Creator в дополнение к описаниям проектов на языке qmake также поддерживают язык CMake. <...> Система CMake управляется при помощи универсального процедурного языка. <...> В то время как инструмент qmake позволяет в более простой и компактной форме выполнять описание проектов, использующих набор библиотек и инструментов Qt, при помощи CMake легче описывать проекты, которые используют другие библиотекииинструменты, а также решать нестандартные задачи, которые возникают при организации процесса построения [14]. <...> В состав CMake входит большое количество сценариев (модулей поиска) для наиболее популярных и распространённых в среде разработчиков пакетов. <...> Можно создавать собственные модули поиска на языке CMake, также можно встраивать поддержку CMake в собственные наборы библиотек. <...> Входные файлы Входными файлами на языке CMake являются <...>
Система_построения_проектов_Cmake.pdf
Стр.2
Стр.3
Стр.4
Стр.5
Стр.6
Стр.7
Система_построения_проектов_Cmake.pdf
УДК 681.3 ББК 32.85 Д79 Печатается по решению Редакционно-издательского совета Южного федерального университета (протокол №3 от 23 ноября 2015 г.) Рецензенты: кандидат физико-математических наук, доцент кафедры алгебры и дискретной математики мехмата ЮФУ М. Э. Абрамян; кандидат физико-математических наук, доцент кафедры программного обеспечения вычислительной техники и автоматизированных систем факультета информатики и вычислительной техники ДГТУ В. А. Стукопин Дубров, Д. В. Д79 Система построения проектов CMake : учебник / Д. В. Дубров ; Южный федеральный университет. — Ростов-на-Дону : Издательство Южного федерального университета, 2015. — 419 с. ISBN 978-5-9275-1852-4 Работа посвящена инструменту CMake, который является современной системой для описания программных проектов и обладает богатыми возможностями. В учебнике изложен материал, достаточный для создания при помощи CMake проектов со сложной структурой, использующих внешние библиотеки или вспомогательные инструменты разработчика. Учебник предназначен для магистрантов Института математики, механики и компьютерных наук им. И.И. Воровича Южного федерального университета по направлению подготовки «Фундаментальная информатика и информационные технологии», изучающих курс «Разработка кроссплатформенных приложений». Также учебник может быть полезен всем студентам, аспирантам и специалистам, которые участвуют в разработке сложных программных проектов. ISBN 978-5-9275-1852-4 УДК 681.3 ББК 32.85 © Южный федеральный университет, 2015 © Дубров Д. В., 2015
Стр.2
Оглавление Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1. Принципы работы систем автоматического построения . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.1. Модульное программирование . . . . . . . . . . . . . 11 1.2. Автоматизация построения проектов . . . . . . . . . 16 1.3. Обзор инструментов построения проектов . . . . . . 22 1.3.1. make . . . . . . . . . . . . . . . . . . . . . . . . . 23 1.3.2. Autotools. . . . . . . . . . . . . . . . . . . . . . . 26 1.3.3. Интегрированные среды разработки . . . . . . 29 1.3.4. qmake . . . . . . . . . . . . . . . . . . . . . . . . 35 1.3.5. CMake . . . . . . . . . . . . . . . . . . . . . . . . 39 1.4. Упражнения . . . . . . . . . . . . . . . . . . . . . . . . 42 1.4.1. Тест рубежного контроля . . . . . . . . . . . . . 42 1.4.2. Проектное задание . . . . . . . . . . . . . . . . 43 2. Основы языка CMake . . . . . . . . . . . . . . . . . . . . . 45 2.1. Основные концепции . . . . . . . . . . . . . . . . . . . 45 2.1.1. Генераторы . . . . . . . . . . . . . . . . . . . . . 45 2.1.2. Входные файлы . . . . . . . . . . . . . . . . . . 47 2.1.3. Пути . . . . . . . . . . . . . . . . . . . . . . . . . 48 3
Стр.3
Оглавление 2.2. Синтаксис . . . . . . . . . . . . . . . . . . . . . . . . . 50 2.2.1. Команды . . . . . . . . . . . . . . . . . . . . . . 50 2.2.2. Строки. . . . . . . . . . . . . . . . . . . . . . . . 51 2.2.3. Переменные . . . . . . . . . . . . . . . . . . . . 56 2.2.4. Свойства . . . . . . . . . . . . . . . . . . . . . . 60 2.2.5. Регулярные выражения. . . . . . . . . . . . . . 62 2.3. Примеры простых проектов . . . . . . . . . . . . . . . 65 2.4. Команды общего назначения . . . . . . . . . . . . . . 73 2.4.1. cmake_minimum_required() . . . . . . . . . . . 73 2.4.2. project(). . . . . . . . . . . . . . . . . . . . . . 74 2.4.3. include(). . . . . . . . . . . . . . . . . . . . . . 76 2.4.4. message(). . . . . . . . . . . . . . . . . . . . . . 79 2.5. Команды описания целей . . . . . . . . . . . . . . . . 81 2.5.1. add_executable(). . . . . . . . . . . . . . . . . 81 2.5.2. add_library() . . . . . . . . . . . . . . . . . . . 83 2.5.3. add_subdirectory() . . . . . . . . . . . . . . . 91 2.6. Команды настроек целей . . . . . . . . . . . . . . . . . 92 2.6.1. include_directories() . . . . . . . . . . . . . 92 2.6.2. target_include_directories() . . . . . . . . 94 2.6.3. add_definitions(), add_compile_options(). 98 2.6.4. target_compile_definitions() . . . . . . . . 101 2.6.5. target_compile_options() . . . . . . . . . . . 102 2.6.6. target_compile_features() . . . . . . . . . . 103 2.6.7. target_link_libraries() . . . . . . . . . . . . 105 2.6.8. add_dependencies() . . . . . . . . . . . . . . . 113 2.7. Команды обработки данных . . . . . . . . . . . . . . . 114 2.7.1. set(), unset(), option() . . . . . . . . . . . . . 114 4
Стр.4
Оглавление 2.7.2. math(). . . . . . . . . . . . . . . . . . . . . . . . 118 2.7.3. list(). . . . . . . . . . . . . . . . . . . . . . . . 119 2.7.4. string() . . . . . . . . . . . . . . . . . . . . . . 123 2.8. Команды управляющих конструкций . . . . . . . . . 130 2.8.1. if(), elseif(), else(), endif(). . . . . . . . . 130 2.8.2. while(), endwhile(), break(), continue() . . 140 2.8.3. foreach(), endforeach(). . . . . . . . . . . . . 141 2.8.4. function(), endfunction(), return() . . . . . 146 2.9. Команды работы с файлами . . . . . . . . . . . . . . . 150 2.9.1. get_filename_component() . . . . . . . . . . . 150 2.9.2. find_file(), find_library(), find_path(), find_program() . . . . . . . . . . . . . . . . . . 155 2.10. Команды добавления специальных целей . . . . . . . 160 2.10.1. configure_file(). . . . . . . . . . . . . . . . . 160 2.10.2. add_test(), enable_testing() . . . . . . . . . 166 2.10.3. install(). . . . . . . . . . . . . . . . . . . . . . 174 2.10.4. add_custom_target(). . . . . . . . . . . . . . . 189 2.10.5. add_custom_command() . . . . . . . . . . . . . . 195 2.11. Прочие команды. . . . . . . . . . . . . . . . . . . . . . 201 2.11.1. find_package() . . . . . . . . . . . . . . . . . . 201 2.11.2. get_property(), set_property(). . . . . . . . 209 2.12. Поддержка нескольких конфигураций построения . 217 2.12.1. Виды конфигураций. . . . . . . . . . . . . . . . 217 2.12.2. Выражения генераторов . . . . . . . . . . . . . 222 2.12.3. Информационные выражения. . . . . . . . . . 227 2.12.4. Логические выражения . . . . . . . . . . . . . . 235 2.12.5. Преобразующие выражения . . . . . . . . . . . 237 5
Стр.5
Оглавление 2.12.6. Вспомогательные выражения . . . . . . . . . . 247 2.13. Упражнения . . . . . . . . . . . . . . . . . . . . . . . . 248 2.13.1. Тест рубежного контроля . . . . . . . . . . . . . 248 2.13.2. Проектное задание . . . . . . . . . . . . . . . . 254 3. Примеры использования пакетов. . . . . . . . . . . . . . 256 3.1. OpenCV . . . . . . . . . . . . . . . . . . . . . . . . . . . 256 3.2. Boost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 3.2.1. Интерфейс подключения библиотек . . . . . . 267 3.2.2. Подключение заголовочной библиотеки. . . . 272 3.2.3. Подключение библиотеки с модулем компоновки . . . . . . . . . . . . . . . . . . . . 278 3.2.4. Частичная подмена стандартной библиотеки. 284 3.3. Qt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292 3.3.1. Интерфейс подключения библиотек . . . . . . 292 3.3.2. Использование инструментов Qt . . . . . . . . 303 3.3.3. Локализация приложения . . . . . . . . . . . . 324 3.3.4. Установка приложения . . . . . . . . . . . . . . 334 3.4. Crypto++ . . . . . . . . . . . . . . . . . . . . . . . . . . . 344 3.5. Инструменты разработки . . . . . . . . . . . . . . . . 371 3.5.1. Управление версиями. . . . . . . . . . . . . . . 371 3.5.2. Генерирование документации. . . . . . . . . . 378 3.6. Упражнения . . . . . . . . . . . . . . . . . . . . . . . . 394 3.6.1. Тест рубежного контроля . . . . . . . . . . . . . 394 3.6.2. Проектное задание . . . . . . . . . . . . . . . . 397 Заключение . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401 Библиография . . . . . . . . . . . . . . . . . . . . . . . . . . . 407 Ответы на тесты . . . . . . . . . . . . . . . . . . . . . . . . . . 409 6
Стр.6
Оглавление Предметный указатель. . . . . . . . . . . . . . . . . . . . . . 409 7
Стр.7