|
8 | 8 | # Give a pipeline a non-zero exit code if one of its constituents fails |
9 | 9 | set -o pipefail |
10 | 10 |
|
11 | | -function llvm_linux_target_triple() { |
12 | | - case "$1" in |
13 | | - 9.0.1) echo "x86_64-linux-gnu-ubuntu-16.04" ;; |
14 | | - *) echo "x86_64-linux-gnu-ubuntu-18.04" ;; |
15 | | - esac |
16 | | -} |
17 | | - |
18 | | -function llvm_macos_target_triple() { |
19 | | - case "$1" in |
20 | | - 9.0.1) echo "x86_64-apple-darwin" ;; |
21 | | - *) echo "arm64-apple-darwin22.0" ;; |
22 | | - esac |
23 | | -} |
24 | | - |
25 | | -function llvm_version_triple() { |
26 | | - case "$1" in |
27 | | - 9.0) echo "9.0.1" ;; |
28 | | - # By default, take the .0 patch release |
29 | | - *) echo "$1.0" ;; |
30 | | - esac |
31 | | -} |
32 | | - |
33 | | -function llvm_base_url() { |
34 | | - local llvm_version_triple=$1 |
35 | | - echo "https://github.com/llvm/llvm-project/releases/download/llvmorg-$llvm_version_triple" |
36 | | -} |
37 | | - |
38 | | -function llvm_download() { |
39 | | - local base_url=$1 |
40 | | - local arch=$2 |
41 | | - |
42 | | - export LLVM=clang+llvm-${LLVM_VERSION_TRIPLE}-$arch |
43 | | - export LLVM_DIRECTORY="$HOME/.llvm/${LLVM}" |
44 | | - |
45 | | - if [ -d "${LLVM_DIRECTORY}" ]; then |
46 | | - echo "Using cached LLVM download for ${LLVM}..." |
47 | | - else |
48 | | - wget --no-verbose $base_url/${LLVM}.tar.xz |
49 | | - mkdir -p "${LLVM_DIRECTORY}" |
50 | | - tar xf ${LLVM}.tar.xz -C "${LLVM_DIRECTORY}" --strip-components=1 |
51 | | - fi |
52 | | - |
53 | | - export LIBCLANG_PATH="${LLVM_DIRECTORY}/lib" |
54 | | - export LLVM_CONFIG_PATH="${LLVM_DIRECTORY}/bin/llvm-config" |
55 | | -} |
56 | | - |
57 | | -# Download and set up a sane LLVM version |
58 | | -set_llvm_env() { |
59 | | - export LLVM_VERSION_TRIPLE=`llvm_version_triple ${LLVM_VERSION}` |
60 | | - local base_url=`llvm_base_url ${LLVM_VERSION_TRIPLE}` |
61 | | - |
62 | | - if [ "$GITHUB_ACTIONS_OS" == "ubuntu-latest" ]; then |
63 | | - llvm_download $base_url `llvm_linux_target_triple ${LLVM_VERSION_TRIPLE}` |
64 | | - export LD_LIBRARY_PATH="${LLVM_DIRECTORY}/lib":${LD_LIBRARY_PATH:-} |
65 | | - else |
66 | | - llvm_download $base_url `llvm_macos_target_triple ${LLVM_VERSION_TRIPLE}` |
67 | | - export DYLD_LIBRARY_PATH="${LLVM_DIRECTORY}/lib":${DYLD_LIBRARY_PATH:-} |
68 | | - fi |
69 | | -} |
70 | | - |
71 | 11 | assert_no_diff() { |
72 | 12 | git add -u |
73 | 13 | git diff @ |
74 | 14 | git diff-index --quiet HEAD |
75 | 15 | } |
76 | 16 |
|
77 | | -set_llvm_env |
78 | | - |
79 | 17 | get_cargo_args() { |
80 | 18 | local args="" |
81 | 19 | if [ ! -z "$RUST_TARGET" ]; then |
@@ -128,7 +66,7 @@ if [ "$BINDGEN_RUST_FOR_LINUX_TEST" == "1" ]; then |
128 | 66 |
|
129 | 67 | # Put LLVM binaries in the path for `LLVM=1`. The LLVM `bin` directory should |
130 | 68 | # go first since there are others in the Ubuntu image. |
131 | | - export PATH="${LLVM_DIRECTORY}/bin:${PATH}" |
| 69 | + export PATH="${LLVM_PATH}/bin:${PATH}" |
132 | 70 |
|
133 | 71 | # Kernel build dependency: `bindgen-cli`, which is under test. |
134 | 72 | # |
|
0 commit comments