2011-10-17 10 views

risposta

6

Sembra che si desidera qualcosa di simile a questo:

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

Dove "B" è il percorso completo del file di output, "A" è il percorso completo ad alcuni file di input, e il comando è qualcosa che viene eseguito al momento della compilazione per produrre B ogni volta che A cambia.

Per eseguire la regola che produce B in fase di costruzione, anche qualcos'altro deve dipendere da B. Dovrebbe apparire come DEPEND di un add_custom_target che si trova in "all" o come file di origine in un comando add_library o add_executable per attivare il comando da eseguire.

EDIT:

È inoltre possibile utilizzare il costrutto

if(file1 IS_NEWER_THAN file2) 

a CMake configurare l'ora, se necessario. La documentazione del comando IF è piuttosto lungo, ma searching on this page per IS_NEWER_THAN produce questo pepita:

"Vero se file1 è più recente di file2 o se uno dei due file non esiste comportamento è ben definito solo per la piena. sentieri ".