0

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')?

Raaam
  • 95
  • 11

1 Answers1

3

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.

Tsyvarev
  • 60,011
  • 17
  • 110
  • 153