Учебник CMake
Может ли кто-нибудь предоставить ссылку на хороший учебник CMake, за исключением очень дорогого и труднодоступного официального?
Особенно интересно использовать проекты CMake для Fortran, но будет благодарен за любой хороший учебник.
Обновить.
Я уже нашел статьи CMake в общедоступной вики Kitware. Пример Fortran абсолютно бесполезен. = (Также во время ожидания ответов я играю с SCons. Выглядит неплохо. =)
Ответы
Ответ 1
Во-первых, я рекомендую очень хорошую вступительную лекцию на CMake и связанные с ней инструменты Билла Хоффмана, доступные на YouTube:
CMake/CPack/CTest/CDash Инструменты с открытым исходным кодом для сборки и развертывания программного обеспечения на С++
Далее, сделайте быстрый обзор и почувствуйте Скрипт CMake, быстрый и простой examples, а также немного вкус Синтаксис CMake, поэтому он поможет вам прочитать сценарии CMake.
Теперь вы можете сразу перейти на Tutorial, который доступен в CMake CVS. Это не разговор, а материал учебника кода, который используется в мастерской книги CMake.
Разумеется, вам нужно будет обратиться к manual, чтобы узнать подробности о различных макросах.
После того, как вы поймете основы CMake, вы можете начать копаться в более сложных методах, а также читать существующие файлы CMakeLists.txt, чтобы увидеть, как другие взломают сценарии CMake.
Для реальных примеров с всесторонним прохождением проверьте недавно анонсированный многочастный учебник из Viger GPU Lab в GitHub.
Существует также немного устаревший двухуровневый учебник Bruno Abinader с хорошим комментарием:
Я также могу рекомендовать эмпирический подход к CMAKE
Я также нашел Документация KDE для сценариев CMake очень полезен. Это включает очень хорошее введение Development/Tutorials/CMake. Однако некоторые специфические функции KDE и пользовательские макросы могут немного беспокоить.
Я думаю, что это хороший материал для начала. Кроме того, не забывайте о списках рассылки CMake с очень полезным сообществом.
Учебник от "Освоение CMake" теперь онлайн! - только что объявил Билл Хоффман в списке рассылки. Здесь Учебник CMake теперь в Интернете
Обучение CMake (PDF) - учебник, написанный Pau Garcia я Quiles
CMake: Начало работы - всеобъемлющий учебник из Wiki проекта MASH.
Вот видео с вебинара, записанного в марте 2012 года - Введение в CMake, настоятельно рекомендуется.
The Ultimate Guide to Modern CMake от Rico Huijbers - посвященный проектам C/С++, объясняет импортированные/экспортированные цели и файлы конфигурации проекта тоже.
Вот репозиторий Git с презентация учебника CMake, подготовленная Эриком Нуларом, доступная в различных печатных форматах.
Вот 50-страничный PDF с Изучение CMake от Pau Garcia я Quiles.
Разработчики Fortran, но не только, могут найти эти две статьи полезными:
Наконец, Проект Awesome CMake, который поддерживает кураторский список потрясающих сценариев, модулей, примеров и других файлов CMake.
Пожалуйста, сообщите о любых неработающих ссылках в комментариях ниже.
Ответ 2
Fortran должен быть почти таким же, как C/С++. Просто добавьте файлы .f или .f90 вместо файлов .c или .cxx, также включите Fortran в вызов проекта. CMake 2.8 имеет лучшую поддержку версий Fortran для CMake. У CMake есть очень хорошая поддержка Fortran. Он может анализировать исходный код и заказывать сборку на основе требуемого поколения файлов .mod, которое будет происходить во время сборки Fortran. Если у вас есть конкретные вопросы о Fortran или компиляторе, который не работает, список рассылки CMake будет местом, куда нужно идти.
Что-то вроде этого:
project(testf C CXX Fortran)
add_library(hello STATIC hello.f)
add_library(world ${_SHARED} world.f world.def)
add_executable(testf testf.f)
target_link_libraries(testf hello world)
Это из теста Fortran в CMake:
http://public.kitware.com/cgi-bin/viewcvs.cgi/Tests/Fortran/?root=CMake
(НЕ ДОСТУПНО ЛЮБОЙ)
У CMake также есть модуль для определения связи C/Fortran:
http://public.kitware.com/cgi-bin/viewcvs.cgi/Modules/FortranCInterface.cmake?revision=1.19.2.2&root=CMake&view=markup
Ответ 3
Просто, чтобы вы знали, что я переместил свой блог на новый хост (http://brunoabinader.com), и учебные пособия CMake были перемещены (post link). Я намерен продолжить серию учебных руководств, таких как интернационализация (i18n), документация (doxygen, qdoc), интеграция единичных тестов, режимы отладки/выпуска, многоплатформенная поддержка и другие.
Ответ 4
Как насчет этого:
cmake_minimum_required (VERSION 2.6)
project (hello)
enable_language (Fortran)
add_executable (hello hello.for)
Имея .for файл следующим образом:
Program heyDEM
write (*,*) 'Hello heyDEM!'
End Program heyDEM
Это очень простой, но должен помочь как введение
Ответ 5
Для самого CMake эти ссылки, перечисленные выше, отвечают на все, что вы можете найти.
Из моего опыта практика - это лучшее, что вы можете сделать, и ее официальная документация на их веб-сайте всегда является лучшим ресурсом для справки.
Трудная часть обучения CMake - это когда вы хотите делать некоторые специальные вещи, которые CMake не предоставляет напрямую, и вам нужно выяснить способ заставить его работать.
Есть несколько проектов с открытым исходным кодом, уже поставляемых с CMake, такими как Curl и Boost, если вы хотите увидеть, как CMake фактически используется в супер сложном реальном проекте. Это всегда хорошее место для начала.
Кстати, проблема SCON заключается в его зависимости от Python и для нас, нам нужно построить AIX/Solaris/Linux (CentOS и RedHat)/HP-UX. Таким образом, вы, вероятно, не хотите Python, особенно более низкие версии не работают должным образом с CMake.
Ответ 6
Вот как я преуспел некоторое время назад:
PROJECT(FORTRAN_APP CXX Fortran)
SET(APP_NAME MyApp)
ADD_EXECUTABLE(${APP_NAME} main.cpp test1.F test2.f test3.f90)
SET_TARGET_PROPERTIES(${APP_NAME} PROPERTIES LINKER_LANGUAGE CXX)
Ссылка: Список рассылки CMake