This commit is contained in:
easybuild 2023-10-30 14:37:55 +01:00
parent 98825a4611
commit 114afcbab8
2 changed files with 103 additions and 0 deletions

View File

@ -0,0 +1,52 @@
# IT4Innovations
# LK 2023
name = 'Clang'
version = '17.0.3'
homepage = 'https://clang.llvm.org/'
description = """C, C++, Objective-C compiler, based on LLVM. Does not
include C++ standard library -- use libstdc++ from GCC."""
# Clang also depends on libstdc++ during runtime, but this dependency is
# already specified as the toolchain.
toolchain = {'name': 'GCCcore', 'version': '12.2.0'}
source_urls = ["https://github.com/llvm/llvm-project/releases/download/llvmorg-%(version)s"]
sources = [
'llvm-project-%(version)s.src.tar.xz',
]
checksums = [
{'llvm-project-17.0.3.src.tar.xz': 'be5a1e44d64f306bb44fce7d36e3b3993694e8e6122b2348608906283c176db8'},
]
builddependencies = [
('CMake', '3.24.3'),
('Perl', '5.36.0'),
# Including Python bindings would require this as a runtime dep
('Python', '3.10.8'),
]
dependencies = [
# since Clang is a compiler, binutils is a runtime dependency too
('binutils', '2.39'),
('hwloc', '2.8.0'),
('libxml2', '2.10.3'),
('ncurses', '6.3'),
('GMP', '6.2.1'),
('Z3', '4.12.2'),
]
# enabling RTTI makes the flang compiler need to link to libc++ so instead of
# flang-new -flang-experimental-exec -fopenmp hello_openmp.f90
# you would need
# flang-new -flang-experimental-exec -fopenmp hello_openmp.f90 -l c++
enable_rtti = False
assertions = True
python_bindings = False
skip_all_tests = True
llvm_runtimes = ['libunwind', 'libcxx', 'libcxxabi']
llvm_projects = ['polly', 'lld', 'lldb', 'clang-tools-extra', 'flang']
moduleclass = 'compiler'

View File

@ -0,0 +1,51 @@
# IT4Innovations
# LK 2023
name = 'LLVM'
version = '17.0.3'
homepage = "https://llvm.org/"
description = """The LLVM Core libraries provide a modern source- and target-independent
optimizer, along with code generation support for many popular CPUs
(as well as some less common ones!) These libraries are built around a well
specified code representation known as the LLVM intermediate representation
("LLVM IR"). The LLVM Core libraries are well documented, and it is
particularly easy to invent your own language (or port an existing compiler)
to use LLVM as an optimizer and code generator."""
toolchain = {'name': 'GCCcore', 'version': '12.2.0'}
toolchainopts = {'cstd': 'gnu++11', 'pic': True}
source_urls = ['https://github.com/llvm/llvm-project/releases/download/llvmorg-%(version)s/']
sources = [
'llvm-%(version)s.src.tar.xz',
'cmake-%(version)s.src.tar.xz',
'third-party-%(version)s.src.tar.xz',
]
checksums = [
{'llvm-17.0.3.src.tar.xz': '18fa6b5f172ddf5af9b3aedfdb58ba070fd07fc45e7e589c46c350b3cc066bc1'},
{'cmake-17.0.3.src.tar.xz': '54fc534f0da09088adbaa6c3bfc9899a500153b96e60c2fb9322a7aa37b1027a'},
{'third-party-17.0.3.src.tar.xz': '6e84ff16044d698ff0f24e7445f9f47818e6523913a006a5e1ea79625b429b7b'},
]
builddependencies = [
('binutils', '2.39'),
('CMake', '3.24.3'),
('Python', '3.10.8'),
]
dependencies = [
('ncurses', '6.3'),
('zlib', '1.2.12'),
]
build_shared_libs = True
sanity_check_paths = {
'files': ['bin/llvm-ar', 'bin/FileCheck'],
'dirs': ['include/llvm', 'include/llvm-c'],
}
sanity_check_commands = ["llvm-ar --help"]
moduleclass = 'compiler'