summaryrefslogtreecommitdiff
path: root/tcwg-lnt/lnt-check.sh
blob: 1e35976c8a4d3dbf41cadfb8b0c7d41df7297d00 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#!/usr/bin/env bash

set -euf -o pipefail


# ####################################################################

# run lnt checks - called from an llvm-lnt directory

# usage : check-lnt.sh


# ####################################################################

[ -d lnt ]

which sqlite3

which tox

which python


# ####################################################################

LLVM_BUILD_DIR="$PWD/llvm-build"
LLVM_SRC_DIR="$LLVM_BUILD_DIR/llvm-project"
LLVM_URL=https://github.com/llvm/llvm-project.git
LLVM_BRANCH=main

# build llvm test tools (llvm-lit, FileCheck, not)

# TODO: find a simpler way to get these tools

if [ ! -f "$LLVM_BUILD_DIR/bin/llvm-lit" ]; then

    [ ! -d "$LLVM_SRC_DIR" ]                                         \
        && git clone "$LLVM_URL" "$LLVM_SRC_DIR"

    cd "$LLVM_SRC_DIR"

    git fetch origin

    git checkout --force "origin/$LLVM_BRANCH"

    mkdir -p "$LLVM_BUILD_DIR"

    cd "$LLVM_BUILD_DIR"

    cmake                                                            \
        -GNinja                                                      \
        -DCMAKE_BUILD_TYPE=Release                                   \
        -DLLVM_TARGETS_TO_BUILD=AArch64                              \
        -DLLVM_ENABLE_ASSERTIONS=True                                \
        -DLLVM_ENABLE_PROJECTS=clang                                 \
        "$LLVM_SRC_DIR/llvm"

    ninja FileCheck not split-file
fi

export PATH="$LLVM_BUILD_DIR/bin/:$PATH"


# ####################################################################

# check

tox -e py3,mypy

# TODO: also check flake8 & docs configs


# ####################################################################