LLVM mit CMake erstellen¶

LLVM-spezifische Variablen¶

LLVM_TARGETS_TO_BUILD: STRING Semikolongetrennte Liste der zu erstellenden Ziele oder alle zum Erstellen von alltargets. Groß- und Kleinschreibung. Standardmäßig alle. Beispiel:-DLLVM_TARGETS_TO_BUILD="X86;PowerPC". LLVM_BUILD_TOOLS: BOOL Erstellt LLVM-Tools. Standardmäßig auf ON. Ziele für den Aufbau jedes Werkzeugs werden generiertin jedem Fall. Sie können ein Tool separat erstellen, indem Sie sein Ziel aufrufen. Sie können beispielsweise llvm-as mit einem Makefile-basierten System erstellen, indem Sie makellvm-as im Stammverzeichnis Ihres Build-Verzeichnisses ausführen. LLVM_INCLUDE_TOOLS:BOOL Generiert Build-Ziele für die LLVM-Tools. Standardmäßig auf ON. Sie können diese Option verwenden, um die Generierung von Build-Zielen für die LLVM-Tools zu deaktivieren. LLVM_INSTALL_BINUTILS_SYMLINKS:BOOL Installiert Symlinks von den Binutils-Tool-Namen zu den entsprechenden LLVM-Tools.Zum Beispiel wird ar mit llvm-ar symlinkt. LLVM_INSTALL_CCTOOLS_SYMLINKS:BOOL Installiert Symliks aus den cctools-Tool-Namen in die entsprechenden LLVM-Tools.Zum Beispiel wird lipo mit llvm-lipo symlinkt. LLVM_BUILD_EXAMPLES: BOOL Build LLVM Beispiele. Standardmäßig AUS. Ziele zum Erstellen jedes Beispiels sindin jedem Fall generiert. Weitere Informationen finden Sie in der Dokumentation zu LLVM_BUILD_TOOLS oben. LLVM_INCLUDE_EXAMPLES: BOOL Generiert Build-Ziele für die LLVM-Beispiele. Standardmäßig auf ON. Sie können diese Option verwenden, um die Generierung von Build-Zielen für die LLVM-Beispiele zu deaktivieren. LLVM_BUILD_TESTS: BOOL Erstellt LLVM-Komponententests. Standardmäßig AUS. Ziele für den Aufbau jedes Unit-Testssind in jedem Fall generiert. Sie können einen bestimmten Komponententest mit den unter unittests definierten Zielen erstellen, z. B. ADTTests, IRTests, SupportTests usw. (Suchen Sie in den Unterverzeichnissen von unittests nachadd_llvm_unittest, um eine vollständige Liste der Komponententests zu erhalten.) Es ist möglich, alle Unit-Tests mit den Ziel-UnitTests zu erstellen. LLVM_INCLUDE_TESTS: BOOL Generiert Build-Ziele für die LLVM-Komponententests. Standardmäßig auf ON. Sie können diese Option verwenden, um die Generierung von Build-Zielen für die LLVM-Einheitentests zu deaktivieren. LLVM_BUILD_BENCHMARKS:BOOL Fügt Benchmarks zur Liste der Standardziele hinzu. Standardmäßig AUS. LLVM_INCLUDE_BENCHMARKS: BOOL Generiert Build-Ziele für die LLVM-Benchmarks. Standardmäßig auf ON. LLVM_APPEND_VC_REV: BOOL Einbetten Versionskontrolle Revision info (Git Revision ID).Die Versionsinformationen werden vom Makro

LLVM_REVISIONinllvm/include/llvm/Support/VCSRevision.hbereitgestellt. Entwickler, die git verwenden und keine Revisionsinformationen benötigen, können diese Option deaktivieren, um zu vermeiden, dass die meisten Binärdateien nach einem Verzweigungswechsel erneut verknüpft werden. Standardmäßig auf ON. LLVM_ENABLE_THREADS: BOOL-Build mit Threads-Unterstützung, falls verfügbar. Standardmäßig auf ON. LLVM_ENABLE_UNWIND_TABLES: BOOL Aktiviert das Abwickeln von Tabellen in der Binärdatei. Das Deaktivieren von Unwind-Tabellen kann die Größe der Bibliotheken verringern. Standardmäßig auf ON. LLVM_ENABLE_ASSERTIONS:BOOL Aktiviert Code Assertions. Der Standardwert ist genau dann ON, wennCMAKE_BUILD_TYPEDebug ist. LLVM_ENABLE_EH: BOOL Erstellt LLVM mit Unterstützung für die Ausnahmebehandlung. Dies ist erforderlich, wenn Sie eine Verknüpfung mit LLVM-Bibliotheken herstellen und C ++ – Ausnahmen in Ihrem eigenen Code verwenden möchten, die über LLVM-Code weitergegeben werden müssen. Standardmäßig AUS. LLVM_ENABLE_EXPENSIVE_CHECKS: BOOL Aktiviert zusätzliche zeit- / speicherintensive Prüfungen. Standardmäßig AUS. LLVM_ENABLE_IDE:BOOL Teilt dem Build-System mit, dass eine IDE verwendet wird. Dies wiederum deaktiviert die Erstellung bestimmter Convenience-Build-Systemziele, wie z. B. die verschiedeneninstall-*– undcheck-*-Ziele, da IDEs nicht immer gut mit einer großen Anzahl von Zielen umgehen. Dies wird normalerweise automatisch erkannt, kann jedoch manuell konfiguriert werden, um die Generierung dieser Ziele explizit zu steuern. Ein Szenario, in dem eine manuelle Überschreibung wünschenswert sein kann, ist die Verwendung der CMake-Integration von Visual Studio2017, die andernfalls nicht als IDE erkannt würde. LLVM_ENABLE_MODULES: BOOL kompiliert mit Clang-Header-Modulen. LLVM_ENABLE_PIC: BOOL Fügen Sie der Befehlszeile des Compilers das Flag-fPIChinzu, wenn der Compiler dieses Flag unterstützt. Einige Systeme wie Windows benötigen dieses Flag nicht. Standardmäßig auf ON. LLVM_ENABLE_RTTI: BOOL Erstellt LLVM mit Laufzeittypinformationen. Standardmäßig AUS. LLVM_ENABLE_WARNINGS:BOOL Aktiviert alle Compiler-Warnungen. Standardmäßig auf ON. LLVM_ENABLE_PEDANTIC: BOOL pedantischen Modus aktivieren. Dies deaktiviert compilerspezifische Erweiterungen, wennmöglich. Standardmäßig auf ON. LLVM_ENABLE_WERROR: BOOL Stoppt den Build und schlägt fehl, wenn eine Compiler-Warnung ausgelöst wird. Standardmäßig AUS. LLVM_ABI_BREAKING_CHECKS: STRING, der verwendet wird, um zu entscheiden, ob LLVM mit ABI-Breaking-Checks oder nicht erstellt werden soll. Zulässige Werte sind WITH_ASSERTS (Standard), FORCE_ON und Force_off. WITH_ASSERTS aktiviert ABI-Breaking-Prüfungen in einem Build mit aktivierter Assertion. FORCE_ON (FORCE_OFF) schaltet sie ein (aus), unabhängig davon, ob normale (NDEBUG-basierte) Assertionen aktiviert sind oder nicht. Eine Version von LLVM, die mit ABI-Breaking-Checks erstellt wurde, ist nicht ABI-kompatibel mit einer Version, die ohne ABI-Breaking-Checks erstellt wurde. LLVM_BUILD_32_BITS: BOOL Erstellt ausführbare 32-Bit-Dateien und Bibliotheken auf 64-Bit-Systemen. Diese Option ist nur auf einigen 64-Bit-Unix-Systemen verfügbar. Standardmäßig AUS. LLVM_TARGET_ARCH: STRING LLVM-Ziel für die native Codegenerierung. Dies ist für JITgeneration erforderlich. Standardmäßig ist „host“, was bedeutet, dass die Architektur der Maschine ausgewählt wird, auf der LLVM erstellt wird. Wenn Sie Cross-compilieren, legen Sie es festauf den Namen der Zielarchitektur. LLVM_TABLEGEN: STRING Vollständiger Pfad zu einer nativen ausführbaren TableGen-Datei (normalerweise

llvm-tblgen). Dies ist für das Cross-Compiling vorgesehen: Wenn der Benutzer diese Variable setzt, wird kein nativeTableGen erstellt. LLVM_LIT_ARGS: STRING-Argumente für lit.make checkundmake clang-testsind affected.By standard,'-sv --no-progress-bar'auf Visual C ++ und Xcode,'-sv'auf andere. LLVM_LIT_TOOLS_DIR:PATH Der Pfad zu GnuWin32 Tools für Tests. Gültig auf Windows-Host. In diesem Fall sucht lit nach Tools, die für Tests benötigt werden (z. B.grep,sortusw.) in Ihrem %PATH%. Wenn sich GnuWin32 nicht in Ihrem% PATH% befindet, können Sie diese Variable auf das Verzeichnis GnuWin32 setzen, damit in diesem Verzeichnis die für Tests erforderlichen Tools gefunden werden können. LLVM_ENABLE_FFI:BOOL Gibt an, ob der LLVM-Interpreter mit der Foreign FunctionInterface Library (libffi) verknüpft wird, um den Aufruf externer Funktionen zu ermöglichen.Wenn die Bibliothek oder ihre Header in einem benutzerdefinierten Speicherort installiert sind, können Sie auch die Variablen FFI_INCLUDE_DIR undFFI_LIBRARY_DIR auf die Verzeichnisse setzen, in denen ffi.h und libffi.so kann jeweils gefunden werden. Standardmäßig AUS. LLVM_EXTERNAL_{CLANG,LLD,POLLY}_SOURCE_DIR:PATH Diese Variablen geben den Pfad zum Quellverzeichnis für die externen LVM-Projekte Clang, lld bzw. Wenn das In-Tree-Unterverzeichnis für ein externes Projekt vorhanden ist (z. B. llvm / tools / clang für Clang), wird die entsprechende Variable nicht verwendet. Wenn die Variable für ein externes Projekt nicht auf einen gültigen Pfad verweist, wird dieses Projekt nicht erstellt. LLVM_ENABLE_PROJECTS:STRING Semikolongetrennte Liste der zu erstellenden Projekte oder alle zum Erstellen aller Projekte (clang, libcxx, libcxxabi, lldb, compiler-rt, lld, polly usw.).Dieses Flag setzt voraus, dass Projekte nebeneinander und nicht verschachtelt ausgecheckt werden, dh clang muss parallel zu llvm sein, anstatt in llvm / tools verschachtelt zu sein.Diese Funktion ermöglicht es, einen Build nur für LLVM und einen anderen für clang + llvm mit demselben Quellcode zu erstellen.Die vollständige Liste lautet:clang;clang-tools-extra;compiler-rt;debuginfo-tests;libc;libclc;libcxx;libcxxabi;libunwind;lld;lldb;openmp;parallel-libs;polly;pstlLLVM_EXTERNAL_PROJECTS: STRING Durch Semikolons getrennte Liste zusätzlicher externer Projekte, die als Teil von llvm erstellt werden sollen. Für jedes Projekt muss LLVM_EXTERNAL_<NAME>_SOURCE_DIR mit dem Pfad für den Quellcode des Projekts angegeben werden. Beispiel:-DLLVM_EXTERNAL_PROJECTS="Foo;Bar"-DLLVM_EXTERNAL_FOO_SOURCE_DIR=/src/foo-DLLVM_EXTERNAL_BAR_SOURCE_DIR=/src/bar

. LLVM_USE_OPROFILE: BOOL Aktivieren Gebäude OProfile JIT-Unterstützung. Standardmäßig AUS. LLVM_PROFDATA_FILE: PFAD Pfad zu einer Profdata-Datei, die an das Flag -fprofile-instr-use von clang übergeben werden soll. Dies kann nur angegeben werden, wenn Sie mit clang erstellen. LLVM_USE_INTEL_JITEVENTS: BOOL Aktivieren Gebäude Unterstützung für Intel JIT Events API. Standardmäßig AUS. LLVM_ENABLE_LIBPFM: BOOL Ermöglicht das Erstellen mit libpfm, um Hardware-Zählermessungen in LLVMtools zu unterstützen.Standardmäßig auf ON. LLVM_USE_PERF: BOOL Aktivieren Gebäude Unterstützung für Perf (Linux Profiling Tool) JIT-Unterstützung. Standardmäßig AUS. LLVM_ENABLE_ZLIB: BOOL Ermöglicht das Erstellen mit zlib, um die Komprimierung / Dekomprimierung in LLVM-Tools zu unterstützen.Standardmäßig auf ON. LLVM_ENABLE_DIA_SDK: BOOL Ermöglicht das Erstellen mit MSVC DIA SDK für die PDB-Debugging-Unterstützung. Nur mit MSVC verfügbar. Standardmäßig auf ON. LLVM_USE_SANITIZER:STRING Definiert den Sanitizer, der zum Erstellen von LLVM-Binärdateien und Tests verwendet wird. Mögliche Werte sindAddress,Memory,MemoryWithOrigins,Undefined,Thread,DataFlow, undAddress;Undefined. Standardmäßig leere Zeichenfolge. LLVM_UBSAN_FLAGS:STRING Definiert den Satz von Kompilierungsflags, die zum Aktivieren von UBSan verwendet werden. Wird nur verwendet, wennLLVM_USE_SANITIZERUndefinedenthält. Dies kann verwendet werden, um den Standardsatz von UBSan-Flags zu überschreiben. LLVM_ENABLE_LTO: STRING Fügen Sie-fltooder-flto=Flags zu den Kompilieren und Link-Befehlszeilen, so dass Link-Time-Optimierung. Mögliche Werte sindOff,On,ThinundFull. Standardmäßig AUS. LLVM_USE_LINKER:STRING Füge-fuse-ld={name}zum Linkaufruf hinzu. Der mögliche Wert hängt von Ihrem Compiler ab, für clang kann der Wert ein absoluter Pfad zu Ihrem customlinker sein, andernfalls wird clang dem Namenld.voranstellen und seine übliche Suche anwenden. Um beispielsweise LLVM mit dem Gold-Linker zu verknüpfen, kann cmake mit-DLLVM_USE_LINKER=goldaufgerufen werden. LLVM_ENABLE_LIBCXX:BOOL Wenn der Host-Compiler und Linker das Flag stdlib unterstützt, wird -stdlib=libc++ an Aufrufe beider übergeben, sodass das Projekt mit libc ++ anstelle von stdlibc ++ erstellt wird. Standardmäßig AUS. LLVM_STATIC_LINK_CXX_STDLIB: BOOL Statische Verknüpfung mit der C ++ – Standardbibliothek, wenn möglich. Dies verwendet das Flag „-static-libstdc ++“, aber ein Clang-Host-Compiler verknüpft statisch mit libc ++, wenn er in Verbindung mit dem Flag LLVM_ENABLE_LIBCXX verwendet wird. Standardmäßig AUS. LLVM_ENABLE_LLD:BOOL Diese Option entspricht -DLLVM_USE_LINKER=lld, außer während eines 2-stufigen Builds, bei dem eine Abhängigkeit von der ersten Stufe zur zweiten hinzugefügt wird, um sicherzustellen, dass die lld erstellt wird, bevor stage2 beginnt. LLVM_PARALLEL_COMPILE_JOBS:STRING Definiert die maximale Anzahl gleichzeitiger Kompilierungsjobs. LLVM_PARALLEL_LINK_JOBS:STRING Definiert die maximale Anzahl gleichzeitiger Linkjobs. LLVM_EXTERNALIZE_DEBUGINFO: BOOL Generiert dSYM-Dateien und entfernt ausführbare Dateien und Bibliotheken (nur Darwin).Standardmäßig AUS. LLVM_USE_CRT_{target}:STRING Unter Windows, gibt an, welche Version der C-Laufzeitbibliothek (CRT) verwendet werden soll.Zum Beispiel würde -DLLVM_USE_CRT_RELEASE=MT die CRT statisch mit den JVM-Tools und der Bibliothek verknüpfen. LLVM_INTEGRATED_CRT_ALLOC: PFAD

Unter Windows ermöglicht das Einbetten eines anderen C-Laufzeitzuweisers in die LLVMtools und Bibliotheken. Die Verwendung eines sperrfreien Allokators wie dem unten aufgeführten verringert die ThinLTO-Link-Zeit erheblich um etwa eine Größenordnung. Es verbessert auch die Clang-Build-Zeiten um etwa 5-10%. Im Moment werden rpmalloc, snmalloc und mimalloc unterstützt. Verwenden Sie den Pfad zu git clone, um den entsprechenden Allokator auszuwählen, zum Beispiel:

$ D:\git> git clone https://github.com/mjansson/rpmalloc$ D:\llvm-project> cmake ... -DLLVM_INTEGRATED_CRT_ALLOC=D:\git\rpmalloc

Dieses Flag muss zusammen mit der statischen CRT verwendet werden, dh. wenn Sie das Release-Ziel erstellen, fügen Sie -DLLVM_USE_CRT_RELEASE=MT hinzu.

LLVM_BUILD_DOCS: BOOL Fügt alle aktivierten Dokumentationsziele (d. h. Doxgis- und Sphinx-Ziele) als Abhängigkeiten der Standard-Build-Ziele hinzu. Dies führt dazu, dass alle (aktivierten) Dokumentationsziele Teil eines normalen Builds sind. Wenn dasinstall-Ziel ausgeführt wird, können auch alle erstellten Dokumentationsziele installiert werden. Standardmäßig AUS. Um ein bestimmtes Dokumentationsziel zu aktivieren, siehe LLVM_ENABLE_SPHINX und LLVM_ENABLE_DOXYGEN. LLVM_ENABLE_DOXYGEN:BOOL Ermöglicht die Generierung von durchsuchbarer HTML-Dokumentation mit doxygen.Standardmäßig AUS. LLVM_ENABLE_DOXYGEN_QT_HELP:BOOL Ermöglicht die Generierung einer Qt-komprimierten Hilfedatei. Standardmäßig AUS.Dies betrifft das make targetdoxygen-llvm. Wenn diese Option aktiviert ist, wird neben der normalen HTML-Ausgabe, die von doxygen generiert wird, ein QCH-Dateinameorg.llvm.qcherzeugt. Sie können diese Datei dann in Qt Creator laden.Diese Option ist nur in Kombination mit-DLLVM_ENABLE_DOXYGEN=ONsinnvoll, ansonsten hat sie keine Wirkung. LLVM_DOXYGEN_QCH_FILENAME:STRING Der Dateiname der Qt-komprimierten Hilfedatei, die generiert wird, wenn-DLLVM_ENABLE_DOXYGEN=ONund-DLLVM_ENABLE_DOXYGEN_QT_HELP=ONangegeben werden. Der Standardwert istorg.llvm.qch.Diese Option ist nur in Kombination mit-DLLVM_ENABLE_DOXYGEN_QT_HELP=ONsinnvoll, sonst hat sie keine Wirkung. LLVM_DOXYGEN_QHP_NAMESPACE: STRING-Namespace, unter dem sich die Qt-Hilfeprojekt-Zwischendatei befindet. Weitere Informationen finden Sie unter QtHelp-Projekt. Der Standardwert ist „org.llvm“. Diese Option ist nur nützlich inKombination mit-DLLVM_ENABLE_DOXYGEN_QT_HELP=ON; otherwises hat keine Wirkung. LLVM_DOXYGEN_QHP_CUST_FILTER_NAME: STRING Siehe Qt-Hilfeprojekt fürweitere Informationen. Standardmäßig wird die CMake-Variable

${PACKAGE_STRING}verwendet, die eine Kombination aus dem Paketnamen und der Versionszeichenfolge ist. Dieser Filter kann dann in Qt Creator verwendet werden, um nur Dokumentation aus LLVM auszuwählen, wenn Sie alle Hilfedateien durchsuchen, die Sie möglicherweise geladen haben. Diese Option ist nur in Kombination mit-DLLVM_ENABLE_DOXYGEN_QT_HELP=ONsinnvoll, sonst hat sie keine Wirkung. LLVM_DOXYGEN_QHELPGENERATOR_PATH:STRING Der Pfad zur ausführbaren Dateiqhelpgenerator. Standardmäßig wird alles verwendet, was cmakesfind_program()finden kann. Diese Option ist nur in Kombination mit-DLLVM_ENABLE_DOXYGEN_QT_HELP=ONsinnvoll, sonst hat sie keine Wirkung. LLVM_DOXYGEN_SVG: BOOL Verwendet .svg-Dateien statt .png-Dateien für Grafiken in der Doxygen-Ausgabe.Standardmäßig AUS. LLVM_INSTALL_DOXYGEN_HTML_DIR:STRING Der Pfad zur Installation der Doxygen-generierten HTML-Dokumentation. Dieser Pfad kann entweder absolut oder relativ zum CMAKE_INSTALL_PREFIX . Standardmäßig wird /doc /llvm / doxygen-html geteilt. LLVM_ENABLE_SPHINX: BOOL Wenn angegeben, sucht CMake nach der ausführbaren Dateisphinx-buildund stellt die CMake-OptionenSPHINX_OUTPUT_HTMLundSPHINX_OUTPUT_MANzur Verfügung.Standardmäßig AUS. SPHINX_EXECUTABLE: STRING Der Pfad zur ausführbaren Dateisphinx-build, die von CMake erkannt wurde.Installationsanweisungen finden Sie unterhttps://www.sphinx-doc.org/de/master/usage/installation.html SPHINX_OUTPUT_HTML:BOOL Wenn aktiviert (undLLVM_ENABLE_SPHINXaktiviert ist), werden die Ziele zum Erstellen der Dokumentation als HTML hinzugefügt (jedoch nicht standardmäßig erstellt, es sei denn,LLVM_BUILD_DOCSist aktiviert). Es gibt ein Ziel für jedes Projekt im Quellbaum, das Sphinx verwendet (z. B.docs-llvm-html,docs-clang-htmlunddocs-lld-html). Standardmäßig auf ON. SPHINX_OUTPUT_MAN:BOOL Wenn aktiviert (undLLVM_ENABLE_SPHINXaktiviert ist) werden die Ziele für die Erstellung der Manpages hinzugefügt (aber nicht standardmäßig erstellt, es sei denn,LLVM_BUILD_DOCSist aktiviert). Derzeit ist das einzige hinzugefügte Zieldocs-llvm-man. Defaultsto AUF. SPHINX_WARNINGS_AS_ERRORS:BOOL Wenn aktiviert, werden Warnungen in der Sphinx-Dokumentation als Fehler behandelt. Standardmäßig auf ON. LLVM_INSTALL_SPHINX_HTML_DIR: STRING Der Pfad, in den die von Sphinx generierte HTML-Dokumentation installiert werden soll. Dieser Pfad kann entweder absolut oder relativ zum CMAKE_INSTALL_PREFIX . Standardmäßig wird / doc / llvm / html geteilt. LLVM_INSTALL_OCAMLDOC_HTML_DIR:STRING Der Pfad zur Installation der OCamldoc-generierten HTML-Dokumentation. Dieser Pfad kann entweder absolut oder relativ zum CMAKE_INSTALL_PREFIX . Standardmäßig wird / doc / llvm / ocaml-html geteilt. LLVM_CREATE_XCODE_TOOLCHAIN: Nur BOOL macOS: Wenn aktiviert, generiert CMake ein Ziel mit dem Namen ‚installation-xcode-toolchain‘. Dieses Ziel erstellt ein Verzeichnis unter $ CMAKE_INSTALL_PREFIX /Toolchains, das ein xctoolchain Verzeichnis enthält, mit dem die Standardsystemtools überschrieben werden können. LLVM_BUILD_LLVM_DYLIB:BOOL Wenn aktiviert, wird das Ziel zum Erstellen der gemeinsam genutzten Bibliothek libLLVM hinzugefügt.Diese Bibliothek enthält alle Komponenten von LLVM in einer einzigen gemeinsam genutzten Bibliothek.Standardmäßig AUS. Dies kann nicht in Verbindung mit BUILD_SHARED_LIBS verwendet werden.Tools werden nur dann mit der gemeinsam genutzten Bibliothek libLLVM verknüpft, wenn auch LLVM_LINK_LLVM_DYLIBis aktiviert ist.Die Komponenten in der Bibliothek können angepasst werden, indem LLVM_DYLIB_COMPONENTSto auf eine Liste der gewünschten Komponenten gesetzt wird.Diese Option ist unter Windows nicht verfügbar. LLVM_LINK_LLVM_DYLIB:BOOL Wenn diese Option aktiviert ist, werden Tools mit der gemeinsam genutzten Bibliothek libLLVM verknüpft. Defaultsto AUS. Wenn Sie LLVM_LINK_LLVM_DYLIB auf ON setzen, wird auch llvm_build_llvm_dylib auf ON gesetzt.Diese Option ist unter Windows nicht verfügbar. BUILD_SHARED_LIBS: BOOL

Flag, das angibt, ob jede LLVM-Komponente (z. B. Support) als sharedlibrary (ON) oder als statische Bibliothek (OFF) erstellt wurde. Der Standardwert ist OFF. Unter Windows können gemeinsam genutzte Bibliotheken beim Erstellen mit MinGW verwendet werden, einschließlich mingw-w64, jedoch nicht beim Erstellen mit der Microsoft-Toolchain.

Hinweis

BUILD_SHARED_LIBS wird nur für die Verwendung durch LLVM-Entwickler empfohlen.Wenn Sie LLVM als gemeinsam genutzte Bibliothek erstellen möchten, sollten Sie die OptionLLVM_BUILD_LLVM_DYLIB verwenden.

LLVM_OPTIMIZED_TABLEGEN: BOOL Wenn aktiviert und ein Debug- oder Asserts-Build erstellt wird, generiert das CMake-Build-System einen Release-Build-Baum, um ein vollständig optimiertes Tablegen für die Verwendung während des Builds zu erstellen. Das Aktivieren dieser Option kann die Erstellungszeit erheblich beschleunigen, insbesondere beim Erstellen von LLVM in Debug-Konfigurationen. LLVM_REVERSE_ITERATION: BOOL Wenn aktiviert, werden alle unterstützten ungeordneten llvm-Container in umgekehrter Reihenfolge iteriert. Dies ist nützlich, um Nicht-Determinismus aufzudecken, der durch die Überlagerung ungeordneter Container verursacht wird. LLVM_BUILD_INSTRUMENTED_COVERAGE: BOOL Wenn aktiviert, ist die Quellcodeabdeckungsinstrumentation beim Erstellen von llvm aktiviert. LLVM_CCACHE_BUILD:BOOL Wenn aktiviert und dasccache-Programm verfügbar ist, wird LLVM mitccacheerstellt, um den Wiederaufbau von LLVM und seinen Komponenten zu beschleunigen.Standardmäßig AUS. Die Größe und der Speicherort des vonccacheverwalteten Caches können über die Umgebungsvariablen LLVM_CCACHE_MAXSIZE und LLVM_CCACHE_DIRoptions angepasst werden, die an die Umgebungsvariablen CCACHE_MAXSIZE bzw. LLVM_FORCE_USE_OLD_TOOLCHAIN: BOOL Wenn aktiviert, werden die Compiler- und Standardbibliotheksversionen nicht überprüft. LLV kann überhaupt nicht kompiliert werden oder zur Laufzeit aufgrund bekannter Fehler in thesetoolchains fehlschlagen. LLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN:BOOL Wenn aktiviert, warnt die Compiler-Versionsprüfung nur, wenn eine Toolchainwhich verwendet wird, die bald veraltet ist, anstatt einen Fehler auszugeben. LLVM_USE_NEWPM: BOOL Wenn aktiviert, verwenden Sie den experimentellen neuen Pass-Manager. LLVM_ENABLE_BINDINGS: BOOL Wenn deaktiviert, versuchen Sie nicht, die OCaml- und Go-Bindungen zu erstellen. LLVM_ENABLE_Z3_SOLVER:BOOL Wenn aktiviert, ist der Z3 Constraint Solver für den statischen Clang Analyzer aktiviert.Eine aktuelle Version der z3-Bibliothek muss auf dem System verfügbar sein. LLVM_USE_RELATIVE_PATHS_IN_DEBUG_INFO: BOOL Schreibt absolute Quellpfade in Debug-Informationen in relative um. Das Quellpräfix kann über die Variable LLVM_SOURCE_PREFIX angepasst werden. LLVM_USE_RELATIVE_PATHS_IN_FILES: BOOL Schreibt absolute Quellpfade in Quellen und Debug-Informationen in relative um. Das Quellpräfix kann über die Variable LLVM_SOURCE_PREFIX angepasst werden. LLVM_INSTALL_UTILS:BOOL Wenn aktiviert, werden Utility-Binärdateien wieFileCheckundnotin CMAKE_INSTALL_PREFIX installiert.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.