618 lines
23 KiB
Bash
618 lines
23 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-2019 University of Illinois at Urbana-Champaign"
|
|
LICENSE="Apache v2 with LLVM Exception"
|
|
REVISION="1"
|
|
SOURCE_URI="https://github.com/llvm/llvm-project/releases/download/llvmorg-$portVersion/llvm-$portVersion.src.tar.xz"
|
|
CHECKSUM_SHA256="49dc47c8697a1a0abd4ee51629a696d7bfe803662f2a7252a3b16fc75f3a8b50"
|
|
SOURCE_DIR="llvm-$portVersion.src"
|
|
SOURCE_URI_2="https://github.com/llvm/llvm-project/releases/download/llvmorg-$portVersion/clang-$portVersion.src.tar.xz"
|
|
CHECKSUM_SHA256_2="e26e452e91d4542da3ebbf404f024d3e1cbf103f4cd110c26bf0a19621cca9ed"
|
|
SOURCE_DIR_2="clang-$portVersion.src"
|
|
SOURCE_URI_3="https://github.com/llvm/llvm-project/releases/download/llvmorg-$portVersion/clang-tools-extra-$portVersion.src.tar.xz"
|
|
CHECKSUM_SHA256_3="ad41e0b527a65ade95c1ba690a5434cefaab4a2daa1be307caaa1e8541fe6d5c"
|
|
SOURCE_DIR_3="clang-tools-extra-$portVersion.src"
|
|
SOURCE_URI_4="https://github.com/llvm/llvm-project/releases/download/llvmorg-$portVersion/compiler-rt-$portVersion.src.tar.xz"
|
|
CHECKSUM_SHA256_4="85a8cd0a62413eaa0457d8d02f8edac38c4dc0c96c00b09dc550260c23268434"
|
|
SOURCE_DIR_4="compiler-rt-$portVersion.src"
|
|
SOURCE_URI_5="https://github.com/llvm/llvm-project/releases/download/llvmorg-$portVersion/lld-$portVersion.src.tar.xz"
|
|
CHECKSUM_SHA256_5="2cb7d497f3ce33ce8a2c50ad26ec93a8c45f57268d4d96953cd0f25566f753fd"
|
|
SOURCE_DIR_5="lld-$portVersion.src"
|
|
PATCHES="llvm-$portVersion.patchset"
|
|
PATCHES_2="clang-$portVersion.patchset"
|
|
PATCHES_5="lld-$portVersion.patchset"
|
|
|
|
ARCHITECTURES="all !x86_gcc2"
|
|
SECONDARY_ARCHITECTURES="x86"
|
|
|
|
PROVIDES="
|
|
llvm12$secondaryArchSuffix = $portVersion compat >= 12
|
|
cmd:bugpoint
|
|
cmd:diagtool
|
|
cmd:dsymutil
|
|
cmd:find_all_symbols
|
|
cmd:hmaptool
|
|
cmd:llc
|
|
cmd:lli
|
|
cmd:llvm_addr2line
|
|
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 >= 12
|
|
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_jitlink
|
|
cmd:llvm_lib
|
|
cmd:llvm_link
|
|
cmd:llvm_lipo
|
|
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 >= 12
|
|
devel:libLLVM_$portVersion$secondaryArchSuffix = $portVersion compat >= 12
|
|
devel:libLLVM_12$secondaryArchSuffix = $portVersion compat >= 12
|
|
devel:libLLVMAArch64AsmParser$secondaryArchSuffix
|
|
devel:libLLVMAArch64CodeGen$secondaryArchSuffix
|
|
devel:libLLVMAArch64Desc$secondaryArchSuffix
|
|
devel:libLLVMAArch64Disassembler$secondaryArchSuffix
|
|
devel:libLLVMAArch64Info$secondaryArchSuffix
|
|
devel:libLLVMAArch64Utils$secondaryArchSuffix
|
|
devel:libLLVMAMDGPUAsmParser$secondaryArchSuffix
|
|
devel:libLLVMAMDGPUCodeGen$secondaryArchSuffix
|
|
devel:libLLVMAMDGPUDesc$secondaryArchSuffix
|
|
devel:libLLVMAMDGPUDisassembler$secondaryArchSuffix
|
|
devel:libLLVMAMDGPUInfo$secondaryArchSuffix
|
|
devel:libLLVMAMDGPUUtils$secondaryArchSuffix
|
|
devel:libLLVMARMAsmParser$secondaryArchSuffix
|
|
devel:libLLVMARMCodeGen$secondaryArchSuffix
|
|
devel:libLLVMARMDesc$secondaryArchSuffix
|
|
devel:libLLVMARMDisassembler$secondaryArchSuffix
|
|
devel:libLLVMARMInfo$secondaryArchSuffix
|
|
devel:libLLVMARMUtils$secondaryArchSuffix
|
|
devel:libLLVMAggressiveInstCombine$secondaryArchSuffix
|
|
devel:libLLVMAnalysis$secondaryArchSuffix
|
|
devel:libLLVMAsmParser$secondaryArchSuffix
|
|
devel:libLLVMAsmPrinter$secondaryArchSuffix
|
|
devel:libLLVMBPFAsmParser$secondaryArchSuffix
|
|
devel:libLLVMBPFCodeGen$secondaryArchSuffix
|
|
devel:libLLVMBPFDesc$secondaryArchSuffix
|
|
devel:libLLVMBPFDisassembler$secondaryArchSuffix
|
|
devel:libLLVMBPFInfo$secondaryArchSuffix
|
|
devel:libLLVMBinaryFormat$secondaryArchSuffix
|
|
devel:libLLVMBitReader$secondaryArchSuffix
|
|
devel:libLLVMBitWriter$secondaryArchSuffix
|
|
devel:libLLVMBitstreamReader$secondaryArchSuffix
|
|
devel:libLLVMCodeGen$secondaryArchSuffix
|
|
devel:libLLVMCore$secondaryArchSuffix
|
|
devel:libLLVMCoroutines$secondaryArchSuffix
|
|
devel:libLLVMCoverage$secondaryArchSuffix
|
|
devel:libLLVMDebugInfoCodeView$secondaryArchSuffix
|
|
devel:libLLVMDebugInfoDWARF$secondaryArchSuffix
|
|
devel:libLLVMDebugInfoGSYM$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:libLLVMIRReader$secondaryArchSuffix
|
|
devel:libLLVMInstCombine$secondaryArchSuffix
|
|
devel:libLLVMInstrumentation$secondaryArchSuffix
|
|
devel:libLLVMInterpreter$secondaryArchSuffix
|
|
devel:libLLVMJITLink$secondaryArchSuffix
|
|
devel:libLLVMLTO$secondaryArchSuffix
|
|
devel:libLLVMLanaiAsmParser$secondaryArchSuffix
|
|
devel:libLLVMLanaiCodeGen$secondaryArchSuffix
|
|
devel:libLLVMLanaiDesc$secondaryArchSuffix
|
|
devel:libLLVMLanaiDisassembler$secondaryArchSuffix
|
|
devel:libLLVMLanaiInfo$secondaryArchSuffix
|
|
devel:libLLVMLibDriver$secondaryArchSuffix
|
|
devel:libLLVMLineEditor$secondaryArchSuffix
|
|
devel:libLLVMLinker$secondaryArchSuffix
|
|
devel:libLLVMMC$secondaryArchSuffix
|
|
devel:libLLVMMCA$secondaryArchSuffix
|
|
devel:libLLVMMCDisassembler$secondaryArchSuffix
|
|
devel:libLLVMMCJIT$secondaryArchSuffix
|
|
devel:libLLVMMCParser$secondaryArchSuffix
|
|
devel:libLLVMMIRParser$secondaryArchSuffix
|
|
devel:libLLVMMSP430AsmParser$secondaryArchSuffix
|
|
devel:libLLVMMSP430CodeGen$secondaryArchSuffix
|
|
devel:libLLVMMSP430Desc$secondaryArchSuffix
|
|
devel:libLLVMMSP430Disassembler$secondaryArchSuffix
|
|
devel:libLLVMMSP430Info$secondaryArchSuffix
|
|
devel:libLLVMMipsAsmParser$secondaryArchSuffix
|
|
devel:libLLVMMipsCodeGen$secondaryArchSuffix
|
|
devel:libLLVMMipsDesc$secondaryArchSuffix
|
|
devel:libLLVMMipsDisassembler$secondaryArchSuffix
|
|
devel:libLLVMMipsInfo$secondaryArchSuffix
|
|
devel:libLLVMNVPTXCodeGen$secondaryArchSuffix
|
|
devel:libLLVMNVPTXDesc$secondaryArchSuffix
|
|
devel:libLLVMNVPTXInfo$secondaryArchSuffix
|
|
devel:libLLVMObjCARCOpts$secondaryArchSuffix
|
|
devel:libLLVMObject$secondaryArchSuffix
|
|
devel:libLLVMObjectYAML$secondaryArchSuffix
|
|
devel:libLLVMOption$secondaryArchSuffix
|
|
devel:libLLVMOrcJIT$secondaryArchSuffix
|
|
devel:libLLVMPasses$secondaryArchSuffix
|
|
devel:libLLVMPowerPCAsmParser$secondaryArchSuffix
|
|
devel:libLLVMPowerPCCodeGen$secondaryArchSuffix
|
|
devel:libLLVMPowerPCDesc$secondaryArchSuffix
|
|
devel:libLLVMPowerPCDisassembler$secondaryArchSuffix
|
|
devel:libLLVMPowerPCInfo$secondaryArchSuffix
|
|
devel:libLLVMProfileData$secondaryArchSuffix
|
|
devel:libLLVMRISCVAsmParser$secondaryArchSuffix
|
|
devel:libLLVMRISCVCodeGen$secondaryArchSuffix
|
|
devel:libLLVMRISCVDesc$secondaryArchSuffix
|
|
devel:libLLVMRISCVDisassembler$secondaryArchSuffix
|
|
devel:libLLVMRISCVInfo$secondaryArchSuffix
|
|
devel:libLLVMRISCVUtils$secondaryArchSuffix
|
|
devel:libLLVMRemarks$secondaryArchSuffix
|
|
devel:libLLVMRuntimeDyld$secondaryArchSuffix
|
|
devel:libLLVMScalarOpts$secondaryArchSuffix
|
|
devel:libLLVMSelectionDAG$secondaryArchSuffix
|
|
devel:libLLVMSparcAsmParser$secondaryArchSuffix
|
|
devel:libLLVMSparcCodeGen$secondaryArchSuffix
|
|
devel:libLLVMSparcDesc$secondaryArchSuffix
|
|
devel:libLLVMSparcDisassembler$secondaryArchSuffix
|
|
devel:libLLVMSparcInfo$secondaryArchSuffix
|
|
devel:libLLVMSupport$secondaryArchSuffix
|
|
devel:libLLVMSymbolize$secondaryArchSuffix
|
|
devel:libLLVMSystemZAsmParser$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:libLLVMWebAssemblyCodeGen$secondaryArchSuffix
|
|
devel:libLLVMWebAssemblyDesc$secondaryArchSuffix
|
|
devel:libLLVMWebAssemblyDisassembler$secondaryArchSuffix
|
|
devel:libLLVMWebAssemblyInfo$secondaryArchSuffix
|
|
devel:libLLVMWindowsManifest$secondaryArchSuffix
|
|
devel:libLLVMX86AsmParser$secondaryArchSuffix
|
|
devel:libLLVMX86CodeGen$secondaryArchSuffix
|
|
devel:libLLVMX86Desc$secondaryArchSuffix
|
|
devel:libLLVMX86Disassembler$secondaryArchSuffix
|
|
devel:libLLVMX86Info$secondaryArchSuffix
|
|
devel:libLLVMX86Utils$secondaryArchSuffix
|
|
devel:libLLVMXCoreCodeGen$secondaryArchSuffix
|
|
devel:libLLVMXCoreDesc$secondaryArchSuffix
|
|
devel:libLLVMXCoreDisassembler$secondaryArchSuffix
|
|
devel:libLLVMXCoreInfo$secondaryArchSuffix
|
|
devel:libLLVMXRay$secondaryArchSuffix
|
|
devel:libLLVMipo$secondaryArchSuffix
|
|
devel:libLTO$secondaryArchSuffix = $portVersion compat >= 12
|
|
devel:libRemarks$secondaryArchSuffix = $portVersion compat >= 12
|
|
# lib:BugpointPasses$secondaryArchSuffix
|
|
lib:CheckerDependencyHandlingAnalyzerPlugin$secondaryArchSuffix
|
|
lib:CheckerOptionHandlingAnalyzerPlugin$secondaryArchSuffix
|
|
# lib:LLVMHello$secondaryArchSuffix
|
|
lib:SampleAnalyzerPlugin$secondaryArchSuffix
|
|
# lib:testplugin$secondaryArchSuffix
|
|
"
|
|
REQUIRES="
|
|
haiku$secondaryArchSuffix
|
|
lib:libclang_cpp$secondaryArchSuffix
|
|
lib:libLLVM_12$secondaryArchSuffix
|
|
lib:libz$secondaryArchSuffix
|
|
"
|
|
CONFLICTS="
|
|
llvm$secondaryArchSuffix
|
|
llvm6$secondaryArchSuffix
|
|
llvm7$secondaryArchSuffix
|
|
llvm8$secondaryArchSuffix
|
|
llvm9$secondaryArchSuffix
|
|
"
|
|
|
|
PROVIDES_clang="
|
|
llvm12${secondaryArchSuffix}_clang = $portVersion
|
|
cmd:c_index_test = $portVersion
|
|
cmd:clang = $portVersion
|
|
cmd:clang++ = $portVersion
|
|
cmd:clang_12 = $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_doc = $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_scan_deps = $portVersion
|
|
cmd:clang_tidy = $portVersion
|
|
cmd:clangd = $portVersion
|
|
cmd:git_clang_format = $portVersion
|
|
cmd:modularize = $portVersion
|
|
devel:libclang$secondaryArchSuffix = $portVersion compat >= 12
|
|
devel:libclang_cpp$secondaryArchSuffix = $portVersion compat >= 12
|
|
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:libclangdaemontweaks$secondaryArchSuffix = $portVersion
|
|
devel:libclangdependencyscanning$secondaryArchSuffix = $portVersion
|
|
devel:libclangdoc$secondaryArchSuffix = $portVersion
|
|
devel:libclangdirectorywatcher$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:libclangtidyopenmpmodule$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
|
|
devel:libclangtoolingrefactoring$secondaryArchSuffix = $portVersion
|
|
devel:libclangtoolingsyntax$secondaryArchSuffix = $portVersion
|
|
"
|
|
REQUIRES_clang="
|
|
haiku$secondaryArchSuffix
|
|
lib:libclang$secondaryArchSuffix
|
|
lib:libclang_cpp$secondaryArchSuffix
|
|
lib:libLLVM_12$secondaryArchSuffix
|
|
lib:libz$secondaryArchSuffix
|
|
"
|
|
CONFLICTS_clang="
|
|
llvm${secondaryArchSuffix}_clang
|
|
llvm6${secondaryArchSuffix}_clang
|
|
llvm7${secondaryArchSuffix}_clang
|
|
llvm8${secondaryArchSuffix}_clang
|
|
llvm9${secondaryArchSuffix}_clang
|
|
"
|
|
|
|
PROVIDES_clang_analysis="
|
|
llvm12${secondaryArchSuffix}_clang_analysis = $portVersion
|
|
cmd:c++_analyzer = $portVersion
|
|
cmd:ccc_analyzer = $portVersion
|
|
cmd:scan_build = $portVersion
|
|
cmd:scan_view = $portVersion
|
|
"
|
|
REQUIRES_clang_analysis="
|
|
llvm12${secondaryArchSuffix}_clang == $portVersion base
|
|
cmd:python
|
|
"
|
|
CONFLICTS_clang_analysis="
|
|
llvm${secondaryArchSuffix}_clang_analysis
|
|
llvm6${secondaryArchSuffix}_clang_analysis
|
|
llvm7${secondaryArchSuffix}_clang_analysis
|
|
llvm8${secondaryArchSuffix}_clang_analysis
|
|
llvm9${secondaryArchSuffix}_clang_analysis
|
|
"
|
|
|
|
PROVIDES_lld="
|
|
llvm12${secondaryArchSuffix}_lld = $portVersion
|
|
cmd:ld.lld = $portVersion
|
|
cmd:ld64.lld = $portVersion
|
|
cmd:lld = $portVersion
|
|
cmd:lld_link = $portVersion
|
|
cmd:wasm_ld = $portVersion
|
|
devel:liblldCOFF$secondaryArchSuffix = $portVersion
|
|
devel:liblldCommon$secondaryArchSuffix = $portVersion
|
|
devel:liblldCore$secondaryArchSuffix = $portVersion
|
|
devel:liblldDriver$secondaryArchSuffix = $portVersion
|
|
devel:liblldELF$secondaryArchSuffix = $portVersion
|
|
devel:liblldMachO$secondaryArchSuffix = $portVersion
|
|
devel:liblldMinGW$secondaryArchSuffix = $portVersion
|
|
devel:liblldReaderWriter$secondaryArchSuffix = $portVersion
|
|
devel:liblldWasm$secondaryArchSuffix = $portVersion
|
|
devel:liblldYAML$secondaryArchSuffix = $portVersion
|
|
"
|
|
REQUIRES_lld="
|
|
haiku$secondaryArchSuffix
|
|
lib:libLLVM_12$secondaryArchSuffix
|
|
"
|
|
|
|
PROVIDES_libs="
|
|
llvm12${secondaryArchSuffix}_libs = $portVersion
|
|
lib:libclang$secondaryArchSuffix = $portVersion compat >= 12
|
|
lib:libclang_cpp$secondaryArchSuffix = $portVersion compat >= 12
|
|
lib:libLLVM_12$secondaryArchSuffix = 12.0.0 compat >= 12.0
|
|
lib:libLTO$secondaryArchSuffix = 12.0.0 compat >= 12
|
|
lib:libRemarks$secondaryArchSuffix = 12.0.0 compat >= 12
|
|
"
|
|
REQUIRES_libs="
|
|
haiku$secondaryArchSuffix
|
|
lib:libz$secondaryArchSuffix
|
|
"
|
|
|
|
PYTHON3_VERSION="3.9"
|
|
PROVIDES_python3="
|
|
llvm12${secondaryArchSuffix}_python3 = $portVersion
|
|
cmd:lit
|
|
"
|
|
REQUIRES_python3="
|
|
setuptools_python3
|
|
cmd:python$PYTHON3_VERSION
|
|
"
|
|
|
|
BUILD_REQUIRES="
|
|
haiku${secondaryArchSuffix}_devel
|
|
devel:libz$secondaryArchSuffix
|
|
setuptools_python39
|
|
"
|
|
BUILD_PREREQUIRES="
|
|
cmd:cmake
|
|
cmd:diff
|
|
cmd:find
|
|
cmd:gcc$secondaryArchSuffix
|
|
cmd:grep
|
|
cmd:groff
|
|
cmd:ld$secondaryArchSuffix
|
|
cmd:make
|
|
cmd:ninja
|
|
cmd:python$PYTHON3_VERSION
|
|
cmd:sed
|
|
"
|
|
|
|
BUILD()
|
|
{
|
|
# Add clang tools
|
|
mkdir -p tools/clang
|
|
cp -rdn $sourceDir2/* tools/clang/
|
|
|
|
mkdir -p $sourceDir/../clang-tools-extra
|
|
cp -rdn $sourceDir3/* $sourceDir/../clang-tools-extra
|
|
|
|
mkdir -p projects/compiler-rt
|
|
cp -rdn $sourceDir4/* projects/compiler-rt
|
|
|
|
mkdir -p tools/lld
|
|
cp -rdn $sourceDir5/* tools/lld
|
|
|
|
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_EXTERNAL_CLANG_TOOLS_EXTRA_SOURCE_DIR=$sourceDir/../clang-tools-extra \
|
|
-G Ninja \
|
|
..
|
|
|
|
ninja
|
|
}
|
|
|
|
INSTALL()
|
|
{
|
|
cd build
|
|
|
|
mkdir -p $binDir $developDir $dataDir $docDir $includeDir $manDir $libDir
|
|
|
|
ninja install
|
|
|
|
# GENERIC: all python_setuptools-based installs need this
|
|
local pythonPackageName="${portName}_python3-$portFullVersion"
|
|
local packageLinksDir=$(dirname $portPackageLinksDir)
|
|
python=$packageLinksDir/${pythonPackageName}/cmd~python$PYTHON3_VERSION/bin/python$PYTHON3_VERSION
|
|
pythonVersion=$($python --version 2>&1 | sed 's/Python //' | head -c3)
|
|
installLocation=$prefix/lib/python$pythonVersion/vendor-packages/
|
|
export PYTHONPATH=$installLocation:$OLDPYTHONPATH
|
|
|
|
pushd ../utils/lit
|
|
$python setup.py install --root=/ --prefix="$prefix" -O1
|
|
popd
|
|
|
|
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* \
|
|
liblld* \
|
|
libRemarks
|
|
|
|
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
|
|
|
|
# lld package
|
|
packageEntries lld \
|
|
$binDir/ld.lld \
|
|
$binDir/ld64.lld \
|
|
$binDir/lld \
|
|
$binDir/lld-link \
|
|
$binDir/wasm-ld \
|
|
$includeDir/lld* \
|
|
$developLibDir/liblld*
|
|
|
|
# libs package
|
|
packageEntries libs \
|
|
$libDir/libclang* \
|
|
$libDir/libLLVM* \
|
|
$libDir/libLTO* \
|
|
$libDir/libRemarks*
|
|
|
|
# python3 package
|
|
packageEntries python3 \
|
|
$binDir/lit \
|
|
$prefix/lib/python*
|
|
}
|
|
|
|
TEST()
|
|
{
|
|
cd build
|
|
export LIBRARY_PATH=$LIBRARY_PATH:$sourceDir/build/lib
|
|
export LIT_ARGS="-v"
|
|
make check-llvm
|
|
}
|