summaryrefslogtreecommitdiffstats
path: root/.travis.yml
blob: 3de219a4c949c9125021aa0901f98a8bc08c00d0 (plain) (blame)
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

dist: xenial
language: cpp

addons:
  apt:
    sources:
     - sourceline: 'deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial main'
       key_url: 'https://apt.llvm.org/llvm-snapshot.gpg.key'
    packages:
     - ninja-build
     # TODO: These should really be the snapshots packages, but they are currently
     # broken. Remove the version suffix once they get fixed (see issue #642 for
     # more info)
     - llvm-10-dev
     - llvm-10-tools
     - libclang-10-dev
     - clang-10
     # TODO: This is required for lit-cpuid, which is exported from
     # LLVMConfig.cmake, but shipped with LLDB.
     - lldb-10

before_install:
 # Install a supported cmake version (>= 3.4.3)
 - wget -O cmake.sh https://cmake.org/files/v3.10/cmake-3.10.0-Linux-x86_64.sh 
 - sudo sh cmake.sh --skip-license --exclude-subdir --prefix=/usr/local

 # Extract the version number from the most-recently installed LLVM
 - VERSION=`ls -t /usr/lib/ | grep '^llvm-' | head -n 1 | sed -E 's/llvm-(.+)/\1/'`

 # Absolute paths to LLVM's root and bin directory
 - ROOT_PATH=`llvm-config-$VERSION --prefix`
 - BIN_PATH=`llvm-config-$VERSION --bindir`

 # TODO: Remove these hacky fixups
 - (cd $ROOT_PATH/lib && sudo ln -rsf libclang-cpp.so.1 libclang-cpp-$VERSION.so.1)

script:
# Build IWYU
 - mkdir build
 - cd build
 - cmake -GNinja -DCMAKE_PREFIX_PATH=$ROOT_PATH -DCMAKE_C_COMPILER=$BIN_PATH/clang -DCMAKE_CXX_COMPILER=$BIN_PATH/clang++ -DCMAKE_INSTALL_PREFIX=./ ../
 - ninja

# Test IWYU
 - CTEST_OUTPUT_ON_FAILURE=1 ninja test

# Test install
 - ninja install