Учебник 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