cmake add_library在自定义位置

dzh*_*lil 5 cmake

我需要构建一个库,该库将放置在存储在变量CUSTOM_OUTDIR中的自定义位置.目前,我使用以下代码来确保将库复制到其正确的位置.

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}
)
Run Code Online (Sandbox Code Playgroud)

但是,这不是一个好的解决方案,因为复制是在post_build完成的,我最终得到了两个库的副本.有没有办法只为example库设置CMAKE_BINARY_DIR,以便只有一个副本保存在正确的位置?

Mai*_*ann 8

命令

set_target_properties(example PROPERTIES 
  LIBRARY_OUTPUT_DIRECTORY "${CUSTOM_OUTDIR}"
)
Run Code Online (Sandbox Code Playgroud)

应该做你想做的事.我现在不在开发机前,稍后检查.