2010-05-11 2 views
5

Ho bisogno di creare una libreria che deve essere collocata in una posizione personalizzata memorizzata nella variabile CUSTOM_OUTDIR. Attualmente, sto usando il seguente codice per assicurarmi che la libreria sia copiata nella sua posizione corretta.cmake add_library in una posizione personalizzata

ADD_LIBRARY(example MODULE example.c) 

GET_TARGET_PROPERTY(FILEPATH example LOCATION) 
ADD_CUSTOM_COMMAND(
    TARGET example POST_BUILD 
    COMMAND ${CMAKE_COMMAND} 
    ARGS -E copy ${FILEPATH} ${CUSTOM_OUTDIR} 
) 

Tuttavia, questo non è una buona soluzione, come la copia è fatto post_build, e io alla fine con due copie della biblioteca. C'è un modo per configurare CMAKE_BINARY_DIR solo per la libreria example in modo che solo una sua copia venga mantenuta nella posizione corretta?

risposta

8

Il comando

set_target_properties(example PROPERTIES 
    LIBRARY_OUTPUT_DIRECTORY "${CUSTOM_OUTDIR}" 
) 

dovrebbe fare quello che vuoi. Non sono di fronte a una macchina di sviluppo in questo momento, controllando più tardi.