CMake:如何防止直接使用错误的子目录 CMakeLists?
CMake: How to prevent using wrong subdirectory CMakeLists directly?
例如,如果我有一个主要的 CMakeLists 构建 project
的所有依赖项,然后通过 add_subdirectory( project )
构建项目本身。
但是如果你尝试通过 project/CMakeLists
构建你会失败(因为缺少依赖项)。那么防止这种情况的最佳方法是什么,例如检查给定的 CMakeLists 是否被另一个包含,或者它是否是 "root".
在需要这个的子目录下的CMakeLists.txt文件中,添加:
if("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}")
message(FATAL_ERROR "Blah blah wrong directory")
endif()
例如,如果我有一个主要的 CMakeLists 构建 project
的所有依赖项,然后通过 add_subdirectory( project )
构建项目本身。
但是如果你尝试通过 project/CMakeLists
构建你会失败(因为缺少依赖项)。那么防止这种情况的最佳方法是什么,例如检查给定的 CMakeLists 是否被另一个包含,或者它是否是 "root".
在需要这个的子目录下的CMakeLists.txt文件中,添加:
if("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}")
message(FATAL_ERROR "Blah blah wrong directory")
endif()