mirror of
https://github.com/yann64/haikuports.git
synced 2026-05-06 06:58:57 +02:00
This library is used by youcompleteme and it should not need the whole clang package (which is big) to be installed.
538 lines
20 KiB
Bash
538 lines
20 KiB
Bash
SUMMARY="Modular and reuseable compiler and toolchain technologies"
|
|
DESCRIPTION="LLVM is a collection of modular and reuseable compiler and and \
|
|
toolchain technologies.The LLVM compiler system for C and C++ includes the \
|
|
following:
|
|
|
|
- Front-ends for C, C++, Objective-C, Fortran, etc. based on the GCC 4.2 \
|
|
parsers. They support the ANSI-standard C and C++ languages to the same \
|
|
degree that GCC supports them. Additionally, many GCC extensions are \
|
|
supported.
|
|
- A stable implementation of the LLVM instruction set, which serves as both \
|
|
the online and offline code representation, together with assembly (ASCII) \
|
|
and bytecode (binary) readers and writers, and a verifier.
|
|
- A powerful pass-management system that automatically sequences passes \
|
|
(including analysis, transformation, and code-generation passes) based on \
|
|
their dependences, and pipelines them for efficiency.
|
|
- A wide range of global scalar optimizations.
|
|
- A link-time interprocedural optimization framework with a rich set of \
|
|
analyses and transformations, including sophisticated whole-program pointer \
|
|
analysis, call graph construction, and support for profile-guided optimizations.
|
|
- An easily retargettable code generator, which currently supports X86, \
|
|
X86-64, PowerPC, PowerPC-64, ARM, Thumb, SPARC, Alpha, CellSPU, MIPS, MSP430, \
|
|
SystemZ, and XCore.
|
|
- A Just-In-Time (JIT) code generation system, which currently supports X86, \
|
|
X86-64, ARM, AArch64, Mips, SystemZ, PowerPC, and PowerPC-64.
|
|
- Support for generating DWARF debugging information.
|
|
- A C back-end useful for testing and for generating native code on targets \
|
|
other than the ones listed above.
|
|
- A profiling system similar to gprof.
|
|
- A test framework with a number of benchmark codes and applications.
|
|
- APIs and debugging tools to simplify rapid development of LLVM components."
|
|
HOMEPAGE="https://www.llvm.org/"
|
|
COPYRIGHT="2003-2018 University of Illinois at Urbana-Champaign"
|
|
LICENSE="UIUC"
|
|
REVISION="1"
|
|
SOURCE_URI="https://releases.llvm.org/$portVersion/llvm-$portVersion.src.tar.xz"
|
|
CHECKSUM_SHA256="8872be1b12c61450cacc82b3d153eab02be2546ef34fa3580ed14137bb26224c"
|
|
SOURCE_DIR="llvm-$portVersion.src"
|
|
SOURCE_URI_2="https://releases.llvm.org/$portVersion/cfe-$portVersion.src.tar.xz"
|
|
CHECKSUM_SHA256_2="084c115aab0084e63b23eee8c233abb6739c399e29966eaeccfc6e088e0b736b"
|
|
SOURCE_DIR_2="cfe-$portVersion.src"
|
|
SOURCE_URI_3="https://releases.llvm.org/$portVersion/clang-tools-extra-$portVersion.src.tar.xz"
|
|
CHECKSUM_SHA256_3="4f00122be408a7482f2004bcf215720d2b88cf8dc78b824abb225da8ad359d4b"
|
|
SOURCE_DIR_3="clang-tools-extra-$portVersion.src"
|
|
SOURCE_URI_4="https://releases.llvm.org/$portVersion/compiler-rt-$portVersion.src.tar.xz"
|
|
CHECKSUM_SHA256_4="b435c7474f459e71b2831f1a4e3f1d21203cb9c0172e94e9d9b69f50354f21b1"
|
|
SOURCE_DIR_4="compiler-rt-$portVersion.src"
|
|
PATCHES="llvm-$portVersion.patchset"
|
|
PATCHES_2="clang-$portVersion.patchset"
|
|
|
|
ARCHITECTURES="!x86_gcc2 ?x86 x86_64"
|
|
SECONDARY_ARCHITECTURES="?x86"
|
|
|
|
PROVIDES="
|
|
llvm8$secondaryArchSuffix = $portVersion compat >= 8
|
|
cmd:bugpoint
|
|
cmd:diagtool
|
|
cmd:dsymutil
|
|
cmd:find_all_symbols
|
|
cmd:hmaptool
|
|
cmd:llc
|
|
cmd:lli
|
|
cmd:llvm_ar
|
|
cmd:llvm_as
|
|
cmd:llvm_bcanalyzer
|
|
cmd:llvm_c_test
|
|
cmd:llvm_cat
|
|
cmd:llvm_cfi_verify
|
|
cmd:llvm_config = $portVersion compat >= 8
|
|
cmd:llvm_cov
|
|
cmd:llvm_cvtres
|
|
cmd:llvm_cxxdump
|
|
cmd:llvm_cxxfilt
|
|
cmd:llvm_cxxmap
|
|
cmd:llvm_diff
|
|
cmd:llvm_dis
|
|
cmd:llvm_dlltool
|
|
cmd:llvm_dwarfdump
|
|
cmd:llvm_dwp
|
|
cmd:llvm_elfabi
|
|
cmd:llvm_exegesis
|
|
cmd:llvm_extract
|
|
cmd:llvm_lib
|
|
cmd:llvm_link
|
|
cmd:llvm_lto
|
|
cmd:llvm_lto2
|
|
cmd:llvm_mc
|
|
cmd:llvm_mca
|
|
cmd:llvm_modextract
|
|
cmd:llvm_mt
|
|
cmd:llvm_nm
|
|
cmd:llvm_objcopy
|
|
cmd:llvm_objdump
|
|
cmd:llvm_opt_report
|
|
cmd:llvm_pdbutil
|
|
cmd:llvm_profdata
|
|
cmd:llvm_ranlib
|
|
cmd:llvm_rc
|
|
cmd:llvm_readelf
|
|
cmd:llvm_readobj
|
|
cmd:llvm_rtdyld
|
|
cmd:llvm_size
|
|
cmd:llvm_split
|
|
cmd:llvm_stress
|
|
cmd:llvm_strings
|
|
cmd:llvm_strip
|
|
cmd:llvm_symbolizer
|
|
cmd:llvm_tblgen
|
|
cmd:llvm_undname
|
|
cmd:llvm_xray
|
|
cmd:obj2yaml
|
|
cmd:opt
|
|
cmd:sancov
|
|
cmd:sanstats
|
|
cmd:verify_uselistorder
|
|
cmd:yaml2obj
|
|
devel:libfindAllSymbols$secondaryArchSuffix
|
|
devel:libLLVM$secondaryArchSuffix = $portVersion compat >= 8
|
|
devel:libLLVM_$portVersion$secondaryArchSuffix = $portVersion compat >= 8
|
|
devel:libLLVM_8$secondaryArchSuffix = $portVersion compat >= 8
|
|
devel:libLLVMAArch64AsmParser$secondaryArchSuffix
|
|
devel:libLLVMAArch64AsmPrinter$secondaryArchSuffix
|
|
devel:libLLVMAArch64CodeGen$secondaryArchSuffix
|
|
devel:libLLVMAArch64Desc$secondaryArchSuffix
|
|
devel:libLLVMAArch64Disassembler$secondaryArchSuffix
|
|
devel:libLLVMAArch64Info$secondaryArchSuffix
|
|
devel:libLLVMAArch64Utils$secondaryArchSuffix
|
|
devel:libLLVMAggressiveInstCombine$secondaryArchSuffix
|
|
devel:libLLVMAMDGPUAsmParser$secondaryArchSuffix
|
|
devel:libLLVMAMDGPUAsmPrinter$secondaryArchSuffix
|
|
devel:libLLVMAMDGPUCodeGen$secondaryArchSuffix
|
|
devel:libLLVMAMDGPUDesc$secondaryArchSuffix
|
|
devel:libLLVMAMDGPUDisassembler$secondaryArchSuffix
|
|
devel:libLLVMAMDGPUInfo$secondaryArchSuffix
|
|
devel:libLLVMAMDGPUUtils$secondaryArchSuffix
|
|
devel:libLLVMAnalysis$secondaryArchSuffix
|
|
devel:libLLVMARMAsmParser$secondaryArchSuffix
|
|
devel:libLLVMARMAsmPrinter$secondaryArchSuffix
|
|
devel:libLLVMARMCodeGen$secondaryArchSuffix
|
|
devel:libLLVMARMDesc$secondaryArchSuffix
|
|
devel:libLLVMARMDisassembler$secondaryArchSuffix
|
|
devel:libLLVMARMInfo$secondaryArchSuffix
|
|
devel:libLLVMARMUtils$secondaryArchSuffix
|
|
devel:libLLVMAsmParser$secondaryArchSuffix
|
|
devel:libLLVMAsmPrinter$secondaryArchSuffix
|
|
devel:libLLVMBinaryFormat$secondaryArchSuffix
|
|
devel:libLLVMBitReader$secondaryArchSuffix
|
|
devel:libLLVMBitWriter$secondaryArchSuffix
|
|
devel:libLLVMBPFAsmParser$secondaryArchSuffix
|
|
devel:libLLVMBPFAsmPrinter$secondaryArchSuffix
|
|
devel:libLLVMBPFCodeGen$secondaryArchSuffix
|
|
devel:libLLVMBPFDesc$secondaryArchSuffix
|
|
devel:libLLVMBPFDisassembler$secondaryArchSuffix
|
|
devel:libLLVMBPFInfo$secondaryArchSuffix
|
|
devel:libLLVMCodeGen$secondaryArchSuffix
|
|
devel:libLLVMCore$secondaryArchSuffix
|
|
devel:libLLVMCoroutines$secondaryArchSuffix
|
|
devel:libLLVMCoverage$secondaryArchSuffix
|
|
devel:libLLVMDebugInfoCodeView$secondaryArchSuffix
|
|
devel:libLLVMDebugInfoDWARF$secondaryArchSuffix
|
|
devel:libLLVMDebugInfoMSF$secondaryArchSuffix
|
|
devel:libLLVMDebugInfoPDB$secondaryArchSuffix
|
|
devel:libLLVMDemangle$secondaryArchSuffix
|
|
devel:libLLVMDlltoolDriver$secondaryArchSuffix
|
|
devel:libLLVMExecutionEngine$secondaryArchSuffix
|
|
devel:libLLVMFuzzMutate$secondaryArchSuffix
|
|
devel:libLLVMGlobalISel$secondaryArchSuffix
|
|
devel:libLLVMHexagonAsmParser$secondaryArchSuffix
|
|
devel:libLLVMHexagonCodeGen$secondaryArchSuffix
|
|
devel:libLLVMHexagonDesc$secondaryArchSuffix
|
|
devel:libLLVMHexagonDisassembler$secondaryArchSuffix
|
|
devel:libLLVMHexagonInfo$secondaryArchSuffix
|
|
devel:libLLVMInstCombine$secondaryArchSuffix
|
|
devel:libLLVMInstrumentation$secondaryArchSuffix
|
|
devel:libLLVMInterpreter$secondaryArchSuffix
|
|
devel:libLLVMipo$secondaryArchSuffix
|
|
devel:libLLVMIRReader$secondaryArchSuffix
|
|
devel:libLLVMLanaiAsmParser$secondaryArchSuffix
|
|
devel:libLLVMLanaiAsmPrinter$secondaryArchSuffix
|
|
devel:libLLVMLanaiCodeGen$secondaryArchSuffix
|
|
devel:libLLVMLanaiDesc$secondaryArchSuffix
|
|
devel:libLLVMLanaiDisassembler$secondaryArchSuffix
|
|
devel:libLLVMLanaiInfo$secondaryArchSuffix
|
|
devel:libLLVMLibDriver$secondaryArchSuffix
|
|
devel:libLLVMLineEditor$secondaryArchSuffix
|
|
devel:libLLVMLinker$secondaryArchSuffix
|
|
devel:libLLVMLTO$secondaryArchSuffix
|
|
devel:libLLVMMC$secondaryArchSuffix
|
|
devel:libLLVMMCA$secondaryArchSuffix
|
|
devel:libLLVMMCDisassembler$secondaryArchSuffix
|
|
devel:libLLVMMCJIT$secondaryArchSuffix
|
|
devel:libLLVMMCParser$secondaryArchSuffix
|
|
devel:libLLVMMipsAsmParser$secondaryArchSuffix
|
|
devel:libLLVMMipsAsmPrinter$secondaryArchSuffix
|
|
devel:libLLVMMipsCodeGen$secondaryArchSuffix
|
|
devel:libLLVMMipsDesc$secondaryArchSuffix
|
|
devel:libLLVMMipsDisassembler$secondaryArchSuffix
|
|
devel:libLLVMMipsInfo$secondaryArchSuffix
|
|
devel:libLLVMMIRParser$secondaryArchSuffix
|
|
devel:libLLVMMSP430AsmParser$secondaryArchSuffix
|
|
devel:libLLVMMSP430AsmPrinter$secondaryArchSuffix
|
|
devel:libLLVMMSP430CodeGen$secondaryArchSuffix
|
|
devel:libLLVMMSP430Desc$secondaryArchSuffix
|
|
devel:libLLVMMSP430Disassembler$secondaryArchSuffix
|
|
devel:libLLVMMSP430Info$secondaryArchSuffix
|
|
devel:libLLVMNVPTXAsmPrinter$secondaryArchSuffix
|
|
devel:libLLVMNVPTXCodeGen$secondaryArchSuffix
|
|
devel:libLLVMNVPTXDesc$secondaryArchSuffix
|
|
devel:libLLVMNVPTXInfo$secondaryArchSuffix
|
|
devel:libLLVMObjCARCOpts$secondaryArchSuffix
|
|
devel:libLLVMObject$secondaryArchSuffix
|
|
devel:libLLVMObjectYAML$secondaryArchSuffix
|
|
devel:libLLVMOption$secondaryArchSuffix
|
|
devel:libLLVMOptRemarks$secondaryArchSuffix
|
|
devel:libLLVMOrcJIT$secondaryArchSuffix
|
|
devel:libLLVMPasses$secondaryArchSuffix
|
|
devel:libLLVMPowerPCAsmParser$secondaryArchSuffix
|
|
devel:libLLVMPowerPCAsmPrinter$secondaryArchSuffix
|
|
devel:libLLVMPowerPCCodeGen$secondaryArchSuffix
|
|
devel:libLLVMPowerPCDesc$secondaryArchSuffix
|
|
devel:libLLVMPowerPCDisassembler$secondaryArchSuffix
|
|
devel:libLLVMPowerPCInfo$secondaryArchSuffix
|
|
devel:libLLVMProfileData$secondaryArchSuffix
|
|
devel:libLLVMRuntimeDyld$secondaryArchSuffix
|
|
devel:libLLVMScalarOpts$secondaryArchSuffix
|
|
devel:libLLVMSelectionDAG$secondaryArchSuffix
|
|
devel:libLLVMSparcAsmParser$secondaryArchSuffix
|
|
devel:libLLVMSparcAsmPrinter$secondaryArchSuffix
|
|
devel:libLLVMSparcCodeGen$secondaryArchSuffix
|
|
devel:libLLVMSparcDesc$secondaryArchSuffix
|
|
devel:libLLVMSparcDisassembler$secondaryArchSuffix
|
|
devel:libLLVMSparcInfo$secondaryArchSuffix
|
|
devel:libLLVMSupport$secondaryArchSuffix
|
|
devel:libLLVMSymbolize$secondaryArchSuffix
|
|
devel:libLLVMSystemZAsmParser$secondaryArchSuffix
|
|
devel:libLLVMSystemZAsmPrinter$secondaryArchSuffix
|
|
devel:libLLVMSystemZCodeGen$secondaryArchSuffix
|
|
devel:libLLVMSystemZDesc$secondaryArchSuffix
|
|
devel:libLLVMSystemZDisassembler$secondaryArchSuffix
|
|
devel:libLLVMSystemZInfo$secondaryArchSuffix
|
|
devel:libLLVMTableGen$secondaryArchSuffix
|
|
devel:libLLVMTarget$secondaryArchSuffix
|
|
devel:libLLVMTextAPI$secondaryArchSuffix
|
|
devel:libLLVMTransformUtils$secondaryArchSuffix
|
|
devel:libLLVMVectorize$secondaryArchSuffix
|
|
devel:libLLVMWebAssemblyAsmParser$secondaryArchSuffix
|
|
devel:libLLVMWebAssemblyAsmPrinter$secondaryArchSuffix
|
|
devel:libLLVMWebAssemblyCodeGen$secondaryArchSuffix
|
|
devel:libLLVMWebAssemblyDesc$secondaryArchSuffix
|
|
devel:libLLVMWebAssemblyDisassembler$secondaryArchSuffix
|
|
devel:libLLVMWebAssemblyInfo$secondaryArchSuffix
|
|
devel:libLLVMWindowsManifest$secondaryArchSuffix
|
|
devel:libLLVMX86AsmParser$secondaryArchSuffix
|
|
devel:libLLVMX86AsmPrinter$secondaryArchSuffix
|
|
devel:libLLVMX86CodeGen$secondaryArchSuffix
|
|
devel:libLLVMX86Desc$secondaryArchSuffix
|
|
devel:libLLVMX86Disassembler$secondaryArchSuffix
|
|
devel:libLLVMX86Info$secondaryArchSuffix
|
|
devel:libLLVMX86Utils$secondaryArchSuffix
|
|
devel:libLLVMXCoreAsmPrinter$secondaryArchSuffix
|
|
devel:libLLVMXCoreCodeGen$secondaryArchSuffix
|
|
devel:libLLVMXCoreDesc$secondaryArchSuffix
|
|
devel:libLLVMXCoreDisassembler$secondaryArchSuffix
|
|
devel:libLLVMXCoreInfo$secondaryArchSuffix
|
|
devel:libLLVMXRay$secondaryArchSuffix
|
|
devel:libLTO$secondaryArchSuffix = $portVersion compat >= 8
|
|
devel:libOptRemarks$secondaryArchSuffix = 8.0.0 compat >= 8
|
|
lib:BugpointPasses$secondaryArchSuffix
|
|
lib:LLVMHello$secondaryArchSuffix
|
|
lib:testplugin$secondaryArchSuffix
|
|
"
|
|
REQUIRES="
|
|
haiku$secondaryArchSuffix
|
|
lib:libLLVM_8$secondaryArchSuffix
|
|
lib:libz$secondaryArchSuffix
|
|
"
|
|
CONFLICTS="
|
|
llvm$secondaryArchSuffix
|
|
llvm6$secondaryArchSuffix
|
|
llvm7$secondaryArchSuffix
|
|
"
|
|
|
|
PROVIDES_clang="
|
|
llvm8${secondaryArchSuffix}_clang = $portVersion
|
|
cmd:c_index_test = $portVersion
|
|
cmd:clang = $portVersion
|
|
cmd:clang++ = $portVersion
|
|
cmd:clang_8 = $portVersion
|
|
cmd:clang_apply_replacements = $portVersion
|
|
cmd:clang_change_namespace = $portVersion
|
|
cmd:clang_check = $portVersion
|
|
cmd:clang_cl = $portVersion
|
|
cmd:clang_cpp = $portVersion
|
|
cmd:clang_extdef_mapping = $portVersion
|
|
cmd:clang_format = $portVersion
|
|
cmd:clang_func_mapping = $portVersion
|
|
cmd:clang_import_test = $portVersion
|
|
cmd:clang_include_fixer = $portVersion
|
|
cmd:clang_offload_bundler = $portVersion
|
|
cmd:clang_query = $portVersion
|
|
cmd:clang_refactor = $portVersion
|
|
cmd:clang_rename = $portVersion
|
|
cmd:clang_reorder_fields = $portVersion
|
|
cmd:clang_tidy = $portVersion
|
|
cmd:clangd = $portVersion
|
|
cmd:git_clang_format = $portVersion
|
|
cmd:modularize = $portVersion
|
|
devel:libclang$secondaryArchSuffix = $portVersion compat >= 8
|
|
devel:libclanganalysis$secondaryArchSuffix = $portVersion
|
|
devel:libclangapplyreplacements$secondaryArchSuffix = $portVersion
|
|
devel:libclangarcmigrate$secondaryArchSuffix = $portVersion
|
|
devel:libclangast$secondaryArchSuffix = $portVersion
|
|
devel:libclangastmatchers$secondaryArchSuffix = $portVersion
|
|
devel:libclangbasic$secondaryArchSuffix = $portVersion
|
|
devel:libclangchangenamespace$secondaryArchSuffix = $portVersion
|
|
devel:libclangcodegen$secondaryArchSuffix = $portVersion
|
|
devel:libclangcrosstu$secondaryArchSuffix = $portVersion
|
|
devel:libclangdaemon$secondaryArchSuffix = $portVersion
|
|
devel:libclangdoc$secondaryArchSuffix = $portVersion
|
|
devel:libclangdriver$secondaryArchSuffix = $portVersion
|
|
devel:libclangdynamicastmatchers$secondaryArchSuffix = $portVersion
|
|
devel:libclangedit$secondaryArchSuffix = $portVersion
|
|
devel:libclangformat$secondaryArchSuffix = $portVersion
|
|
devel:libclangfrontend$secondaryArchSuffix = $portVersion
|
|
devel:libclangfrontendtool$secondaryArchSuffix = $portVersion
|
|
devel:libclanghandlecxx$secondaryArchSuffix = $portVersion
|
|
devel:libclanghandlellvm$secondaryArchSuffix = $portVersion
|
|
devel:libclangincludefixer$secondaryArchSuffix = $portVersion
|
|
devel:libclangincludefixerplugin$secondaryArchSuffix = $portVersion
|
|
devel:libclangindex$secondaryArchSuffix = $portVersion
|
|
devel:libclanglex$secondaryArchSuffix = $portVersion
|
|
devel:libclangmove$secondaryArchSuffix = $portVersion
|
|
devel:libclangparse$secondaryArchSuffix = $portVersion
|
|
devel:libclangquery$secondaryArchSuffix = $portVersion
|
|
devel:libclangreorderfields$secondaryArchSuffix = $portVersion
|
|
devel:libclangrewrite$secondaryArchSuffix = $portVersion
|
|
devel:libclangrewritefrontend$secondaryArchSuffix = $portVersion
|
|
devel:libclangsema$secondaryArchSuffix = $portVersion
|
|
devel:libclangserialization$secondaryArchSuffix = $portVersion
|
|
devel:libclangstaticanalyzercheckers$secondaryArchSuffix = $portVersion
|
|
devel:libclangstaticanalyzercore$secondaryArchSuffix = $portVersion
|
|
devel:libclangstaticanalyzerfrontend$secondaryArchSuffix = $portVersion
|
|
devel:libclangtidy$secondaryArchSuffix = $portVersion
|
|
devel:libclangtidyabseilmodule$secondaryArchSuffix = $portVersion
|
|
devel:libclangtidyandroidmodule$secondaryArchSuffix = $portVersion
|
|
devel:libclangtidyboostmodule$secondaryArchSuffix = $portVersion
|
|
devel:libclangtidybugpronemodule$secondaryArchSuffix = $portVersion
|
|
devel:libclangtidycertmodule$secondaryArchSuffix = $portVersion
|
|
devel:libclangtidycppcoreguidelinesmodule$secondaryArchSuffix = $portVersion
|
|
devel:libclangtidyfuchsiamodule$secondaryArchSuffix = $portVersion
|
|
devel:libclangtidygooglemodule$secondaryArchSuffix = $portVersion
|
|
devel:libclangtidyhicppmodule$secondaryArchSuffix = $portVersion
|
|
devel:libclangtidyllvmmodule$secondaryArchSuffix = $portVersion
|
|
devel:libclangtidymiscmodule$secondaryArchSuffix = $portVersion
|
|
devel:libclangtidymodernizemodule$secondaryArchSuffix = $portVersion
|
|
devel:libclangtidympimodule$secondaryArchSuffix = $portVersion
|
|
devel:libclangtidyobjcmodule$secondaryArchSuffix = $portVersion
|
|
devel:libclangtidyperformancemodule$secondaryArchSuffix = $portVersion
|
|
devel:libclangtidyplugin$secondaryArchSuffix = $portVersion
|
|
devel:libclangtidyportabilitymodule$secondaryArchSuffix = $portVersion
|
|
devel:libclangtidyreadabilitymodule$secondaryArchSuffix = $portVersion
|
|
devel:libclangtidyutils$secondaryArchSuffix = $portVersion
|
|
devel:libclangtidyzirconmodule$secondaryArchSuffix = $portVersion
|
|
devel:libclangtooling$secondaryArchSuffix = $portVersion
|
|
devel:libclangtoolingastdiff$secondaryArchSuffix = $portVersion
|
|
devel:libclangtoolingcore$secondaryArchSuffix = $portVersion
|
|
devel:libclangtoolinginclusions$secondaryArchSuffix = $portVersion
|
|
devel:libclangtoolingrefactor$secondaryArchSuffix = $portVersion
|
|
"
|
|
REQUIRES_clang="
|
|
haiku$secondaryArchSuffix
|
|
lib:libclang$secondaryArchSuffix
|
|
lib:libLLVM_8$secondaryArchSuffix
|
|
lib:libz$secondaryArchSuffix
|
|
"
|
|
CONFLICTS_clang="
|
|
llvm${secondaryArchSuffix}_clang
|
|
llvm6${secondaryArchSuffix}_clang
|
|
llvm7${secondaryArchSuffix}_clang
|
|
"
|
|
|
|
PROVIDES_clang_analysis="
|
|
llvm8${secondaryArchSuffix}_clang_analysis = $portVersion
|
|
cmd:c++_analyzer = $portVersion
|
|
cmd:ccc_analyzer = $portVersion
|
|
cmd:scan_build = $portVersion
|
|
cmd:scan_view = $portVersion
|
|
"
|
|
REQUIRES_clang_analysis="
|
|
llvm8${secondaryArchSuffix}_clang == $portVersion base
|
|
cmd:python
|
|
"
|
|
CONFLICTS_clang_analysis="
|
|
llvm${secondaryArchSuffix}_clang_analysis
|
|
llvm6${secondaryArchSuffix}_clang_analysis
|
|
llvm7${secondaryArchSuffix}_clang_analysis
|
|
"
|
|
|
|
PROVIDES_libs="
|
|
llvm8${secondaryArchSuffix}_libs = $portVersion
|
|
lib:libclang$secondaryArchSuffix = $portVersion compat >= 8
|
|
lib:libLLVM_8$secondaryArchSuffix = 8.0.0 compat >= 8.0
|
|
lib:libLTO$secondaryArchSuffix = 8.0.0 compat >= 8
|
|
lib:libOptRemarks$secondaryArchSuffix = 8.0.0 compat >= 8
|
|
"
|
|
REQUIRES_libs="
|
|
haiku$secondaryArchSuffix
|
|
lib:libz$secondaryArchSuffix
|
|
"
|
|
|
|
BUILD_REQUIRES="
|
|
haiku${secondaryArchSuffix}_devel
|
|
devel:libz$secondaryArchSuffix
|
|
"
|
|
BUILD_PREREQUIRES="
|
|
cmd:cmake
|
|
cmd:diff
|
|
cmd:find
|
|
cmd:gcc$secondaryArchSuffix
|
|
cmd:grep
|
|
cmd:groff
|
|
cmd:ld$secondaryArchSuffix
|
|
cmd:make
|
|
cmd:ninja
|
|
cmd:python
|
|
cmd:sed
|
|
"
|
|
|
|
BUILD()
|
|
{
|
|
# Add clang tools
|
|
mkdir -p tools/clang
|
|
cp -rd $sourceDir2/* tools/clang/
|
|
|
|
# Add clang tools's tool's (really llvm?)
|
|
mkdir -p tools/clang/tools/extra
|
|
cp -rd $sourceDir3/* tools/clang/tools/extra
|
|
|
|
mkdir -p projects/compiler-rt
|
|
cp -rd $sourceDir4/* projects/compiler-rt
|
|
|
|
local cmakeFlags
|
|
if [ -n "$secondaryArchSuffix" ]; then
|
|
cmakeFlags=-DHAIKU_HYBRID_SECONDARY="\"${effectiveTargetArchitecture}\""
|
|
cmakeFlags="$cmakeFlags -DLLVM_LIBDIR_SUFFIX=/${effectiveTargetArchitecture}"
|
|
fi
|
|
|
|
mkdir -p build; cd build
|
|
# Haiku C++ requires rtti in a lot of central system components
|
|
# such as Mesa
|
|
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$prefix \
|
|
-DCMAKE_SKIP_RPATH=YES $cmakeFlags \
|
|
-DLLVM_ENABLE_RTTI=ON -DLLVM_LINK_LLVM_DYLIB=YES \
|
|
-DLLVM_ENABLE_BUILD_TESTS=YES \
|
|
..
|
|
|
|
make $jobArgs PROJ_datadir=$dataDir PROJ_docsdir=$docDir \
|
|
PROJ_mandir=$manDir PROJ_includedir=$includeDir PROJ_libdir=$libDir
|
|
}
|
|
|
|
INSTALL()
|
|
{
|
|
cd build
|
|
|
|
mkdir -p $binDir $developDir $dataDir $docDir $includeDir $manDir $libDir
|
|
|
|
make install PROJ_datadir=$dataDir PROJ_docsdir=$docDir \
|
|
PROJ_mandir=$manDir PROJ_includedir=$includeDir PROJ_libdir=$libDir
|
|
|
|
make -C tools/clang install PROJ_datadir=$dataDir PROJ_docsdir=$docDir \
|
|
PROJ_mandir=$manDir PROJ_includedir=$includeDir PROJ_libdir=$libDir
|
|
|
|
make -C projects/compiler-rt install PROJ_datadir=$dataDir PROJ_docsdir=$docDir \
|
|
PROJ_mandir=$manDir PROJ_includedir=$includeDir PROJ_libdir=$libDir
|
|
|
|
if [ -n $secondaryArchSuffix ]; then
|
|
binDir=$prefix/bin
|
|
fi
|
|
|
|
# You can try and be fancy here parsing each arch in a for loop... but
|
|
# not all arches contain the same libraries. The inventory for each arch
|
|
# also changes between releases... so lets KISS.
|
|
prepareInstalledDevelLibs \
|
|
libfindAllSymbols \
|
|
libLLVM* \
|
|
libLTO \
|
|
libclang* \
|
|
libOptRemarks
|
|
|
|
mv $prefix/include/* $includeDir/
|
|
mv $prefix/libexec/* $binDir/
|
|
mv $prefix/share/man/* $manDir/
|
|
mv $prefix/share/clang $dataDir/
|
|
mv $prefix/share/opt-viewer $dataDir/
|
|
mv $prefix/share/scan-build $dataDir/
|
|
mv $prefix/share/scan-view $dataDir/
|
|
rmdir $prefix/include $prefix/libexec $prefix/share/man $prefix/share
|
|
|
|
sed -i 's|/libexec/|/bin/|' $binDir/scan-build
|
|
sed -i 's|/share/|/data/|' $binDir/scan-build $binDir/scan-view
|
|
|
|
# clang package
|
|
packageEntries clang \
|
|
$binDir/c-index-test \
|
|
$binDir/clang* \
|
|
$binDir/git-clang-format \
|
|
$binDir/modularize \
|
|
$dataDir/clang \
|
|
$includeDir/clang* \
|
|
$libDir/clang \
|
|
$libDir/cmake/clang \
|
|
$developLibDir/libclang*
|
|
|
|
# analysis package
|
|
packageEntries clang_analysis \
|
|
$binDir/scan-build \
|
|
$binDir/scan-view \
|
|
$binDir/c++-analyzer \
|
|
$binDir/ccc-analyzer \
|
|
$dataDir/scan-build \
|
|
$dataDir/scan-view \
|
|
$manDir/man1/scan-build.1
|
|
|
|
# libs package
|
|
packageEntries libs \
|
|
$libDir/libclang* \
|
|
$libDir/libLLVM* \
|
|
$libDir/libLTO* \
|
|
$libDir/libOptRemarks*
|
|
}
|
|
|
|
TEST()
|
|
{
|
|
cd build
|
|
export LIBRARY_PATH=$LIBRARY_PATH:$sourceDir/build/lib
|
|
export LIT_ARGS="-v"
|
|
make check-llvm
|
|
}
|