# IT4Innovations
# LK 2024

name = 'Clang'
version = '18.1.8'
versionsuffix = '-CUDA-12.4.0'

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': '13.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-18.1.8.src.tar.xz': '0b58557a6d32ceee97c8d533a59b9212d87e0fc4d2833924eb6c611247db2f2a'},
]

builddependencies = [
    ('CMake', '3.27.6'),
    ('Perl', '5.38.0'),
    # Including Python bindings would require this as a runtime dep
    ('Python', '3.11.5'),
]
dependencies = [
    # since Clang is a compiler, binutils is a runtime dependency too
    ('binutils', '2.40'),
    ('hwloc', '2.9.2'),
    ('libxml2', '2.11.5'),
    ('ncurses', '6.4'),
    ('GMP', '6.3.0'),
    ('Z3', '4.13.0'),
    ('CUDA', '12.4.0', '', True),
]

# 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'
