【发布时间】:2017-03-13 08:53:37
【问题描述】:
我想做的是创建一个CMakeLists.txt,它定义了一个在父作用域中使用的便利宏。我可以很好地使用宏。但是,我使用了${CMAKE_CURRENT_SOURCE_DIR},不幸的是,它不是定义宏的 CMake 脚本的目录,而是调用它的目录。有什么办法可以改变吗?
MWE
cmake_minimum_required(VERSION 3.6)
project(git_info CXX)
macro(do_stuff)
message("This CMakeLists.txt file is in ${CMAKE_CURRENT_SOURCE_DIR}")
endmacro()
我发现一种丑陋的方法是将变量导出到包含路径的父作用域并在宏中使用它。但我宁愿只导出宏定义,如果可能的话,以保持干净。
编辑:
澄清一点。我有一个文件夹,里面有我的顶级CMakeLists.txt 和一个文件夹 (my_folder),里面有上面的 MWE CMakeLists.txt。顶级CMakeLists.txt 如下所示:
cmake_minimum_required(VERSION 3.6)
project(top_project CXX)
add_subdirectory(my_folder)
do_stuff()
【问题讨论】:
标签: cmake