add support for building LLVM 7.0 from downloaded source
[kazan.git] / Dockerfile
1 # SPDX-License-Identifier: LGPL-2.1-or-later
2 # Copyright 2018 Jacob Lifshay
3 FROM rust:stretch
4 RUN set -e; \
5 apt-get update; \
6 apt-get install -y \
7 cmake \
8 ninja-build \
9 libgl1-mesa-dev \
10 libxcb-shm0 \
11 libclang-dev \
12 clang \
13 ; \
14 rm -rf /var/lib/apt/lists/*
15 WORKDIR /build
16 RUN version=1.1.85.0; wget -O vulkansdk.tar.gz -nv "https://sdk.lunarg.com/sdk/download/1.1.85.0/linux/vulkansdk-linux-x86_64-$version.tar.gz" && tar -xaf vulkansdk.tar.gz && rm vulkansdk.tar.gz && mv "$version" vulkansdk
17 ENV VULKAN_SDK=/build/vulkansdk/x86_64
18 ENV PATH="$VULKAN_SDK/bin:$PATH" LD_LIBRARY_PATH="$VULKAN_SDK/lib:" VK_LAYER_PATH="$VULKAN_SDK/etc/explicit_layer.d"
19 WORKDIR /build/kazan
20 COPY run-cts.sh run-cts.sh
21 RUN ./run-cts.sh --update-only
22 COPY external/ external/
23 COPY Cargo.toml Cargo.toml
24 COPY vulkan-driver/Cargo.toml vulkan-driver/build.rs vulkan-driver/vulkan-wrapper.h vulkan-driver/
25 COPY shader-compiler/Cargo.toml shader-compiler/
26 COPY shader-compiler-llvm-7/Cargo.toml shader-compiler-llvm-7/
27 RUN set -e; \
28 mkdir -p vulkan-driver/src; \
29 mkdir -p shader-compiler/src; \
30 mkdir -p shader-compiler-llvm-7/src; \
31 echo "// empty" > vulkan-driver/src/lib.rs; \
32 echo "// empty" > shader-compiler/src/lib.rs; \
33 echo "// empty" > shader-compiler-llvm-7/src/lib.rs; \
34 cargo build -vv; \
35 rm */src/lib.rs
36 COPY . .
37 RUN touch -c */src/lib.rs && cargo build
38 CMD ["./run-cts.sh", "--no-update"]