Каково правильное использование CMake EXTERNALPROJECT ADD с репозиторием Git?

Я хотел бы узнать, как загружать и компилировать внешние библиотеки с помощью модуля внешнего проекта cmake.

например, скажем, что я хотел загрузить источник из библиотеки SFML https://github.com/LaurentGomila/SFML.git и скомпилировать его. Я попытался использовать что-то вроде следующего. К сожалению, я не могу понять, почему он не компилируется после клонирования источника: (

EXTERNALPROJECT_ADD(sfml
PREFIX ${sfml_PREFIX}

GIT_REPOSITORY https://github.com/LaurentGomila/SFML.git

INSTALL_DIR ${sfml_INSTALL_DIR}
CMAKE_ARGS ${sfml_CMAKE_ARGS})

1 ответов


возможно, ваши переменные не содержат значений, которые вы думаете, что они содержат... Дважды проверьте значение переменных sfml_*. Также дважды проверьте, что переменная CMake GIT_EXECUTABLE имеет значение, которое вы ожидаете после включения ExternalProject...

следующие CMakeLists.txt файл работает для меня на моем Mac с помощью CMake 2.8.5:

cmake_minimum_required(VERSION 2.8)
project(SfmlBuilder)
include(ExternalProject)

set(sfml_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/sfml")
set(sfml_INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}/sfml")
set(sfml_CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${sfml_INSTALL_DIR})

message("sfml_PREFIX='${sfml_PREFIX}'")
message("sfml_INSTALL_DIR='${sfml_INSTALL_DIR}'")
message("sfml_CMAKE_ARGS='${sfml_CMAKE_ARGS}'")
message("GIT_EXECUTABLE='${GIT_EXECUTABLE}'")

ExternalProject_Add(sfml
  PREFIX ${sfml_PREFIX}
  GIT_REPOSITORY https://github.com/LaurentGomila/SFML.git
  INSTALL_DIR ${sfml_INSTALL_DIR}
  CMAKE_ARGS ${sfml_CMAKE_ARGS}
)

он терпит неудачу во время установки для меня с разрешением отказано, потому что я не запускал "make" как sudo, и он пытается установить в абсолютный путь " / библиотека / фреймворки / sndfile.рамки"

еще один совет, тоже. Я заметил, что вы устанавливаете " / приложения / CMake 2.8-5.app / содержание / share / cmake-2.8 / модули / FindSFML.cmake " непосредственно в установку CMake... Это обычно не рекомендуется, так как эта модификация установки CMake, вероятно, исчезнет, если пользователь удалит и переустановит CMake. Или просто обновление до другого CMake. Или использует 2nd или 3rd CMake, который также установлен на компьютер.

вместо этого вы должны создать файл конфигурации проекта в своей собственной установке, который CMake может найти с помощью встроенных правил поиска пакетов в стандартных местоположениях. Прочтите мелкий шрифт документации CMake find_package для получения полной информации о файлах конфигурации проекта:

http://cmake.org/cmake/help/cmake-2-8-docs.html#command:find_package