Утилита для сборки проектов на C/C++.
Запуск в командной режиме: cmake path/to/CMakeLists/txt <options>
Текстовый интрфейсинтерфейс: ccmake path/to/CMakeLists/txt — заметно удобнее для настройки сборки большого проекта типа ROOT/GEANT4 чем вбивать команды.
Пример
Code Block |
---|
CMAKE_MINIMUM_REQUIRED(VERSION 2.6 FATAL_ERROR) # Задаем минимальныю версию cmake PROJECT(geant4-thunderstorm) # Задаем имя проекта FIND_PACKAGE(Geant4 REQUIRED ui_all vis_all) # Пытаемся автоматически найти GEANT4, # Будет успешно если путь к cmake модулям GEANT4 будет в переменных окружения системы # Эпик фейл если GEANT4 не найден IF(NOT Geant4_FOUND) MESSAGE(FATAL_ERROR "Geant4 not found!") ENDIF(NOT Geant4_FOUND) Подключаем папки в котрых лежат нужные нам заголовочные файлы (header file: .hh, .hcc etc) INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/include) INCLUDE(${Geant4_USE_FILE}) INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/../g4npm/include) # Ручной поиск библиотек find_library(geant4 NAMES geant4 PATHS ${PROJECT_SOURCE_DIR}/../g4npm/lib) find_library(utils NAMES utils PATHS ${PROJECT_SOURCE_DIR}/../g4npm/lib) #Cоздаем переменную содержащую пути к исходним файлам FILE(GLOB sources ${PROJECT_SOURCE_DIR}/src/*.cc) # Создаем исполняемый файл ADD_EXECUTABLE(geant4-thunderstorm.exe main.cc ${sources} ${headers}) # Линкуем исполняемый файл и внешние билиотеки TARGET_LINK_LIBRARIES(geant4-thunderstorm.exe ${Geant4_LIBRARIES} ${geant4} ${utils}) |
Рецепты
Вывести все переменные используемые в файле
...