我有一个来自root的两个子目录,其中一个有行:
set(${LIBNAME}_publicheaders
LocalizeResource.h
)
Run Code Online (Sandbox Code Playgroud)
我希望能够从其他子目录访问此变量.我怎样才能做到这一点?
@ JoakimGebart的答案可能是更常见的方式.但是,您可以同时使用get_directory_property直接从第二子目录内实现你以后.
我在你的评论中看到,你已经习惯了${LIB_NAME}_publicheaders,但在你的问题中,你有${LIBNAME}_publicheaders.这可能是导致问题的原因,因为命令应该像这样工作:
get_directory_property(MyVar
DIRECTORY ${CMAKE_SOURCE_DIR}/abc
DEFINITION ${LIBNAME}_publicheaders)
Run Code Online (Sandbox Code Playgroud)
但是,有几个附带条件:
add_subdirectory(abc)在使用它之前调用add_subdirectory.LIBNAME也在set同一个子目录(abc)中,则需要首先检索该值.因此,虽然这可能是一种不太常见的解决方案,但它的优势在于它不会使用特定于子目录的变量"污染"全局命名空间 - 这可以通过引用另一个子目录的子目录来实现.
| 归档时间: |
|
| 查看次数: |
4284 次 |
| 最近记录: |