tutorial make descarga cmake

cmake - make - ¿Para qué sirve INSTALL_DIR en el comando ExternalProject_Add?



cmake vs make (1)

De lo que encontré en esta discusión https://www.mail-archive.com/[email protected]/msg51663.html (desplácese hasta el final de la página para navegar a través de los mensajes de la secuencia), de hecho, es algo bastante común use CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/contrib

Además, acechando a través del módulo ExternalProject.cmake descubrí que el único efecto que tiene este directorio es que CMake creará el directorio especificado en INSTALL_DIR antes de hacer cualquier otra cosa.

Además, establecerá la propiedad que puede reunir a través del comando ExternalProject_Get_Property(${project_name} install_dir) .

Y eso es más o menos.

// A partir de CMake versión 3.2.2

No entiendo el uso de INSTALL_DIR en el comando ExternalProject_Add. Intento usarlo, pero parece que no funciona. Aquí hay un ejemplo de un CMakeLists.txt, usando la biblioteca Eigen que se compila rápidamente:

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 )

Elegí la siguiente jerarquía de proyectos:

project CMakeLists.txt build/

Desde el repositorio de compilación, escribo:

cmake .. make

El proceso de instalación falla con el siguiente mensaje:

el archivo no puede crear el directorio: / usr / local / include / eigen3.
Quizás necesite privilegios administrativos.

Por lo que yo entiendo, significa que necesito definir un "prefijo" durante el paso de configuración:

cmake -D CMAKE_INSTALL_PREFIX=$INSTALL_DIR ..

Pero, la variable INSTALL_DIR ya está definida en el comando ExternalProject_Add. Sin embargo, aparece el mismo error cuando modifico el valor de INSTALL_DIR agregando

INSTALL_DIR myprefix/src/install

en el comando ExternalProject_Add.

Entonces, ¿para qué sirve INSTALL_DIR? ¿Qué estoy haciendo mal?

Por supuesto, sé cómo proporcionar mi propio comando de configuración para agregar un prefijo y resolver el problema. Pero no es mi pregunta. Mi pregunta es: si tengo que hacer eso, ¿cuál es el propósito de INSTALL_DIR?