2010-05-11 4 views
5

J'ai besoin de construire une bibliothèque qui doit être placée à un emplacement personnalisé stocké dans la variable CUSTOM_OUTDIR. Actuellement, j'utilise le code suivant pour m'assurer que la bibliothèque est copiée à son emplacement correct.cmake add_library à un emplacement personnalisé

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} 
) 

Cependant, ce n'est pas une bonne solution que la copie est faite en post_build, et je me retrouve avec deux copies de la bibliothèque. Est-il possible d'installer CMAKE_BINARY_DIR uniquement pour la bibliothèque example afin qu'une seule copie de celle-ci soit conservée au bon emplacement?

Répondre

8

La commande

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

devrait faire ce que vous voulez. Je ne suis pas devant une machine de développement en ce moment, je vérifie plus tard.

Questions connexes