📙 Система построения проектов CMake [2015] Д. В. Дубров
💾 Скачать книгу
CMake (от англ. Cross-platform Make — «Кроссплатформенный Make») — это кроссплатформенная утилита, обладающая возможностями автоматизации сборки программного обеспечения из исходного кода. Сам CMake не занимается непосредственно сборкой, а лишь генерирует файлы сборки из предварительно написанного скрипт-файла «CMakeLists.txt» и предоставляет простой единый интерфейс управления. Помимо этого, CMake способен автоматизировать процесс установки и пакетирования.
#unix #cmake #компиляторы #программирование #cpp #c #си
💾 Скачать книгу
CMake (от англ. Cross-platform Make — «Кроссплатформенный Make») — это кроссплатформенная утилита, обладающая возможностями автоматизации сборки программного обеспечения из исходного кода. Сам CMake не занимается непосредственно сборкой, а лишь генерирует файлы сборки из предварительно написанного скрипт-файла «CMakeLists.txt» и предоставляет простой единый интерфейс управления. Помимо этого, CMake способен автоматизировать процесс установки и пакетирования.
#unix #cmake #компиляторы #программирование #cpp #c #си
👍42🔥5❤🔥3
📗 Профессиональный CMake. Практическое руководство [2018] Скотт Крейг (рус + анг версии книги)
💾 Скачать книги
Тем, кто уже давно использует CMake, темы могут показаться относительно знакомыми, но материал также включает в себя знания, полученные в ходе реализации реальных проектов и взаимодействия с сообществом CMake. Даже опытным пользователям будет полезно прочитать хотя бы раздел "Рекомендуемая практика" в конце каждой главы.
#cmake #компиляция #программирование #cpp #cplusplus #си #C
💾 Скачать книги
Тем, кто уже давно использует CMake, темы могут показаться относительно знакомыми, но материал также включает в себя знания, полученные в ходе реализации реальных проектов и взаимодействия с сообществом CMake. Даже опытным пользователям будет полезно прочитать хотя бы раздел "Рекомендуемая практика" в конце каждой главы.
#cmake #компиляция #программирование #cpp #cplusplus #си #C
👍34🔥11❤7🤯2🤔1😍1
📕 Современный CMake для C++: откройте для себя лучший подход к созданию, тестированию и упаковке вашего программного обеспечения [2022] Рафал Свидзински
💾 Скачать книгу
В книге рассказывается о том, как формировать исходные каталоги, а также создавать целевые объекты и пакеты. По мере продвижения вы узнаете, как компилировать и связывать исполняемые файлы и библиотеки, как эти процессы работают в деталях и как оптимизировать все шаги для достижения наилучших результатов. Вы также поймете, как добавить в проект внешние зависимости: сторонние библиотеки, фреймворки тестирования, инструменты анализа программ и генераторы документации. Наконец, вы узнаете, как экспортировать, установить и упаковать ваше решение для внутренних и внешних целей. Прочитав эту книгу, вы сможете уверенно использовать CMake на профессиональном уровне.
📙 Modern CMake for C++: Discover a better approach to building, testing and packaging your software [2022] Rafal Swidzinski
💡 Ещё книга по теме:
📗 Профессиональный CMake. Практическое руководство [2018] Скотт Крейг
#cmake #unix #программирование #cpp #c #си #компиляция
💾 Скачать книгу
В книге рассказывается о том, как формировать исходные каталоги, а также создавать целевые объекты и пакеты. По мере продвижения вы узнаете, как компилировать и связывать исполняемые файлы и библиотеки, как эти процессы работают в деталях и как оптимизировать все шаги для достижения наилучших результатов. Вы также поймете, как добавить в проект внешние зависимости: сторонние библиотеки, фреймворки тестирования, инструменты анализа программ и генераторы документации. Наконец, вы узнаете, как экспортировать, установить и упаковать ваше решение для внутренних и внешних целей. Прочитав эту книгу, вы сможете уверенно использовать CMake на профессиональном уровне.
📙 Modern CMake for C++: Discover a better approach to building, testing and packaging your software [2022] Rafal Swidzinski
💡 Ещё книга по теме:
📗 Профессиональный CMake. Практическое руководство [2018] Скотт Крейг
#cmake #unix #программирование #cpp #c #си #компиляция
👍36🔥13😱2
Media is too big
VIEW IN TELEGRAM
00:00 Зависимости и хедера
08:22 Build.sh
11:48 Makefiles и декларативная модель
19:51 Ленивые и переменные
30:52 Автоматические переменные
36:15 Первая версия makefile
41:33 Функции и wildcards
47:40 Вторая версия makefile и зависимости от хедеров
56:36 Третья итерация: почти идеальный makefile
01:06:26 Знакомство с cmake
01:19:35 Бонус. Немного больше про cmake.
01:30:40 Окончательные уроки.
автор: tilir
🔨 Поговорим о двух столпах сборки C-проектов: Make и CMake. Их часто противопоставляют, но на самом деле они решают разные задачи в цепочке превращения кода в бинарник.
▪️Make (или make и Makefile) — Это менеджер задач, который исполняет команды, описанные в Makefile. Его логика проста: цели, зависимости и команды.
app: main.o utils.o
gcc main.o utils.o -o app
main.o: main.c
gcc -c main.c
utils.o: utils.c
gcc -c utils.c
clean:
rm -f *.o app
Запускаем
make — и он по цепочке зависимостей собирает всё, что изменилось.Плюс: Полный контроль, переносимость (если использовать общие команды).
Минус: Писать
Makefile для большого кроссплатформенного проекта — боль и рутина.▪️ CMake (и CMakeLists.txt) — это мета-сборщик или система генерации скриптов сборки. CMake не компилирует сам, а генерирует нативные файлы для других систем: Makefile для Linux/macOS, .sln для Visual Studio, проект для Xcode и т.д.
cmake_minimum_required(VERSION 3.10)
project(MyApp)
add_executable(app main.c utils.c)
Запускаем так:
mkdir build && cd build
cmake ..
make
Плюс: Кроссплатформенность, управление зависимостями (find_package), относительная простота для сложных проектов.
Минус: Свой язык и абстракция, которая иногда «утекает».
▫️ Make — низкоуровневый инструмент, который говорит компилятору как и когда делать свою работу.
▫️ CMake — высокоуровневый инструмент, который говорит разным системам сборки (включая Make), как они должны работать с вашим проектом.
▫️ CMake использует Make? Да! Чаще всего CMake генерирует Makefile, а затем вы вызываете make, который уже управляет компилятором.
▫️ Для маленьких, учебных или специфичных проектов — Makefile может быть быстрее и понятнее. Для средних/крупных или кроссплатформенных — CMake почти стандарт индустрии.
❓А что вы предпочитаете в своих проектах и почему? Может, у вас есть любимый лайфхак для Makefile или неочевидный трюк с CMake? Или вы вообще используете что-то третье (Meson, Bazel, простой скрипт)? Делитесь опытом!
#cpp #cmake #программирование #cplusplus #it #C
💡 Physics.Math.Code // @physics_lib
Please open Telegram to view this post
VIEW IN TELEGRAM
❤47👍29🔥11👨💻4🤩3🤔2🙈2🫡2❤🔥1