bygning af LLVM med CMake lyster

LLVM-specifikke variabler lyster

LLVM_TARGETS_TO_BUILD:streng semikolon-adskilt liste over mål, der skal bygges, eller alle til opbygning af alltargets. Case-sensitive. Standard til alle. Eksempel:-DLLVM_TARGETS_TO_BUILD="X86;PowerPC". LLVM_BUILD_TOOLS: BOOL Bygge LLVM værktøjer. Som standard til. Mål for opbygning af hvert værktøj er genereretunder alle omstændigheder. Du kan opbygge et værktøj separat ved at påberåbe sig dets mål. For eksempel kan du bygge llvm-som med et Makefile-baseret system ved at udføre makellvm-som i roden af dit build-bibliotek. LLVM_INCLUDE_TOOLS:BOOL generere bygge mål for LLVM værktøjer. Som standard til. Du kan bruge thisoption til at deaktivere generering af build mål for LLVM værktøjer. LLVM_INSTALL_BINUTILS_SYMLINKS: BOOL installer symlinks fra binutils værktøjsnavne til de tilsvarende LLVM-værktøjer.For eksempel vil ar blive symlinket til llvm-ar. LLVM_INSTALL_CCTOOLS_SYMLINKS: BOOL installere symliks fra CCTools værktøj navne til de tilsvarende LLVM værktøjer.For eksempel vil lipo blive symlink til llvm-lipo. Llvm_build_eksempler: bool Bygge LLVM eksempler. Standard til fra. Mål for opbygning af hvert eksempel ergenereret under alle omstændigheder. Se dokumentation for llvm_build_tools ovenfor for moredetails. LLVM_INCLUDE_EKSEMPLER: BOOL generere bygge mål for LLVM eksempler. Som standard til. Du kan bruge thisoption til at deaktivere generering af build mål for LLVM eksempler. LLVM_BUILD_TESTS: BOOL Bygge LLVM enhed tests. Standard til fra. Mål for opbygning af hver enhedstestgenereres under alle omstændigheder. Du kan opbygge en bestemt enhedstest ved hjælp afmål defineret under unittests, såsom ADTTests, IRTests, SupportTests osv. (Søg efteradd_llvm_unittesti UnitTests undermapper for en komplet liste over enhedstest.) Det er muligt at opbygge alle enhedstestmed målenhederne. LLVM_INCLUDE_TESTS: BOOL generere bygge mål for LLVM unit tests. Som standard til. Du kan brugedenne mulighed for at deaktivere genereringen af byggemål for LLVM unittests. LLVM_BUILD_BENCHMARKS: BOOL tilføjer benchmarks til listen over standardmål. Standard til fra. LLVM_INCLUDE_BENCHMARKS: BOOL generere bygge mål for LLVM benchmarks. Som standard til. LLVM_APPEND_VC_REV: BOOL integrere version kontrol revision info (Git revision id).Versionsoplysningerne leveres af makroenLLVM_REVISIONillvm/include/llvm/Support/VCSRevision.h. Udviklere, der bruger git, der ikke har brug for revisionsoplysninger, kan deaktivere denne mulighed for at undgå at forbinde de fleste binariesefter en filialkontakt. Som standard til. LLVM_ENABLE_THREADS: BOOL bygge med tråde støtte, hvis de er tilgængelige. Som standard til. LLVM_ENABLE_UNVIND_TABLES:BOOL aktivere slappe tabeller i den binære. Deaktivering af slappe af tabeller kan reducere størrelsen af bibliotekerne. Som standard til. LLVM_ENABLE_ASSERTIONS: BOOL muliggør kode påstande. Som standard til hvis og kun hvis

CMAKE_BUILD_TYPEer Debug. LLVM_ENABLE_EH: BOOL Bygge LLVM med Undtagelse-Håndtering support. Dette er nødvendigt, hvis du ønsker atlink mod LLVM biblioteker og gøre brug af C++ undtagelser i din egen kodeder skal udbrede gennem LLVM kode. Standard til fra. LLVM_ENABLE_EKSPENSIVE_CHECKS: BOOL aktivere ekstra tid / hukommelse dyre kontrol. Standard til fra. LLVM_ENABLE_IDE: BOOL fortæller byggesystemet, at der bruges en IDE. Dette deaktiverer igen oprettelsen af visse bekvemmelighedsopbygningssystemmål, såsom de forskelligeinstall-*ogcheck-*mål, da ide ‘ er ikke altid håndterer et stort antal mål. Dette registreres normalt automatisk, men det kan konfigureres manuelt for eksplicit at kontrollere genereringen af disse mål. Onescenario, hvor en manuel tilsidesættelse kan være ønskelig, er ved brug af Visual Studio2017 ‘ s CMake-integration, som ellers ikke ville blive detekteret som en IDE. LLVM_ENABLE_MODULES: BOOL kompilere med Clang Header moduler. LLVM_ENABLE_PIC: BOOL Tilføj-fPICflaget til compiler kommandolinjen, hvis compileren understøtterdette flag. Nogle systemer, som vinduer, behøver ikke dette flag. Som standard til. LLVM_ENABLE_RTTI: BOOL Bygge LLVM med run-Time type information. Standard til fra. LLVM_ENABLE_ADVARSLER: BOOL aktivere alle compiler advarsler. Som standard til. LLVM_ENABLE_PEDANTIC: BOOL aktivere pedantisk tilstand. Dette deaktiverer compiler-specifikke udvidelser, hvis det er muligt. Som standard til. BOOL stoppe og fejle build, hvis en compiler advarsel udløses. Standard til fra. LLVM_ABI_BREAKING_CHECKS: STRING bruges til at afgøre, om LLVM skal bygges med ABI breaking checks ornot. Tilladte værdier er MED_ASSERTS (standard), FORCE_ON ogforce_off. MED_ASSERTS tænder ABI breaking checks i anassertion aktiveret build. FORCE_ON(FORCE_OFF) slår dem til (fra) uanset om normale (NDEBUG-baserede) påstande er aktiveret eller ej. En version af LLVM bygget med ABI breaking checkser ikke ABI kompatibel med en version bygget uden den. LLVM_BUILD_32_BITS: BOOL bygger 32-bit eksekverbare filer og biblioteker på 64-bit systemer. Denne mulighed er kun tilgængelig på nogle 64-bit unikke systemer. Standard til fra. LLVM_TARGET_ARCH: STRING LLVM mål til brug for native kode generation. Dette er nødvendigt for JITgeneration. Det er som standard “vært”, hvilket betyder, at det skal vælge arkitekturen af maskinen, hvor LLVM bygges. Hvis du krydskompilerer, skal du indstille dentil målarkitekturnavnet. LLVM_TABLEGEN: STRING fuld sti til en indfødt TableGen eksekverbar (normalt navngivet

llvm-tblgen). Dette er beregnet til cross-kompilering: hvis brugeren indstiller denne variabel, ingen nativeTableGen vil blive oprettet. LLVM_LIT_ARGS:STRING argumenter givet til lit.make checkogmake clang-tester affected.By standard,'-sv --no-progress-bar'på Visual C++ og kode,'-sv'påandre. LLVM_LIT_TOOLS_DIR:sti stien til Gnuvin32 værktøjer til test. Gælder på vinduer vært. Standard for den tomme streng, i hvilket tilfælde lit vil søge efter værktøjer, der er nødvendige til test(f.eks.grep,sortosv.) i din %sti%. Hvis Gnuvin32 ikke er i din % PATH%, kan du indstille denne variabel til Gnuvin32-mappen, så thatlit kan finde de nødvendige værktøjer til test i den pågældende mappe. LLVM_ENABLE_FFI: BOOL angiver, om LLVM-tolken vil blive knyttet til Foreign FunctionInterface library (libffi) for at aktivere opkald af eksterne funktioner.Hvis biblioteket eller dets overskrifter er installeret i en customlocation, kan du også indstille variablerne FFI_INCLUDE_DIR andFFI_LIBRARY_DIR til de mapper, hvor ffi.h og libffi.so kan findes henholdsvis. Standard til fra. LLVM_EKSTERNAL_{CLANG,LLD,POLLY}_SOURCE_DIR:sti disse variabler angiver stien til kildekataloget for henholdsvis eksterne projekter Clang, lld og Polly i forhold til top-levelsource-biblioteket. Llvm/tools/clang for Clang), vil den tilsvarende variabelvil ikke blive brugt. Hvis Variablen for et eksternt projekt ikke pegertil en gyldig sti, så bliver projektet ikke bygget. LLVM_ENABLE_PROJECTS:STRING semikolon-adskilt liste over projekter, der skal bygges, eller alle til opbygning af alle(clang, lld, lldb, compiler-rt, lld, polly osv.) projekter.Dette flag antager,at projekter kontrolleres side om side og ikke indlejres, dvs.clang skal være parallelt med llvm i stedet for indlejret i llvm/værktøjer.Denne funktion gør det muligt at have en build for kun LLVM og en anden for clang+llvmusing den samme kilde kassen.Den fulde liste er:clang;clang-tools-extra;compiler-rt;debuginfo-tests;libc;libclc;libcxx;libcxxabi;libunwind;lld;lldb;openmp;parallel-libs;polly;pstlLLVM_EKSTERNAL_PROJECTS: streng semikolon-adskilt liste over yderligere eksterne projekter, der skal bygges som en del afllvm. For hvert projekt skal llvm_eksternal_<NAME>_SOURCE_DIR specificeresmed stien til projektets kildekode. Eksempel:-DLLVM_EXTERNAL_PROJECTS="Foo;Bar"-DLLVM_EXTERNAL_FOO_SOURCE_DIR=/src/foo-DLLVM_EXTERNAL_BAR_SOURCE_DIR=/src/bar. LLVM_USE_OPROFILE: BOOL aktivere bygning OProfile JIT støtte. Standard til fra. LLVM_PROFDATA_FILE:sti sti til en profdata fil til at passere ind clang s-fprofile-instr-brug flag. Dette kan kun specificeres, hvis du bygger med clang. LLVM_USE_INTEL_JITEVENTS: BOOL aktivere bygning støtte til Intel JIT Events API. Standard til fra. LLVM_ENABLE_LIBPFM: BOOL gør det muligt at bygge med libpfm for at understøtte målinger af udstyrstællere i LLVMtools.Som standard til. LLVM_USE_PERF: BOOL aktivere bygning støtte til perf (profilering værktøj) JIT støtte. Standard til fra. LLVM_ENABLE_LIB: BOOL gør det muligt at bygge med llvb for at understøtte komprimering/ukomprimering i LLVM-værktøjer.Som standard til. LLVM_ENABLE_DIA_SDK: BOOL aktivere bygning med MSVC DIA SDK til PDB debugging support. Kun tilgængelig med MSVC. Som standard til. LLVM_USE_SANITISER: streng definerer det desinficeringsmiddel, der bruges til at opbygge LLVM-binære filer og tests. Mulige værdierer

Address,Memory,MemoryWithOrigins,Undefined,Thread,DataFlow, ogAddress;Undefined. Som standard er tom streng. LLVM_UBSAN_FLAGS:STRING definerer det sæt kompileringsflag, der bruges til at aktivere UBSan. Anvendes kun, hvisLLVM_USE_SANITIZERindeholderUndefined. Dette kan bruges til at tilsidesætte standardsættet med UBSan-flag. LLVM_ENABLE_LTO: STRING tilføje-fltoeller-flto=flag til kompilere og link kommandolinjer, muliggør link-time optimering. Mulige værdier erOff,On,ThinogFull. Standard til fra. LLVM_USE_LINKER: STRING Tilføj-fuse-ld={name}til linkpåkaldelsen. Den mulige værdi afhænger afdin compiler, for clang værdien kan være en absolut sti til din customlinker, ellers clang vil præfiks navnet medld.og anvende sin sædvanligesøgning. For eksempel at linke LLVM med Guldlink, kan cmake invoked med-DLLVM_USE_LINKER=gold. Hvis host compiler og linker understøtter stdlib flag, – stdlib=libc++ ispassed til påkaldelser af begge, så projektet er bygget ved hjælp af libc++i stedet for stdlibc++. Standard til fra. LLVM_STATIC_LINK_STDLIB: BOOL statisk link til C++ standard bibliotek hvis det er muligt. Dette bruger flaget”-static-libstdc++”, men en Clang host compiler vil statisk linke til libc++, hvis det bruges sammen med flaget llvm_enable_libcc. Standard til fra. LLVM_ENABLE_LLD:BOOL denne mulighed svarer til-DLLVM_USE_LINKER=lld, undtagen under en 2-trinsbygning, hvor en afhængighed tilføjes fra første fase til anden, hvilket sikrer, at lld er bygget, før stage2 begynder. LLVM_PARALLEL_COMPILE_JOBS: STRING definere det maksimale antal samtidige kompilering job. LLVM_PARALLEL_LINK_JOBS: STRING definere det maksimale antal samtidige link job. Llvm_debuginfo: Bool generere dSYM-filer og strip eksekverbare filer og biblioteker.Standard til fra. LLVM_USE_CRT_{target}:STRING på vinduer, fortæller hvilken version af C runtime library (CRT) skal bruges.For eksempel ville-DLLVM_USE_CRT_RELEASE=MT statisk forbinde CRT til thellvm-værktøjer og bibliotek. LLVM_INTEGRATED_CRT_ALLOC: sti

på vinduer, tillader indlejring af en anden C runtime allocator i LLVMtools og biblioteker. Brug af en låsefri allokator som dem, der er anført nedenforstærkt reducerer ThinLTO link tid med omkring en størrelsesorden. Det forbedrer også Clang byggetider med omkring 5-10%. I øjeblikket understøttes rpmalloc, snmalloc og mimalloc. Brug stien til git-klon til at vælgeden respektive allokator, for eksempel:

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

dette flag skal bruges sammen med den statiske CRT, dvs. hvis bygning theRelease mål, add-dllvm_use_crt_release=MT.

LLVM_BUILD_DOCS: BOOL tilføjer alle aktiverede dokumentationsmål (dvs. Dette resulterer i, at alle (aktiverede)dokumentationsmål er som en del af en normal build. Hvisinstall– målet køres, gør dette det også muligt at installere alle indbyggede dokumentationsmål. Standard til fra. For at aktivere et bestemt dokumentationsmål, seesee LLVM_ENABLE_SPHINKS og LLVM_ENABLE_DOKSGEN. BOOL muliggør generering af HTML-dokumentation, der kan gennemses, ved hjælp af doksygen.Standard til fra. BOOL muliggør generering af en komprimeret hjælpefil. Standard til fra.Dette påvirker make-måletdoxygen-llvm. Når det er aktiveret, bortset fra den normale HTML-output, der genereres af, vil dette producere en KCH-fil med navnet org.llvm.qch. Du kan derefter indlæse denne fil i Creator.Denne indstilling er kun nyttig i kombination med -DLLVM_ENABLE_DOXYGEN=ON; ellers har dette ingen effekt. Filnavn: STRING filnavnet på den komprimerede hjælpefil, der vil blive genereret, når-DLLVM_ENABLE_DOXYGEN=ON og-DLLVM_ENABLE_DOXYGEN_QT_HELP=ON er givet. Som standardorg.llvm.qch.Denne indstilling er kun nyttig i kombination med-DLLVM_ENABLE_DOXYGEN_QT_HELP=ON; ellers har den ingen effekt. STRING Namespace: STRING Namespace, hvorunder den mellemliggende Hjælpeprojektfil lever. Se help Project for at få flere oplysninger. Som standard ” org.llvm”. Denne indstilling er kun nyttig ikombination med -DLLVM_ENABLE_DOXYGEN_QT_HELP=ON; ellersdet har ingen effekt. LLVM_CUST_FILTER_NAME: STRING Se hjælp til projekt forflere oplysninger. Som standard CMake-variablen ${PACKAGE_STRING}, som er en kombination af pakkenavnet og versionsstrengen. Dette filter kan derefter bruges til kun at vælge dokumentation fra LLVM, når du gennemser alle de hjælpefiler, du muligvis har indlæst. Denne mulighed er kunnyttigt i kombination med -DLLVM_ENABLE_DOXYGEN_QT_HELP=ON; ellers har den ingen effekt. Sti: streng stien til den eksekverbare qhelpgenerator. Standard til hvad CMake ‘ sfind_program() kan finde. Denne indstilling er kun nyttig i kombination med-DLLVM_ENABLE_DOXYGEN_QT_HELP=ON ; ellers har den noeffect. LLVM_VG_SVG: BOOL bruger .svg-filer i stedet for .png-filer til grafer i Doksygen-output.Standard til fra. LLVM_INSTALL_HTML_DIR:STRING stien for at installere Doksygen-genereret HTML-dokumentation til. Denne sti kanenten være absolut eller i forhold til CMAKE_INSTALL_PRÆFIKS. Standardindstillinger toshare/doc/llvm / doksygen-html. Hvis angivet, vil CMake søge efter den sphinx-build eksekverbare og vil gøre SPHINX_OUTPUT_HTML og SPHINX_OUTPUT_MAN CMake muligheder tilgængelige.Standard til fra. SFINKS_EKSEKVERBAR: STRING stien til sphinx-build eksekverbar detekteret af CMake.For installationsvejledning, seehttps://Sfinks-doc.org/en/master / usage / installation.hvis BOOL er aktiveret (og LLVM_ENABLE_SPHINX er aktiveret), tilføjes målene for opbygning af dokumentationen som html (men ikke bygget som standard, medmindreLLVM_BUILD_DOCS er aktiveret). Der er et mål for hvert projekt i kildetræet, der bruger Sfinks (f.eks. docs-llvm-html, docs-clang-htmlog docs-lld-html). Som standard til. SFINKS_OUTPUT_MAN: BOOL hvis aktiveret (og LLVM_ENABLE_SPHINX er aktiveret) målene for buildingthe man sider tilføjes (men ikke bygget som standard, medmindre LLVM_BUILD_DOCSer aktiveret). I øjeblikket er det eneste mål tilføjet docs-llvm-man. Defaultsto på. SFINKS_ADVARSELS_AS_FEJL:BOOL hvis aktiveret derefter Sfinks dokumentation advarsler vil blive behandlet somfejl. Som standard til. LLVM_INSTALL_HTML_DIR:STRING stien til at installere Sfinks-genereret HTML dokumentation til. Denne sti kanenten være absolut eller i forhold til CMAKE_INSTALL_PRÆFIKS. Standard toshare / doc / LLVM / html. LLVM_INSTALL_OCAMLDOC_HTML_DIR:STRING stien for at installere OCamldoc-genereret HTML-dokumentation til. Denne sti kanenten være absolut eller i forhold til CMAKE_INSTALL_PRÆFIKS. Standard toshare / doc/llvm / ocaml-html. LLVM_CREATE_CODE_TOOLCHAIN: BOOL macOS kun: Hvis aktiveret CMake vil generere et mål med navnet ‘installer-kode-toolchain’. Dette mål vil oprette en mappe på$cmake_install_præfiks / værktøjskæder, der indeholder en kctoolchain-mappe, som kan bruges til at tilsidesætte standardsystemværktøjerne. LLVM_BUILD_LLVM_DYLIB: BOOL hvis aktiveret, er målet for opbygning af libLLVM delte bibliotek tilføjet.Dette bibliotek indeholder alle llvms komponenter i et enkelt delt bibliotek.Standard til fra. Dette kan ikke bruges sammen med BUILD_SHARED_LIBS.Værktøjer vil kun blive knyttet til libLLVM delte bibliotek, hvis LLVM_LINK_LLVM_DYLIBis også på.Komponenterne i biblioteket kan tilpasses ved at indstille LLVM_DYLIB_COMPONENTSto en liste over de ønskede komponenter.Denne indstilling er ikke tilgængelig på vinduer. LLVM_LINK_LLVM_DYLIB: BOOL hvis aktiveret, vil værktøjer blive knyttet til libLLVM delte bibliotek. Defaultsto slukket. Indstilling af LLVM_LINK_LLVM_DYLIB til on indstiller også llvm_build_llvm_dylibto til.Denne indstilling er ikke tilgængelig på vinduer. BUILD_SHARED_LIBS: Bool

Flag, der angiver, om hver LLVM-komponent (f.eks. Dens standardværdi er slået fra. Påvinduer kan delte biblioteker bruges, når man bygger med Mingv, herunder mingv64, men ikke når man bygger med Microsoft toolchain.

Bemærk

BUILD_SHARED_LIBS anbefales kun til brug af LLVM-udviklere.Hvis du vil opbygge LLVM som et delt bibliotek, skal du bruge indstillingenLLVM_BUILD_LLVM_DYLIB.

LLVM_OPTIMERET_TABLEGEN:BOOL hvis aktiveret og opbygge en debug eller hævder at bygge CMake build-systemet vil generere et Release build-træ for at opbygge en fuldt optimeret tablegen til brug af bygningen. Aktivering af denne mulighed kan betydeligt fremskynde byggetiderisær ved opbygning af LLVM i Debug konfigurationer. LLVM_REVERSE_ITERATION: BOOL hvis aktiveret, vil alle understøttede uordnede LLVM-containere blive gentaget i omvendt rækkefølge. Dette er nyttigt til at afdække ikke-determinisme forårsaget afiteration af uordnede containere. LLVM_BUILD_INSTRUMENTED_COVERAGE: BOOL hvis aktiveret, kildebaseret kode dækning instrumentionis aktiveret under opbygning llvm. LLVM_CCACHE_BUILD: BOOL hvis aktiveret og ccache programmet er tilgængeligt, vil LLVM blive bygget ved hjælp af ccache for at fremskynde genopbygninger af LLVM og dets komponenter.Standard til fra. Størrelsen og placeringen af cachen vedligeholdt af ccache kan justeres via llvm_ccache_maks og LLVM_CCACHE_DIRoptions, som overføres til henholdsvis CCACHE_MAKS og CCACHE_DIR environmentvariables. LLVM_FORCE_USE_OLD_TOOLCHAIN: BOOL hvis aktiveret, vil compiler og standard bibliotek versioner ikke blive markeret. Llvmmå ikke kompilere overhovedet, eller kan mislykkes på runtime på grund af kendte fejl i thesetoolchains. LLVM_TEMPORARILY_TILLAD_OLD_TOOLCHAIN:BOOL hvis aktiveret, advarer compiler-versionskontrollen kun, når du bruger en værktøjskædesom er ved at blive forældet i stedet for at udsende en fejl. Hvis det er aktiveret, skal du bruge den eksperimentelle nye pass manager. LLVM_ENABLE_BINDINGS: BOOL hvis Deaktiveret, Ikke forsøge at bygge OCaml og go bindinger. LLVM_ENABLE_S3_SOLVER: BOOL hvis den er aktiveret, aktiveres begrænsningsløseren til clang statisk analysator.En nyere version af D3-biblioteket skal være tilgængelig på systemet. LLVM_USE_RELATIVE_PATHS_IN_DEBUG_INFO:BOOL omskrive absolutte kilde stier i debug info til relative dem. Kildepræfikset kan justeres via variablen llvm_source_prefiks. LLVM_USE_RELATIVE_PATHS_IN_FILES: BOOL omskrive absolutte kilde stier i kilder og debug info til relative dem. Præfikset kan justeres via variablen llvm_source_prefiks. LLVM_INSTALL_UTILS: BOOL hvis aktiveret, vil værktøjsbinarier som FileCheck og not blive installerettil CMAKE_INSTALL_PRÆFIKS.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.