2016-03-19 4 views
0

Ich kam zu diesen Sätzen in einer CMakeLists-Datei, ich googelte es aber konnte keine relevanten Ressourcen für das Wort finden.Was bedeutet "CACHE STRING" in CMake CMakeLists Datei?

set(CMAKE_BUILD_TYPE Debug CACHE STRING "set build type to debug") 

Was ist das? Und imho, ist das nicht ganz obskur zu benutzen?

Antwort

3

Lesen https://cmake.org/cmake/help/v3.0/command/set.html

Innerhalb CMake <variable> auf den Wert <value> setzt. <value> wird erweitert, bevor <variable> darauf eingestellt ist. Normalerweise legt set eine reguläre CMake-Variable fest. Wenn CACHE vorhanden ist, wird die <variable> stattdessen in den Cache eingefügt, sofern sie nicht bereits im Cache ist. Im Abschnitt 'Variablentypen in CMake' finden Sie Details zu regulären und Cache-Variablen und deren Interaktionen. Wenn CACHE verwendet wird, sind <type> und <docstring> erforderlich. <type> wird von der CMake-GUI verwendet, um ein Widget auszuwählen, mit dem der Benutzer einen Wert festlegt.

STRING ist der Variablentyp; Dies betrifft nur die Konfigurationswerkzeuge, wenn sie die Bearbeitungs-Widgets für eine Variable anzeigen.

Normalerweise würden Sie dies verwenden, wenn Sie eine Einstellung überschreiben möchten, mit FORCE; sonst würdest du wahrscheinlich nicht.

Es ist nicht besonders obskur.

NB. Der Hauptunterschied zwischen einer CACHE und einer normalen Variablen ist, dass CACHE im Cmake-Konfigurationswerkzeug als Einstellung auftauchen, die Sie einstellen können (zB cmake-gui, ccmake).