Задавшись этим вопросом я, в первую очередь, сформулировал требования: жесткие и опциональные (но желательные) для системы сборки и графической среды разработки.
Сразу хочу отметить что речь идет о написании C++ кода не под какую-то специфичную платформу типа Android или фреймворка, например Qt, — где все уже готово, как с построением так и с редактированием кода, а об generic коде не привязанному к конкретной платформе или фреймворку.
Читать полностью »
Рубрика «cmake» - 3
В чем набрать и чем собрать C++ проект
2019-03-05 в 13:23, admin, рубрики: ant, build system, c++, cmake, eclipse, google test, gradle, IDE, kdevelop, make, netbeans, qt, QtCreator, scons, Разработка под LinuxПолное руководство по CMake. Часть третья: Тестирование и пакетирование
2018-12-20 в 16:28, admin, рубрики: C, c++, cmake, автоматизация рутины, для начинающих, компиляция, руководство для новичков, руководство для разработчика, руководство для чайников, системы сборкиВведение
Данная статья повествует о тестировании и пакетировании программ при помощи CMake, гибкого и универсального набора утилит для разработки различных программных продуктов. Строго рекомендуется прочитать первую и вторую части руководства во избежание непонимания синтаксиса и принципа работы CMake.
DEV Labs 2018. Онлайн-митап для C++ разработчиков. 15 декабря
2018-12-07 в 11:38, admin, рубрики: c++, canvas, cmake, Emscripten, gpu, html5, qmake, webassembly, Блог компании LuxoftУважаемые коллеги!
Приглашаем вас на финальный митап серии DEV Labs в 2018 году, который состоится 15 декабря и будет посвящён разработке на C++.
Для этого митапа мы собрали программу из трёх докладов, основанных на реальных примерах из каждодневной рабочей практики.
Многопоточный С++ STL на графических процессорах. Дмитрий Микушин расскажет о том, почему программировать GPU трудно, но нужно и покажет реализацию некоторых подходов с помощью Thrust;
Агрегатирование сборки сложного проекта. Андрей Вуколов рассмотрит применимость агрегатированной сборки в проекте с учетом встроенности в существующий ПАК и агрегатирует сборку на примерах qmake и CMake;
«Что сейчас произошло?!» Станислав Ивочкин, отвечая на вопрос – «Что происходит после нажатия Enter в строке браузера?», заглянет под капот одного из простейших действий, совершаемых пользователем. Посмотрим на работу парсеров, компиляторов и интерпретаторов, графических фрейворков и системных библиотек.
Читать полностью »
Полное руководство по CMake. Часть вторая: Система сборки
2018-12-04 в 18:46, admin, рубрики: C, c++, cmake, автоматизация рутины, для начинающих, компиляция, руководство для новичков, руководство для разработчика, руководство для чайников, системы сборкиВведение
В данной статье рассмотрено использование системы сборки CMake, применяемой в колоссальном количестве проектов на C/C++. Строго рекомендуется прочитать первую часть руководства во избежание непонимания синтаксиса языка CMake, явным образом фигурирующего на протяжении всей статьи.
Полное руководство по CMake. Часть первая: Синтаксис
2018-11-28 в 16:48, admin, рубрики: C, c++, cmake, автоматизация рутины, для начинающих, компиляция, руководство для новичков, руководство для разработчика, руководство для чайников, системы сборкиВведение
CMake — это открытый и кросс-платформенный набор утилит, предназначенных для автоматизации тестирования, компиляции и создания пакетов проектов на C/C++. Написав однажды небольшой и понятный всем скрипт, Вы тем самым обеспечите одинаковую сборку вашего проекта на любых платформах, где доступен CMake.
Язык CMake, будучи транслированным в нативный файл сборки (например, Makefile или Ninja), определяет процесс всего управления проектом. В Вашем распоряжении, с функциональной стороны, есть лишь команды, которые могут образовываться в довольно сложные конструкции. С них мы и начнём.
Все, что вы давно просили, в одном релизе — CLion 2018.2
2018-07-31 в 10:30, admin, рубрики: C, c++, clang, CLion, cmake, Compilation Database, gradle, IDE, jetbrains, sanitizers, Блог компании JetBrains, ПрограммированиеПривет!
Не знаем, насколько жарко у вас за окном, но у нас в JetBrains эти недели точно жара — релизная. Одну за другой мы опубликовали обновленные версии 2018.2 почти всех наших инструментов на базе платформы IntelliJ: WebStorm, IntelliJ IDEA, PyCharm, DataGrip, GoLand, PhpStorm, RubyMine и CLion.
Для команды CLion этот релиз особенный, так как включает в себя результаты нашей работы по трем очень важных направлениям:
- Clangd как основа для нового экспериментального движка для разбора кода на C++.
- Улучшения производительности IDE за счет новых архитектурных решений.
- Новые проектные модели, поддерживаемые в CLion.
А также поддержка Google Sanitizers, возможность пересборки отдельного файла и многое другое!

Ниже мы поговорим про улучшения и нововведения подробно, а самые нетерпеливые могут прямо сейчас скачать бесплатную 30-дневную версию с нашего сайта и попробовать новые возможности на своем проекте или специально подготовленном демо-проекте с GitHub.
Читать полностью »
Использование Docker для сборки и запуска проекта на C++
2018-06-14 в 13:53, admin, рубрики: c++, cmake, docker, GTest, ПрограммированиеВ этой публикации речь пойдет о том, как выполнить сборку C++ проекта, использующего GTest и Boost, при помощи Docker. Статья представляет собой рецепт с некоторыми поясняющими комментариями, представленное в статье решение не претендует на статус Production-ready.
Зачем и кому это может понадобиться?
Предположим, что вам, как и мне очень нравится концепция Python venv, когда все нужные зависимости расположены в отдельной, строго определенной директории; или же вам необходимо обеспечить простую переносимость среды сборки и тестирования для разрабатываемого проекта, что очень удобно, например, при присоединении нового разработчика к команде.
Эта статья будет особенно полезна начинающим разработчикам, кому необходимо выполнить базовую настройку окружения для сборки и запуска C++ проекта.
Представленное в статье окружение можно использовать как каркас для тестовых заданий или лабораторных работ.
Релиз CLion 2018.1: новые возможности из С++17, поддержка WSL, CMake Install, плагин для Rust и многое другое
2018-03-30 в 10:03, admin, рубрики: C, c++, c++17, CLion, cmake, IDE, jetbrains, Rust, WSL, Блог компании JetBrains, ПрограммированиеПривет!
Вот и подоспел первый релиз CLion в этом году — 2018.1! В этом посте мы расскажем, что мы успели реализовать за эти месяцы и какие планы у нас на следующий релиз.

Cначала очень коротко о главном. В этот релиз вошли:
- Поддержка языка C++
- Поддержка возможности C++17: structured binding
- Поддержка возможности C++17: операторы if и switch с инициализаторами
- Множество баг-фиксов и улучшений
- Возможность использовать файлы конфигурации Clang-Tidy в CLion, а также настраивать опции для проверок из Clang-Tidy в интерфейсе CLion
- Улучшения для пользователей Windows
- Компилятор Microsoft Visual C++ включен по умолчанию
- Поддержка подсистемы WSL
- CMake и не только
- Вызов из IDE CMake Install
- Шаблоны для создания файлов CMakeLists.txt
- Возможность открыть файл или папку без проектной модели CMake
- Экспериментальная поддержка hex view в отладчике
- Улучшения редактора:
- “Хлебные крошки” (breadcrumbs) для C/C++
- Действие Unwrap
- Сворачивание управляющих конструкций
- Поддержка новых языков в CLion: Objective-C / Objective-C++, Rust, Fortran
Можно прямо сейчас скачать бесплатную 30-дневную версию с нашего сайта и попробовать новые возможности. Для этого мы даже подготовили специальный небольшой демо-проект. А ниже поговорим об улучшениях более подробно.
Читать полностью »
Детективная история с участием CMake 3.10 и Android Studio
2017-12-19 в 10:13, admin, рубрики: android, android studio, c++, cmake, ПрограммированиеDisclaimer: всё описанное ниже не является хорошей практикой. Не следует читать этот текст как руководство к действию — его роль, скорее, развлекательная. По этой же причине, не имеет смысла советовать автору (мне) сменить язык, инструменты, ОС, железо, пол и страну пребывания.
У меня есть один проект. Для сборки он использует CMake, а также менеджер пакетов для C++ под названием Hunter, хорошо с CMake интегрированный. Проекту необходимо собираться для нескольких платформ, одна из которых — Android. Hunter собирает зависимости под Android без проблем — но ему нужна версия CMake >= 3.7, поскольку именно в 3.7 была добавлена улучшенная поддержка этой платформы. Эта очень важная деталь.
Читать полностью »