pantry/projects/llvm.org/package.yml

73 lines
1.8 KiB
YAML
Raw Normal View History

2022-08-02 20:34:21 +03:00
distributable:
url: https://github.com/llvm/llvm-project/releases/download/llvmorg-{{ version }}/llvm-project-{{ version }}.src.tar.xz
strip-components: 1
versions:
github: llvm/llvm-project
2023-04-14 01:14:56 +03:00
strip: /^llvmorg-/
2022-08-02 20:34:21 +03:00
provides:
- bin/lld
- bin/clang
- bin/clang++
dependencies:
zlib.net: 1
darwin:
apple.com/xcode/clt: '*'
2022-08-02 20:34:21 +03:00
build:
dependencies:
tea.xyz/gx/cc: c99
cmake.org: 3
ninja-build.org: 1
python.org: 3
working-directory: build
script: |-
cmake \
../llvm \
-G Ninja \
$ARGS
ninja
ninja install
receipt:
- LLVMConfig.cmake
env:
ARGS:
- -DCMAKE_INSTALL_PREFIX="{{ prefix }}"
- -DCMAKE_BUILD_TYPE=Release
- -DLLVM_ENABLE_PROJECTS='lld;clang'
2022-08-24 00:28:58 +03:00
- -DLLVM_INCLUDE_DOCS=OFF
- -DLLVM_INCLUDE_TESTS=OFF
2022-11-11 03:53:26 +03:00
linux:
ARGS:
2022-08-27 18:58:16 +03:00
# the default is `ld` however clang when handling linking itself
# internally passes flags that, in fact, expect `lld`
2022-11-11 03:53:26 +03:00
#NOTE only wanted on linux because on macOS we actually *need* the Apple
# provided `ld` or things *also* break 😆
2022-08-24 00:28:58 +03:00
- -DCLANG_DEFAULT_LINKER=lld
2022-08-31 21:05:21 +03:00
darwin:
ARGS:
#FIXME shouldnt *have to* require the command line tools package
2022-09-02 04:02:45 +03:00
#FIXME this is no good for systems with only Xcode installed
#NOTE how do Apple make their LLVM find both? we want the same trick
2022-08-31 21:05:21 +03:00
- -DDEFAULT_SYSROOT=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk
2022-08-27 18:58:16 +03:00
linux/x86-64:
ARGS:
# required to build something that works on linux/x86-64
- -DCLANG_DEFAULT_CXX_STDLIB=libstdc++
- -DCLANG_DEFAULT_RTLIB=libgcc
- -DCOMPILER_RT_INCLUDE_TESTS=OFF
- -DCOMPILER_RT_USE_LIBCXX=OFF"
2022-08-02 20:34:21 +03:00
test:
2022-08-24 00:28:58 +03:00
fixture: |
#include <stdio.h>
int main() {
printf("Hello World!\n");
return 0;
}
script: |
mv $FIXTURE $FIXTURE.c
clang $FIXTURE.c
./a.out