zmienne specyficzne dla LLVM¶
LLVM_TARGETS_TO_BUILD:lista celów do zbudowania rozdzielona średnikami lub wszystkie do zbudowania alltargets. Rozróżniamy wielkość liter. Domyślnie Wszystko. Przykład:-DLLVM_TARGETS_TO_BUILD="X86;PowerPC"
. LLVM_BUILD_TOOLS: bool Build LLVM tools. Domyślnie włączone. Cele budowy każdego narzędzia są generowanew każdym przypadku. Narzędzie można zbudować osobno, wywołując jego cel. Na przykład, możesz zbudować llvm-tak jak w systemie opartym na Makefile, wykonując makellvm-as w katalogu głównym katalogu kompilacji. LLVM_INCLUDE_TOOLS:Bool generuje cele kompilacji dla narzędzi LLVM. Domyślnie włączone. Możesz użyć thisoption, aby wyłączyć generowanie celów kompilacji dla narzędzi LLVM. LLVM_INSTALL_BINUTILS_SYMLINKS: bool instaluje dowiązania symboliczne z nazw narzędzi binutils do odpowiednich narzędzi LLVM.Na przykład, ar będzie dowiązane symbolicznie do llvm-ar. LLVM_INSTALL_CCTOOLS_SYMLINKS: bool instaluje symliki z nazw narzędzi cctools do odpowiednich narzędzi LLVM.Na przykład, lipo będzie dowiązane symbolicznie do llvm-lipo. LLVM_BUILD_EXAMPLES: bool Build przykłady LLVM. Domyślnie wyłączone. Cele do budowania każdego przykładu są generowane w każdym przypadku. Zobacz dokumentację LLVM_BUILD_TOOLS powyżej dla moredetails. LLVM_INCLUDE_EXAMPLES: bool generuje cele kompilacji dla przykładów LLVM. Domyślnie włączone. Możesz użyć thisoption, aby wyłączyć generowanie celów kompilacji dla przykładów LLVM. LLVM_BUILD_TESTS: bool buduje testy jednostkowe LLVM. Domyślnie wyłączone. Cele do budowy każdej jednostki testowejsą generowane w każdym przypadku. Możesz zbudować określony test jednostkowy przy użyciu targetów zdefiniowanych w unittests, takich jak ADTTests, IRTests, SupportTests itp. (Wyszukajadd_llvm_unittest
w podkatalogach unitTests, aby uzyskać pełną listę testów jednostkowych.) Możliwe jest zbudowanie wszystkich testów jednostkowych z docelowymi testami jednostkowymi. LLVM_INCLUDE_TESTS: bool generuje cele kompilacji dla testów jednostkowych LLVM. Domyślnie włączone. Możesz użyć tej opcji, aby wyłączyć generowanie celów kompilacji dla jednostek LLVM. LLVM_BUILD_BENCHMARKS: BOOL dodaje benchmarki do listy domyślnych celów. Domyślnie wyłączone. LLVM_INCLUDE_BENCHMARKS: bool generuje cele kompilacji dla benchmarków LLVM. Domyślnie włączone. LLVM_APPEND_VC_REV: bool Embed version control revision info (Git revision id).Informacje o wersji są dostarczane przez makroLLVM_REVISION
wllvm/include/llvm/Support/VCSRevision.h
. Programiści korzystający z Gita, którzy nie potrzebują informacji o wersji, mogą wyłączyć tę opcję, aby uniknąć ponownego łączenia większości binariów po zmianie gałęzi. Domyślnie włączone. LLVM_ENABLE_THREADS: bool Build with threads support, if available. Domyślnie włączone. LLVM_ENABLE_UNWIND_TABLES: BOOL umożliwia rozwijanie tabel w pliku binarnym. Wyłączenie odwijania tabel może zmniejszyć rozmiar bibliotek. Domyślnie włączone. LLVM_ENABLE_ASSERTIONS: BOOL włącza asercje kodu. Domyślnie opcja on if I only ifCMAKE_BUILD_TYPE
jest Debug. LLVM_ENABLE_EH: bool Build LLVM with exception-handling support. Jest to konieczne, jeśli chcesz połączyć się z bibliotekami LLVM i użyć wyjątków C++ we własnym kodzie, które muszą propagować się poprzez kod LLVM. Domyślnie wyłączone. LLVM_ENABLE_EXPENSIVE_CHECKS: BOOL włącza dodatkowe kosztowne sprawdzanie czasu / pamięci. Domyślnie wyłączone. LLVM_ENABLE_IDE: bool informuje system budowania, że używane jest IDE. To z kolei wyłącza tworzenie pewnych celów systemu budowania wygody, takich jak różne celeinstall-*
icheck-*
, ponieważ IDE nie zawsze radzą sobie dobrze z dużą liczbą celów. Zwykle jest to wykrywane automatycznie, ale może zostać skonfigurowane ręcznie, aby wyraźnie kontrolować generowanie tych celów. Onescenario, w którym pożądane może być ręczne nadpisanie, to integracja CMake Visual Studio2017, która w przeciwnym razie nie zostałaby wykryta jako IDE. LLVM_ENABLE_MODULES: bool kompiluje z modułami Nagłówkowymi Clang. LLVM_ENABLE_PIC: bool dodaje flagę-fPIC
do wiersza poleceń kompilatora, jeśli kompilator obsługuje tę flagę. Niektóre systemy, takie jak Windows, nie potrzebują tej flagi. Domyślnie włączone. LLVM_ENABLE_RTTI: bool Build LLVM with run-time type information. Domyślnie wyłączone. LLVM_ENABLE_WARNINGS: BOOL włącza wszystkie ostrzeżenia kompilatora. Domyślnie włączone. LLVM_ENABLE_PEDANTIC: BOOL włącza tryb pedantyczny. Wyłącza to rozszerzenia specyficzne dla kompilatora, jeśli jest to możliwe. Domyślnie włączone. LLVM_ENABLE_WERROR: bool zatrzymuje i failuje kompilację, jeśli wywołane jest Ostrzeżenie kompilatora. Domyślnie wyłączone. LLVM_ABI_BREAKING_CHECKS: STRING używany do decydowania, czy LLVM powinien być zbudowany z ABI breaking checks ornot. Dozwolone wartości to WITH_ASSERTS (domyślnie), FORCE_ON iforce_off. WITH_ASSERTS włącza sprawdzanie łamania ABI w kompilacji anassertion enabled. FORCE_ON(FORCE_OFF) włącza je (wyłącza) niezależnie od tego, czy normalne (oparte na NDEBUG) twierdzenia są czy nie. Wersja LLVM zbudowana z kontrolą łamania ABI nie jest kompatybilna z wersją zbudowaną bez niej. LLVM_BUILD_32_BITS: BOOL buduje 32-bitowe pliki wykonywalne i biblioteki na 64-bitowych systemach. Ta opcja jest dostępna tylko w niektórych 64-bitowych systemach uniksowych. Domyślnie wyłączone. LLVM_TARGET_ARCH: łańcuch docelowy LLVM używany do generowania kodu natywnego. Jest to wymagane dla JITgeneration. Domyślnie jest to „host”, co oznacza, że wybiera architekturę maszyny, na której jest budowany LLVM. Jeśli kompilujesz krzyżowo, ustaw go na nazwę docelowej architektury. LLVM_TABLEBEN: ciąg pełnej ścieżki do natywnego pliku wykonywalnego TableGen (Zwykle o nazwie
llvm-tblgen
). Jest to zalecane do kompilacji krzyżowej: jeśli użytkownik ustawia tę zmienną, nie zostanie utworzony nativeTableGen. LLVM_LIT_ARGS: argumenty łańcuchowe podane do lit.make check
imake clang-test
są affected.By domyślnie,'-sv --no-progress-bar'
w Visual C++ i Xcode,'-sv'
w innych. LLVM_LIT_TOOLS_DIR: Ścieżka Ścieżka do narzędzi GnuWin32 do testów. Działa na Windows host. Domyślnie pusty łańcuch, w którym to przypadku lit będzie szukał narzędzi potrzebnych do testów (np.grep
,sort
, itd.) w twojej ścieżce%%. Jeśli GnuWin32 nie znajduje się w%PATH%, to możesz ustawić tę zmienną w katalogu GnuWin32, aby w tym katalogu można było znaleźć narzędzia potrzebne do testów. LLVM_ENABLE_FFI: BOOL wskazuje, czy Interpreter LLVM będzie połączony z biblioteką obcego interfejsu funkcyjnego (libffi) w celu umożliwienia wywoływania zewnętrznych funkcji.Jeśli Biblioteka lub jej nagłówki są zainstalowane w customlocation, można również ustawić zmienne FFI_INCLUDE_DIR i ffi_library_dir do katalogów, w których ffi.h i libffi.so można znaleźć odpowiednio. Domyślnie wyłączone. LLVM_EXTERNAL_{CLANG,LLD, POLLY}_source_dir: PATH zmienne te określają ścieżkę do katalogu źródłowego dla projektów zewnętrznychlvm, odpowiednio clang, lld i Polly, względem katalogu najwyższego poziomu. Jeśli istnieje podkatalog in-tree dla zewnętrznego projektu (np. llvm/tools / clang dla Clang), to odpowiednia zmienna nie będzie używana. Jeśli zmienna dla zewnętrznego projektu nie wskazuje prawidłowej ścieżki, wtedy ten projekt nie zostanie zbudowany. LLVM_ENABLE_PROJEKTY:Oddzielona średnikami lista projektów do zbudowania lub wszystkie do zbudowania wszystkich (clang, libcxx, libcxxabi, LLDB, compiler-RT, lld, polly, itp.) projektów.Flaga ta zakłada,że projekty są sprawdzane obok siebie i nie są zagnieżdżone, tzn. clang musi być równoległy do llvm zamiast zagnieżdżony w llvm/tools.Ta funkcja pozwala mieć jedną kompilację tylko dla LLVM, a drugą dla clang + LLVM przy użyciu tej samej kasy źródłowej.Pełna lista to:clang;clang-tools-extra;compiler-rt;debuginfo-tests;libc;libclc;libcxx;libcxxabi;libunwind;lld;lldb;openmp;parallel-libs;polly;pstl
LLVM_EXTERNAL_PROJECTS: oddzielona średnikiem lista dodatkowych zewnętrznych projektów do zbudowania w ramach LLVM. Dla każdego projektu LLVM_EXTERNAL_<nazwa>_SOURCE_DIR musi być określona ze ścieżką dla kodu źródłowego projektu. Przykład:-DLLVM_EXTERNAL_PROJECTS="Foo;Bar"-DLLVM_EXTERNAL_FOO_SOURCE_DIR=/src/foo-DLLVM_EXTERNAL_BAR_SOURCE_DIR=/src/bar
. LLVM_USE_OPROFILE: bool umożliwia budowanie obsługi JIT OProfile. Domyślnie wyłączone. LLVM_PROFDATA_FILE: ścieżka do pliku profdata, który zostanie przekazany do flagi-fprofile-instr-use clanga. To może być określone tylko wtedy, gdy budujesz z clang. LLVM_USE_INTEL_JITEVENTS: BOOL włącza obsługę interfejsu API zdarzeń Intel JIT. Domyślnie wyłączone. LLVM_ENABLE_LIBPFM: bool umożliwia budowanie z libpfm do obsługi sprzętowych pomiarów liczników w LLVMtools.Domyślnie włączone. LLVM_USE_PERF: BOOL włącza obsługę budowania dla Perf (linux profiling tool) obsługa JIT. Domyślnie wyłączone. LLVM_ENABLE_ZLIB: bool umożliwia budowanie z zlib do obsługi kompresji / dekompresji w narzędziach LLVM.Domyślnie włączone. LLVM_ENABLE_DIA_SDK: bool umożliwia budowanie z MSVC DIA SDK dla obsługi debugowania PDB. Dostępny tylko z MSVC. Domyślnie włączone. LLVM_USE_SANITIZER: STRING definiuje sanitizer używany do budowania binariów i testów LLVM. Możliwe wartościAddress
,Memory
,MemoryWithOrigins
,Undefined
,Thread
,DataFlow
, iAddress;Undefined
Domyślnie pusty łańcuch. LLVM_UBSAN_FLAGS:STRING definiuje zestaw flag kompilacji używanych do włączenia UBSan. Stosowany tylko wtedy, gdyLLVM_USE_SANITIZER
zawieraUndefined
. Może to być użyte do nadpisania domyślnego zestawu Flag UBSan. LLVM_ENABLE_LTO: STRING dodaje flagi-flto
lub-flto=
do linii komend kompilacji i linku, umożliwiając optymalizację czasu linku. Możliwe wartości toOff
,On
,Thin
iFull
Domyślnie wyłączone. LLVM_USE_LINKER: STRING dodaje-fuse-ld={name}
do wywołania łącza. Możliwa wartość zależy od Twojego kompilatora, dla clang wartość może być bezwzględną ścieżką do twojego customlinkera, w przeciwnym razie clang będzie prefiksował nazwęld.
i zastosuje jego zwykłe wyszukiwanie. Na przykład, aby połączyć LLVM ze złotym łącznikiem, cmake może zostać wywołany z-DLLVM_USE_LINKER=gold
. LLVM_ENABLE_LIBCXX: BOOL jeśli kompilator hosta i linker obsługują flagę stdlib, – stdlib=libc++ jest przypisany do wywołań obu, tak że projekt jest zbudowany przy użyciu libc++zamiast stdlibc++. Domyślnie wyłączone. LLVM_STATIC_LINK_CXX_STDLIB: BOOL statycznie łączy się ze standardową biblioteką C++, jeśli to możliwe. Używa To flagi”-static-libstdc++”, ale kompilator Clang host będzie statycznie łączył się z libc++, jeśli zostanie użyty w połączeniu z flagą LLVM_ENABLE_LIBCXX. Domyślnie wyłączone. LLVM_ENABLE_LLD:BOOL ta opcja jest równoważna-DLLVM_USE_LINKER=lld, z wyjątkiem 2-stagebuild, gdzie zależność jest dodawana od pierwszego etapu do drugiego, co zapewnia, że lld jest budowane przed rozpoczęciem stage2. LLVM_PARALLEL_COMPILE_JOBS: STRING definiuje maksymalną liczbę jednoczesnych zadań kompilacji. LLVM_PARALLEL_LINK_JOBS: STRING definiuje maksymalną liczbę jednoczesnych zadań łącza. LLVM_EXTERNALIZE_DEBUGINFO: bool generuje pliki dSYM oraz usuwa pliki wykonywalne i biblioteki (tylko Darwin).Domyślnie wyłączone. LLVM_USE_CRT_{target}: STRING w systemie Windows mówi, która wersja biblioteki uruchomieniowej C (CRT) powinna być użyta.Na przykład, – DLLVM_USE_CRT_RELEASE=MT statycznie połączy CRT z narzędziami i biblioteką theLLVM. LLVM_INTEGRATED_CRT_ALLOC: ścieżka
w systemie Windows umożliwia osadzenie innego alokatora uruchomieniowego C w LLVMtools i bibliotekach. Korzystanie z alokatora bez blokad, takiego jak te wymienione poniżej, znacznie skraca czas połączenia ThinLTO o około rząd wielkości. Poprawia również czas budowy Klangu, o około 5-10%. W tej chwili obsługiwane są rpmalloc, snmalloc i mimalloc. Użyj ścieżki do klonowania Gita, aby wybrać odpowiedni alokator, na przykład:
$ D:\git> git clone https://github.com/mjansson/rpmalloc$ D:\llvm-project> cmake ... -DLLVM_INTEGRATED_CRT_ALLOC=D:\git\rpmalloc
flaga ta musi być używana razem ze statycznym CRT, tj. jeśli budujesz cel, dodaj-DLLVM_USE_CRT_RELEASE=MT.
LLVM_BUILD_DOCS: BOOL dodaje wszystkie włączone cele dokumentacji (tj. cele Doxgyen i Sphinx) jako zależności domyślnych celów kompilacji. Powoduje to, że wszystkie (włączone)cele dokumentacji są częścią normalnej kompilacji. Jeśli obiektinstall
jest uruchomiony, umożliwia to również zainstalowanie wszystkich zbudowanych celów dokumentacji. Domyślnie wyłączone. Aby włączyć konkretny cel dokumentacji, seesee LLVM_ENABLE_SPHINX i LLVM_ENABLE_DOXYGEN. LLVM_ENABLE_DOXYGEN: BOOL umożliwia generowanie przeglądalnej dokumentacji HTML przy użyciu doxygen.Domyślnie wyłączone. LLVM_ENABLE_DOXYGEN_QT_HELP: BOOL umożliwia generowanie skompresowanego pliku pomocy Qt. Domyślnie wyłączone.Wpływa to na cel makedoxygen-llvm
. Po włączeniu tej opcji, oprócz zwykłego wyjścia HTML wygenerowanego przez doxygen, zostanie wygenerowany plik QCH o nazwieorg.llvm.qch
. Następnie możesz załadować ten plik do Qt Creator.Ta opcja jest użyteczna tylko w połączeniu z-DLLVM_ENABLE_DOXYGEN=ON
; w przeciwnym razie nie ma to wpływu. LLVM_DOXYGEN_QCH_FILENAME: STRING nazwa pliku skompresowanego pliku pomocy Qt, który zostanie wygenerowany, gdy podano-DLLVM_ENABLE_DOXYGEN=ON
i-DLLVM_ENABLE_DOXYGEN_QT_HELP=ON
. Domyślnieorg.llvm.qch
.Ta opcja jest użyteczna tylko w połączeniu z-DLLVM_ENABLE_DOXYGEN_QT_HELP=ON
; w przeciwnym razie nie ma ona żadnego efektu. LLVM_DOXYGEN_QHP_NAMESPACE: łańcuchowa Przestrzeń nazw, w której znajduje się pośredni plik projektu pomocy Qt. Zobacz projekt QtHelp, aby uzyskać więcej informacji. Domyślnie ” org.llvm”. Ta opcja jest użyteczna tylko w połączeniu z-DLLVM_ENABLE_DOXYGEN_QT_HELP=ON
; w przeciwnym razie nie ma ona żadnego efektu. LLVM_DOXYGEN_QHP_CUST_FILTER_NAME: STRING zobacz projekt pomocy Qt więcej informacji. Domyślnie zmienna CMake${PACKAGE_STRING}
jest kombinacją nazwy pakietu i łańcucha wersji. Filtr ten może być użyty w programie Qt Creator do wybierania tylko dokumentacji z LLVM podczas przeglądania wszystkich plików pomocy, które mogły zostać załadowane. Ta opcja jest tylko korzystna w połączeniu z
-DLLVM_ENABLE_DOXYGEN_QT_HELP=ON
; w przeciwnym razie nie ma ona wpływu. LLVM_DOXYGEN_QHELPGENERATOR_PATH: łańcuch ścieżki do pliku wykonywalnegoqhelpgenerator
. Domyślnie jest to cokolwiek CMakefind_program()
może znaleźć. Ta opcja jest użyteczna tylko w połączeniu z-DLLVM_ENABLE_DOXYGEN_QT_HELP=ON
; w przeciwnym razie nie ma efektu. LLVM_DOXYGEN_SVG: używa BOOL .pliki svg zamiast .pliki png dla wykresów na wyjściu Doxygen.Domyślnie wyłączone. LLVM_INSTALL_DOXYGEN_HTML_DIR: łańcuch ścieżki do zainstalowania dokumentacji HTML Wygenerowanej Przez Doxygen. Ścieżka ta może być bezwzględna lub względna względem CMAKE_INSTALL_PREFIX. Domyślne toshare/Doc / llvm / Doxygen-html. LLVM_ENABLE_SPHINX: BOOL jeśli podano, CMake wyszukuje plik wykonywalnysphinx-build
i udostępni opcjeSPHINX_OUTPUT_HTML
iSPHINX_OUTPUT_MAN
CMake.Domyślnie wyłączone. SPHINX_EXECUTABLE: łańcuch znaków do pliku wykonywalnegosphinx-build
wykrytego przez CMake.Aby uzyskać instrukcje instalacji, patrz: https://www.sphinx-doc.org/pl/master / usage / installation.html SPHINX_OUTPUT_HTML: BOOL jeśli jest włączona (iLLVM_ENABLE_SPHINX
jest włączona), To dodawane są cele do budowania dokumentacji jako html (ale nie budowane domyślnie, chyba żeLLVM_BUILD_DOCS
jest włączona).docs-llvm-html
,docs-clang-html
idocs-lld-html
). Domyślnie włączone. SPHINX_OUTPUT_MAN: BOOL jeśli jest włączona (iLLVM_ENABLE_SPHINX
jest włączona), cele budowania stron podręcznika są dodawane (ale nie są budowane domyślnie, chyba żeLLVM_BUILD_DOCS
jest włączona). Obecnie jedynym dodanym celem jestdocs-llvm-man
. Domyślnie włączone. SPHINX_WARNINGS_AS_ERRORS:Bool jeśli jest włączona, Ostrzeżenia dotyczące dokumentacji sphinx będą traktowane jako errors. Domyślnie włączone. LLVM_INSTALL_SPHINX_HTML_DIR: łańcuch ścieżek do instalacji dokumentacji HTML Wygenerowanej Przez Sphinx. Ścieżka ta może być bezwzględna lub względna względem CMAKE_INSTALL_PREFIX. Domyślnie toshare/Doc / llvm / html. LLVM_INSTALL_OCAMLDOC_HTML_DIR: łańcuch ścieżek do instalacji dokumentacji HTML Wygenerowanej Przez OCamldoc. Ścieżka ta może być bezwzględna lub względna względem CMAKE_INSTALL_PREFIX. Domyślnie toshare/Doc / llvm / ocaml-html. LLVM_CREATE_XCODE_TOOLCHAIN: tylko bool macOS: Jeśli włączone, CMake wygeneruje obiekt o nazwie 'install-xcode-toolchain’. Ten cel utworzy katalog w$CMAKE_INSTALL_PREFIX / Toolchains zawierający katalog xctoolchain, który może być użyty do nadpisania domyślnych narzędzi systemowych. LLVM_BUILD_LLVM_DYLIB: BOOL jeśli jest włączona, dodawany jest cel budowania biblioteki współdzielonej libLLVM.Ta biblioteka zawiera wszystkie komponenty LLVM w jednej współdzielonej bibliotece.Domyślnie wyłączone. Nie można tego używać w połączeniu z BUILD_SHARED_LIBS.Narzędzia będą połączone ze współdzieloną biblioteką libLLVM tylko wtedy, gdy LLVM_LINK_LLVM_DYLIBis jest również włączone.Komponenty w bibliotece można dostosować poprzez ustawienie Llvm_dylib_component do listy żądanych komponentów.Ta opcja nie jest dostępna w systemie Windows. LLVM_LINK_LLVM_DYLIB: BOOL jeśli włączone, narzędzia będą połączone ze współdzieloną biblioteką libLLVM. Domyślnie wyłączone. Ustawienie LLVM_LINK_LLVM_DYLIB na ON powoduje również włączenie LLVM_BUILD_LLVM_DYLIBto.Ta opcja nie jest dostępna w systemie Windows. BUILD_SHARED_LIBS: znacznik BOOL
wskazujący, czy każdy komponent LLVM (np. wsparcie) jest zbudowany jako biblioteka sharedlibrary (włączona) lub jako biblioteka statyczna (wyłączona). Jego domyślną wartością jest OFF. OnWindows biblioteki współdzielone mogą być używane podczas budowania za pomocą MinGW, w tymmingw-w64, ale nie podczas budowania za pomocą Microsoft toolchain.
Uwaga
BUILD_SHARED_LIBS jest zalecany tylko dla programistów LLVM.Jeśli chcesz zbudować LLVM jako bibliotekę współdzieloną, powinieneś użyć opcjiLLVM_BUILD_LLVM_DYLIB
.
LLVM_OPTIMIZED_TABLEBEN: BOOL jeśli włączone i budowanie debugowania lub asserts build System CMake build wygeneruje drzewo Release build, aby zbudować w pełni zoptymalizowany tablegen do użycia podczas kompilacji. Włączenie tej opcji może znacznie przyspieszyć czas kompilacji, szczególnie podczas budowania LLVM w konfiguracjach debugowania. LLVM_REVERSE_ITERATION: BOOL jeśli włączone, wszystkie obsługiwane nieuporządkowane kontenery llvm będą iterowane w kolejności odwrotnej. Jest to użyteczne w odkrywaniu niedeterminizmu spowodowanego przez utajnienie nieuporządkowanych pojemników. LLVM_BUILD_INSTRUMENTED_COVERAGE: BOOL jeśli jest włączona, instrumentacja pokrycia kodu źródłowego jest włączona podczas budowania llvm. LLVM_CCACHE_BUILD: BOOL jeśli jest włączony i dostępny jest programccache
, LLVM zostanie zbudowany przy użyciuccache
, aby przyspieszyć odbudowę LLVM i jego komponentów.Domyślnie wyłączone. Rozmiar i położenie bufora utrzymywanego przezccache
można dostosować za pomocą LLVM_CCACHE_MAXSIZE i LLVM_CCACHE_DIRoptions, które są przekazywane odpowiednio do zmiennych środowiskowych CCACHE_MAXSIZE i CCACHE_DIR. LLVM_FORCE_USE_OLD_TOOLCHAIN: BOOL jeśli jest włączona, wersje kompilatora i biblioteki standardowej nie będą sprawdzane. Llvmmmoże nie kompilować się w ogóle, lub może się nie udać w czasie wykonywania z powodu znanych błędów w thesetoolchains. LLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN:BOOL jeśli jest włączona, sprawdzanie wersji kompilatora będzie ostrzegać tylko podczas korzystania z zestawu narzędzi, który ma być przestarzały, zamiast emitować błąd. LLVM_USE_NEWPM: BOOL jeśli jest włączone, użyj eksperymentalnego menedżera nowych przejść. LLVM_ENABLE_BINDINGS: BOOL jeśli jest wyłączona, nie próbuj budować wiązań OCaml i go. LLVM_ENABLE_Z3_SOLVER: BOOL jeśli jest włączona, dla analizatora statycznego Clang aktywowany jest solver ograniczeń Z3.Najnowsza wersja biblioteki z3 musi być dostępna w systemie. LLVM_USE_RELATIVE_PATHS_IN_DEBUG_INFO: BOOL przepisuje bezwzględne ścieżki źródłowe w informacji o debugowaniu na względne. Prefiks źródłowy można dostosować za pomocą zmiennej LLVM_SOURCE_PREFIX. LLVM_USE_RELATIVE_PATHS_IN_FILES: bool przepisuje bezwzględne ścieżki źródłowe w źródłach i debuguje informacje na względne. Prefiks źródła można dostosować za pomocą zmiennej LLVM_SOURCE_PREFIX. LLVM_INSTALL_UTILS: BOOL jeśli włączone, pliki binarne narzędzi, takie jakFileCheck
inot
będą instalowane do CMAKE_INSTALL_PREFIX.