この情報を提供する変数は知りませんが、自分で生成することはできます (ただし、いくつかの条件があります)。
-D
CMake に渡されるすべての引数CMakeCache.txt
は、ビルド ディレクトリのキャッシュ ファイルに追加され、コマンド ラインで再度指定しなくても、その後の呼び出し中に再適用されます。
したがって、あなたの例では、最初にCMakeを次のように実行すると
cmake ../.. -DCMAKE_INSTALL_PREFIX:PATH=/usr
その後、単純に実行されていることがわかります
cmake .
まだにCMAKE_INSTALL_PREFIX
設定されています/usr
探しているのCMAKE_ARGS
が、CMake のすべての呼び出しからコマンド ラインで定義された変数の完全なリストである場合は、次のようにする必要があります。
get_cmake_property(CACHE_VARS CACHE_VARIABLES)
foreach(CACHE_VAR ${CACHE_VARS})
get_property(CACHE_VAR_HELPSTRING CACHE ${CACHE_VAR} PROPERTY HELPSTRING)
if(CACHE_VAR_HELPSTRING STREQUAL "No help, variable specified on the command line.")
get_property(CACHE_VAR_TYPE CACHE ${CACHE_VAR} PROPERTY TYPE)
if(CACHE_VAR_TYPE STREQUAL "UNINITIALIZED")
set(CACHE_VAR_TYPE)
else()
set(CACHE_VAR_TYPE :${CACHE_VAR_TYPE})
endif()
set(CMAKE_ARGS "${CMAKE_ARGS} -D${CACHE_VAR}${CACHE_VAR_TYPE}=\"${${CACHE_VAR}}\"")
endif()
endforeach()
message("CMAKE_ARGS: ${CMAKE_ARGS}")
これは、コマンド ライン経由で設定された各変数に「コマンド ラインで指定された変数にはヘルプがありません」というフレーズがあるという事実に依存するため、少し脆弱です。プロパティとして指定されていHELPSTRING
ます。CMake がこの default を変更した場合は、それに応じてステートメントHELPSTRING
を更新する必要があります。if
これが表示したいものではなくCMAKE_ARGS
、現在の実行からの引数のみである場合、CMake のソース コードをハッキングする以外にそれを行う方法はないと思います! ただし、以前のコマンドライン引数はすべて効果的に毎回再適用されるため、これはあなたが望むものではないと思います。