web-dev-qa-db-ja.com

CMake:スクリプト内のすべてのアクセス可能な変数を出力します

CMakeのすべてのアクセス可能な変数を出力する方法があるかどうか疑問に思っています。 --help-variablesオプションのように、CMake変数には興味がありません。私が定義した変数、または含まれるスクリプトによって定義された変数について話しています。

私は現在含まれています

INCLUDE (${CMAKE_ROOT}/Modules/CMakeBackwardCompatibilityCXX.cmake)

そして、私はすべてのファイルを調べて利用可能なものを読む代わりに、ここにあるすべての変数を印刷できることを望んでいました-私はそれが有用であるとは知らなかったいくつかの変数を見つけるかもしれません。学習と発見を支援するのは良いことです。デバッグ/開発専用です。

これはLuaの現在のスコープにアクセス可能なすべてのローカル変数を印刷の質問に似ていますが、CMakeの場合です!

誰もこれをしましたか?

185
Michael

get_cmake_property 関数を使用すると、次のループは定義されているすべてのCMake変数とその値を出力します。

get_cmake_property(_variableNames VARIABLES)
list (SORT _variableNames)
foreach (_variableName ${_variableNames})
    message(STATUS "${_variableName}=${${_variableName}}")
endforeach()

環境変数を出力するには、CMakeの コマンドモード を使用します。

execute_process(COMMAND "${CMAKE_COMMAND}" "-E" "environment")
313
sakra

別の方法は、単に使用することです:

cmake -LAH

manpage から:

-L[A][H]

高度でないキャッシュ変数をリストします。

リストキャッシュ変数はCMakeを実行し、CMakeキャッシュからINTERNALまたはADVANCEDとしてマークされていないすべての変数をリストします。これにより、現在のCMake設定が効果的に表示されます[...]。

Aを指定すると、高度な変数も表示されます。

Hを指定すると、各変数のヘルプも表示されます。

154
jtsagata

ccmakeは、キャッシュされた変数をインタラクティブに検査するための優れたインタラクティブオプションです(option(またはset( CACHE

Sudo apt-get install cmake-curses-gui
mkdir build
cd build
cmake ..
ccmake ..