cmake - microsoft - visual studio installer
Agregue dependencia al propio sistema de generaciĆ³n generado por CMake (1)
Desde CMake 3.0, puede agregar dicho archivo a la propiedad del directorio CMAKE_CONFIGURE_DEPENDS
. Esta propiedad contiene una lista de archivos; si alguno de ellos cambia, CMake activará la reconfiguración.
Aquí hay un pequeño ejemplo. Suponiendo que su Doxyfile
se genera a partir de Doxyfile.in.1
y Doxyfile.in.2
en el directorio de origen actual, la propiedad podría ser utilizada así:
set_property(
DIRECTORY
APPEND
PROPERTY CMAKE_CONFIGURE_DEPENDS
Doxyfile.in.1
Doxyfile.in.2
)
Si está utilizando CMake 2.x, la propiedad CMAKE_CONFIGURE_DEPENDS
no está disponible, pero puede usar el siguiente truco:
Pase los archivos a través de configure_file()
, incluso si los COPYONLY
en algún lugar y no utiliza las copias resultantes. configure_file()
introduce precisamente la dependencia del sistema de compilación que estás buscando.
Esto funciona, pero agrega la sobrecarga de copiar el archivo.
(Nota: Este truco también fue el contenido original de esta respuesta, ya que no tenía conocimiento de CMAKE_CONFIGURE_DEPENDS
al momento de responder).
En resumen: sé cómo agregar dependencias a los objetivos, en un sistema de compilación generado por CMake. Pero me gustaría agregar dependencias al propio sistema de compilación generado.
Pregunta más larga: en el proceso de compilación generado por CMake de cgal , nos gustaría que CMake vuelva a ejecutar automáticamente el paso de configuración cuando se modifiquen ciertos archivos. Los detalles no necesarios se ocultan a continuación:
De hecho, generamos usando CMake el sistema de compilación para las bibliotecas / ejemplos / demos de CGAL, pero también al mismo tiempo el sistema de compilación para nuestra documentación generada por Doxygen.
Doxyfile
se genera a partir de varios archivos.
Cuando el generador de CMake es " Makefile
", hay un objetivo especial en el Makefile
, que se llama rebuild_cache
, pero ese objetivo (en el nivel Makefile) no es un CMake-target. Y de todos modos, busco una solución que sea multiplataforma, es decir: utilizable con todos los generadores CMake. Tengo la impresión de que lo que quiero todavía no es factible con CMake. ¿Puede confirmar, para poder completar una solicitud de función documentada?