在我的CMakeLists.txt
中,include_directories()
下有很多路径。当遇到不存在的路径时,我希望看到错误或警告。这样我就可以清理我的CMakeLists.txt
。我要清理多个CMakeLists.txt
。我的include_directories
看起来像这样:
include_directories(
"inc"
"../../../../../../a/b/c/d/e/f/inc"
"../../../../../../a/b/c/d/l/p/inc"
"../../../../../../a/b/c/d/l/o/inc"
.
.
.
.
.
.
.
.
)
路径“ inc”在
CMakeLists.txt
的当前分支中不存在,但不会引发错误。我认为
CMakeLists.txt
忽略include_directories()
中的空字符串。 最佳答案
CMake传递包含了构建系统更进一步的目录,并不关心它们的存在。
但是,您可以自己编写一些代码。函数include_directories将列表放入变量INCLUDE_DIRECTORIES中,您可以对其进行迭代:
get_property(dirs DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY INCLUDE_DIRECTORIES)
FOREACH(dir ${dirs})
IF(NOT EXISTS ${dir})
message(SEND_ERROR "directory '" ${dir} "' does not exist.")
ENDIF(NOT EXISTS ${dir})
ENDFOREACH(dir)
Live demo。
关于c++ - 如果include_directories中的路径之一不存在,为什么CMakeLists在编译过程中不引发警告/错误?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58214882/