Is it possible to print project name value of a CMake project using cmake.exe?
for example:
cmake -LA CMakeLists.txt | grep CMAKE_INSTALL_PREFIX
to get the install prefix configured for the project.
Is there any way similar to get CMAKE_PROJECT_NAME which is defined in project('xyz')?
The variable CMAKE_PROJECT_NAME is not a cached one, so it cannot be printed by running cmake -LA
.
Using variable CMAKE_PROJECT_INCLUDE it is possible to define a hook for project()
calls. That hook could just print a project name.
For example, consider such script project_hook.cmake
:
message(STATUS "Project name is ${PROJECT_NAME}")
You could configure a CMake project with
cmake -DCMAKE_PROJECT_INCLUDE=</path/to/project_hook.cmake> </path/to/source/dir> | grep -m1 "Project name is"
so you will get the line
Project name is <...>
for the first project()
call encountered in the CMake project.
This approach works for CMake 3.15 or newer.