tutorial make descarga cmake

descarga - cmake vs make



ConfiguraciĆ³n de CMAKE_INSTALL_PREFIX desde el archivo CMakeLists.txt (1)

¿Cómo configuro CMAKE_INSTALL_PREFIX en mi archivo raíz CMakeLists.txt?

He estado haciendo

cmake_minimum_required(VERSION 2.8) project(MyProject) # Set default install prefix set(CMAKE_INSTALL_PREFIX ${CMAKE_SOURCE_DIR})

con la esperanza de que las instalaciones se destinen a carpetas en el árbol fuente. Es decir,

install(TARGETS my_exe DESTINATION bin/)

se instalaría en ${CMAKE_SOURCE_DIR}/bin/ . En cambio, sigue tratando de escribir en /usr/local/bin (el predeterminado para Ubuntu 14.04).

Intenté las respuestas a esta pregunta , pero aún obtengo el usr/local/ estándar como mi CMAKE_INSTALL_PREFIX cuando reviso CMakeCache.txt.

La única solución de trabajo que tengo es hacer

install(TARGETS my_exe DESTINATION "${CMAKE_SOURCE_DIR}/bin/")

pero esto elimina la capacidad del usuario para especificar dónde se encuentra el directorio bin para instalar.

tl; dr Me gustaría make install se instale automáticamente en ${CMAKE_SOURCE_DIR} de forma predeterminada, en lugar de /usr/local/ .


Los desarrolladores de CMake sugieren usar el patrón dado para cambiar el valor predeterminado de CMAKE_INSTALL_PREFIX dentro de CMakeLists.txt :

# Use this snippet *after* PROJECT(xxx): IF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) SET(CMAKE_INSTALL_PREFIX <path> CACHE PATH <comment> FORCE) ENDIF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)

Usando ese enfoque

Use this snippet *before* PROJECT(xxx): SET(CMAKE_INSTALL_PREFIX <path> CACHE PATH <comment>)

no es recomendado :

... la solución depende de los detalles de implementación del comando PROJECT y es muy frágil ya que funciona "accidentalmente" para algunas versiones de CMake. No lo considero como una opción en absoluto.