2011-10-17 13 views

Respuesta

6

suena como usted quiere algo similar a esto:

add_custom_command(OUTPUT B 
    COMMAND ${CMAKE_COMMAND} -Dinput=A -P script_that_generates_B.cmake 
    DEPENDS A 
) 

Donde "B" es la ruta completa al archivo de salida, "A" es la ruta completa a algún archivo de entrada, y el comando es algo que se ejecuta en tiempo de compilación para producir B siempre que A cambie.

Para que la regla que produce B se ejecute en tiempo de compilación, otra cosa también debe depender de B. Debería aparecer como un DEPENDS de un add_custom_target que está en "todo" o como un archivo fuente en un comando add_library o add_executable para activar el comando.

EDIT:

También puede utilizar el constructo

if(file1 IS_NEWER_THAN file2) 

en CMake configurar el tiempo, si es necesario. La documentación del comando IF es bastante larga, pero searching on this page para IS_NEWER_THAN produce este nugget:

"Verdadero si el archivo1 es más reciente que el archivo2 o si uno de los dos archivos no existe. El comportamiento está bien definido solo por completo caminos."