gpt4 book ai didi

cmake - 查找定义目标的目录

转载 作者:行者123 更新时间:2023-12-04 16:30:43 26 4
gpt4 key购买 nike

cmake 中有没有办法找到定义目标的 CMakeLists.txt 文件的源目录?

类似的东西:

if (TARGET Foo)
message("Library Foo was alread built in ${LOCATION_OF_FOOS_CMAKE}")
else()
add_library(Foo ...)
endif()

编辑:
不幸的是,我的 cmake 脚本必须在默认的 ubuntu 14.04 安装上工作。所以我仅限于 cmake 2.8

最佳答案

您可以使用目标属性 SOURCE_DIR (添加 CMake 3.7 ):

get_target_property(FOO_SOURCE_DIR Foo SOURCE_DIR)

对于旧版本的 CMake,您可以覆盖例如 add_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)

关于cmake - 查找定义目标的目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44064511/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com