Tak, jest to na pewno potrzebne. CMake używa pamięci podręcznej, gdy jest ponownie uruchamiany podczas kompilacji, ponieważ plik CMakeList został zmieniony, lub gdy jesteś make rebuild_cache
. Ładuje również pamięć podręczną na początku normalnego przebiegu konfiguracji.
Standardowa worflow za korzystanie CUpewnij jest następujący:
- Run CMake w pustym katalogu binarnego w celu wygenerowania wstępnej wersji projektu & cache
- W CMake GUI lub
ccmake
lub podobny, zbadaj zmienne pamięci podręcznej skonfigurowane przez początkowe uruchomienie i zmodyfikuj je zgodnie z oczekiwaniami.
- Ponownie uruchom CMake (lub po prostu skonfiguruj krok, jeśli twój interfejs to oferuje).
- Powtórz kroki 2 & 3 dopóki nie jesteś zadowolony z konfiguracją
- Gdybyś tylko działa Konfiguruj w 3, uruchomić Generowanie
Masz teraz buildsystem skonfigurowany w zależności od smaku.
Aby powyższe działało, zmiany użytkownika w pamięci podręcznej muszą mieć pierwszeństwo przed domyślnymi wartościami pamięci podręcznej określonymi w pliku CMakeLists.txt. W przeciwnym razie użytkownik zmieniający się z punktu 2 zostanie utracony podczas następnej konfiguracji, nadpisanej ponownie przez domyślne ustawienia projektu.
Z tego powodu polecenia CMake set(var ... CACHE)
nie modyfikują zmiennej pamięci podręcznej var
, jeśli już istnieje. Zwykle projekt powinien traktować konfigurowanie pamięci podręcznej jako zapewniającej domyślne ustawienia domyślne.
Jeśli naprawdę potrzebujesz, aby zastąpić wyboru użytkownika w projekcie, można:
- dodać
FORCE
dowodzić set
lub
- użycie
set
bez CACHE
ustawić zmienne non-cache. Zmienne pamięci podręcznej mają pierwszeństwo przed zmiennymi pamięci podręcznej o tej samej nazwie.
Więcej szczegółów zobacz [Jaka jest składnia CMake do ustawiania i używania zmiennych?] (https://stackoverflow.com/questions/31037882/whats-the-cmake-syntax-to-set-and-use-variables). – Florian