cmake 中有没有办法找到定义目标的 CMakeLists.txt 文件的源目录?
类似的东西:
if (TARGET Foo)
message("Library Foo was alread built in ${LOCATION_OF_FOOS_CMAKE}")
else()
add_library(Foo ...)
endif()
Run Code Online (Sandbox Code Playgroud)
编辑:
不幸的是,我的 cmake 脚本必须在默认的 ubuntu 14.04 安装上工作。所以我仅限于cmake 2.8
您可以使用目标属性SOURCE_DIR(随CMake 3.7添加):
get_target_property(FOO_SOURCE_DIR Foo SOURCE_DIR)
Run Code Online (Sandbox Code Playgroud)
对于旧版本的 CMake,您可以覆盖 egadd_library()并定义您自己的SOURCE_DIR目标属性:
function(add_library _target)
_add_library(${_target} ${ARGN})
set_target_properties(${_target} PROPERTIES SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
endfunction(add_library)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2967 次 |
| 最近记录: |