Я не понимаю использование INSTALL_DIR в команде ExternalProject_Add. Я пытаюсь использовать его, но он не работает. Вот пример CMakeLists.txt, используя Eigen-библиотеку, которая быстро компилируется:
cmake_minimum_required (VERSION 2.6)
project (example CXX)
include(ExternalProject)
include(ProcessorCount)
set(CMAKE_VERBOSE_MAKEFILE ON)
ProcessorCount(N)
if(NOT N EQUAL 0)
set(CMAKE_BUILD_FLAGS -j${N})
endif()
ExternalProject_Add
(
mylib
PREFIX myprefix
DOWNLOAD_COMMAND wget http://bitbucket.org/eigen/eigen/get/3.2.4.tar.gz && tar xvzf 3.2.4.tar.gz -C mylib --strip-components=1
)
Я выбрал следующую иерархию проекта:
project
CMakeLists.txt
build/
Из репозитория сборки я печатаю:
cmake ..
make
Процесс установки завершается с сообщением:
файл не может создать каталог:/usr/local/include/eigen3.
Возможно, нужны административные привилегии.
Насколько я понимаю, это означает, что мне нужно определить "префикс" во время этапа настройки:
cmake -D CMAKE_INSTALL_PREFIX=$INSTALL_DIR ..
Но переменная INSTALL_DIR уже определена в команде ExternalProject_Add. Тем не менее, я получаю ту же ошибку, когда я изменяю значение INSTALL_DIR, добавляя
INSTALL_DIR myprefix/src/install
в команде ExternalProject_Add.
Итак, для чего полезен INSTALL_DIR? Что я делаю неправильно?
Конечно, я знаю, как предоставить свою собственную команду конфигурации, чтобы добавить префикс и решить проблему. Но это не мой вопрос. Мой вопрос: если я должен это сделать, какова цель INSTALL_DIR?