作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 CLion 项目。在里面,我有几个文件(例如 Task1.cpp , Task2.cpp )。我将它们存储在 GitHub 中的一个存储库中,但位于不同的分支中(分别为 Task1 和 Task2 )。因此,当我在笔记本电脑上结帐另一个分支时,本地只剩下一个分支。我需要修改 CMakeLists.txt 以便每次切换分支时都可以构建我的项目而无需编辑它。我试着这样写:
if(EXISTS Task1.cpp)
add_executable(Task1 Task1.cpp)
endif()
if(EXISTS Task2.cpp)
add_executable(Task2 Task2.cpp)
endif()
add_executable(Task1 Task1.cpp)
如果在分支 Task1 中。
最佳答案
来自 CMake documentation , 文件 EXISTS
检查仅适用于 全路径:
if(EXISTS path-to-file-or-directory)
True if the named file or directory exists. Behavior is well-defined only for full paths. Resolves symbolic links, i.e. if the named file or directory is a symbolic link, returns true if the target of the symbolic link exists.
CMAKE_CURRENT_SOURCE_DIR
:
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/Task1.cpp)
add_executable(Task1 ${CMAKE_CURRENT_SOURCE_DIR}/Task1.cpp)
endif()
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/Task2.cpp)
add_executable(Task2 ${CMAKE_CURRENT_SOURCE_DIR}/Task2.cpp)
endif()
关于git - 如何在CMake中使其可执行之前检查文件是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60414736/
我是一名优秀的程序员,十分优秀!