Pregunta

Quiero una parte del CMakeLists.txt archivo para ser ignorado cuando un usuario llama

make package

Por lo tanto, estoy buscando una variable como cmake_command o cmake_packaging para poder hacerlo

if (CMAKE_COMMAND EQUAL 'package') ...

o

if (CMAKE_PACKAGING) ...

¿Existe esto? ¿Se puede lograr?

¿Fue útil?

Solución

CMake genera archivos de fabricación que contienen algunos objetivos "predefinidos" que siguen las convenciones esperadas por aquellos que los usan. Objetivos como todos, instalar, paquete y prueba.

El 'Instalar' y el 'Paquete' hacen que los objetivos típicamente, de forma predeterminada, dependan de la tarea de marca 'All'. (De modo que si escribe 'hace la instalación', primero hace todo "para asegurarse de que todo esté actualizado antes de que ocurra la instalación. De manera similar con el 'paquete').

Lo que realmente hace 'hacer paquete' es llamar a Cpack debajo de las portadas:

/full/path/to/cpack --config ./CPackConfig.cmake

Puede ver esta línea de comando invocada si ejecuta:

make package VERBOSE=1

¿Qué parte de su archivo cmakelists.txt desea omitir en el caso de empaque? No hay una variable como la que está buscando, porque el empaque no ocurre en CMake Configuración Tiempo; Ocurre más tarde, después del tiempo de compilación, cuando el usuario invoca explícitamente 'hacer paquete' o 'cpack'.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top