2012-02-19 13 views
12

Sono un po 'insicuro di terminologia in questo dominio problematico, che è un problema quando cerco di cercare le cose.cmake "make run"

Sto usando CMake per il mio processo di compilazione. Mi piacerebbe creare un obiettivo Makefile in modo tale che io possa utilizzare make run per eseguire un determinato processo (in particolare, quello che ho appena creato con make). Mi rendo conto che potrei semplicemente creare uno script di shell, o semplicemente eseguire il comando digitandolo. Se stavo scrivendo un Makefile me stesso, mi piacerebbe fare questo in questo modo:


run: 
    ./path/to/binary 

Non ho mai scritto una Makefile me stesso, anche se - che è generato dal cmake - e io non sono sicuro di cosa mettere in il mio CMakeLists.txt per farlo generare il target make run desiderato.

Ho trovato il comando cmake 'execute_process', ma quello non sembra essere quello che sto cercando - Non voglio eseguire nulla durante il processo di compilazione.

Extra: Inoltre, mi piacerebbe essere in grado di fare qualcosa di simile al seguente:


CMAKE_COMMAND_ADD_MAKEFILE_TARGET (${CMAKE_PROJECT_DIR}/binary) 

Cioè, aggiungere il path/to/binary utilizzando una variabile CMake, se è possibile.

+0

Quindi cosa c'è che non va nell'obiettivo che hai scritto sopra? –

+0

Whoops, non lo ha chiarito: non sto scrivendo il mio Makefile, sto usando CMake. Modificare la domanda di conseguenza. – simont

risposta

13

Si sta cercando add_custom_target. Ad esempio:

add_custom_target(run 
    COMMAND binary 
    DEPENDS binary 
    WORKING_DIRECTORY ${CMAKE_PROJECT_DIR} 
) 
+0

Hai provato questo? Non riesco a ottenere il '$ {CMAKE_PROJECT_DIR}/binary' per funzionare, e non sono sicuro che sia solo un errore: ho capito come fare quello che sto cercando con' add_custom_target', però. – simont

+0

Scusa, non l'ho provato. È ora riparato. – Simon