Reputation:
I want to find the Qt5WaylandClient_PRIVATE_INCLUDE_DIRS
variable which is set by the Qt5WaylandClient package. How can I get it from the shell (dash)? Something like this:
cmake -find_package(Qt5WaylandClient) -get_variable Qt5WaylandClient_PRIVATE_INCLUDE_DIRS
or
cmake -file path/to/my/CMakeLists.txt -get_variable Qt5WaylandClient_PRIVATE_INCLUDE_DIRS
Upvotes: 1
Views: 528
Reputation: 18243
CMake does have a --find-package
command line option, but it is not well supported, nor well-documented. There is an answer describing its functionality here, but that's probably not what you're looking for.
Initially, it appears you could just run cmake
in script mode, using -P
, on a CMake file containing your find_package(Qt5WaylandCleint)
command and print its variables to the console.
cmake -P MyFindQt5WaylandClient.cmake
However, running find_package()
outside the confines of a CMake project does not work. It yields several errors because CMake doesn't know anything about the system or your target language. So, you must create a minimal CMake project, then run find_package()
. Something like this CMakeLists.txt file should work:
cmake_minimum_required(VERSION 3.16)
project(MyProj)
find_package(Qt5WaylandClient REQUIRED)
# Print the desired variable.
message("${Qt5WaylandClient_PRIVATE_INCLUDE_DIRS}")
You can then run cmake
from the command line, and this will print the Qt5WaylandClient_PRIVATE_INCLUDE_DIRS
variable to the console. You can use the -S
and -B
command line options to specify the CMake source and binary directories, respectively.
cmake -S . -B build
Upvotes: 3