0

是否可以使用 cmake.exe 打印 CMake 项目的项目名称值?

例如:

cmake -LA CMakeLists.txt | grep CMAKE_INSTALL_PREFIX

获取为项目配置的安装前缀。

有没有类似于获取项目('xyz')中定义的CMAKE_PROJECT_NAME的方法?

4

1 回答 1

2

变量CMAKE_PROJECT_NAME不是缓存的,因此无法通过运行打印cmake -LA

使用变量CMAKE_PROJECT_INCLUDE可以为调用定义一个钩子。project()那个钩子可以只打印一个项目名称。

例如,考虑这样的脚本project_hook.cmake

message(STATUS "Project name is ${PROJECT_NAME}")

你可以配置一个 CMake 项目

cmake -DCMAKE_PROJECT_INCLUDE=</path/to/project_hook.cmake> </path/to/source/dir> | grep -m1 "Project name is"

所以你会得到这条线

Project name is <...>

project()在 CMake 项目中遇到的第一个调用。

此方法适用于 CMake 3.15 或更高版本。

于 2022-01-27T16:05:21.903 回答