2010-05-11 2 views
5

Мне нужно создать библиотеку, которая должна быть помещена в пользовательское местоположение, хранящееся в переменной CUSTOM_OUTDIR. В настоящее время я использую следующий код, чтобы убедиться, что библиотека скопирована в нужное место.cmake add_library в произвольном месте

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

Однако, это не является хорошим решением, так как копирование делается post_build, и я в конечном итоге с двумя копиями библиотеки. Есть ли способ настроить CMAKE_BINARY_DIR только для библиотеки example, так что только одна ее копия хранится в правильном месте?

ответ

8

Команда

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

должны делать то, что вы хотите. Сейчас я не прямо перед машиной, проверяя позже.

Смежные вопросы