我很擅长使用CMake来管理我的构建系统,所以如果我是愚蠢的,这是个坏主意,请告诉我.
我希望能够设置我的cmakelists.txt文件,以便我这样做
project( ... )
Run Code Online (Sandbox Code Playgroud)
目录的名称自动成为项目名称.我想这样做是因为我觉得将一个项目的整个目录复制为另一个项目的起点很方便.但是,虽然我总是将目录重命名为有意义的东西,但我经常忘记更改project(name)cmakelists.txt文件的行,然后我最终在我的构建环境中打开了多个项目,这些项目具有相同的名称,这会让人感到困惑.
理想情况下,如果目录名称中有空格,则它们将被下划线替换.
CMake能做到吗?由于某种原因,我没有看到这是一个坏主意吗?
Fra*_*ser 12
您可以通过在CMakeLists.txt的开头添加以下内容来实现此目的:
get_filename_component(ProjectId ${CMAKE_CURRENT_SOURCE_DIR} NAME)
string(REPLACE " " "_" ProjectId ${ProjectId})
project(${ProjectId})
Run Code Online (Sandbox Code Playgroud)
对于一次性项目,我没有看到这样做的问题,虽然我猜生产项目通常会有一个预定义的名称,该名称将在project命令中明确设置.
当你提到你"将一个项目的整个目录复制为另一个项目的起点"时,我假设你在复制时没有包含构建树?CMake 实际上无法处理正在移动的构建树.
| 归档时间: |
|
| 查看次数: |
4859 次 |
| 最近记录: |