-
Notifications
You must be signed in to change notification settings - Fork 4
/
Dockerfile-clang20
65 lines (54 loc) · 2.46 KB
/
Dockerfile-clang20
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
FROM ubuntu:22.04
WORKDIR /root
RUN export DEBIAN_FRONTEND=noninteractive && \
apt-get update -y && \
apt-get install -y curl xz-utils && \
curl -LO https://poppler.freedesktop.org/poppler-24.05.0.tar.xz && \
tar xf poppler-*.xz && \
rm poppler-*.xz
# ------------------------------------------------------------------------------------
# clang 20, gfortran-12
RUN export DEBIAN_FRONTEND=noninteractive && \
apt-get update -y && \
apt-get install -y gnupg curl && \
echo "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy main" \
> /etc/apt/sources.list.d/llvm.list && \
echo "deb-src http://apt.llvm.org/jammy/ llvm-toolchain-jammy main" \
>> /etc/apt/sources.list.d/llvm.list && \
curl -L https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - && \
apt-get update -y && \
apt-get install -y clang-20 libc++abi-20-dev libc++-20-dev libomp-20-dev && \
apt-get install -y pkg-config make gfortran
RUN ln -s /usr/bin/clang-20 /usr/bin/clang && \
ln -s /usr/bin/clang++-20 /usr/bin/clang++
# dependencies
RUN apt-get install -y cmake libnss3-dev \
libtiff-dev liblcms2-dev libopenjp2-7-dev \
libboost1.74-all-dev libfreetype-dev libfontconfig-dev \
libcurl4-openssl-dev qtbase5-dev
RUN cd poppler-* && \
mkdir build && \
cd build && \
CC=clang CXX=clang++ CXXFLAGS="-stdlib=libc++ -O3 -g" LDFLAGS="-stdlib=libc++ -lc++ -lc++abi" \
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/clang \
-DCMAKE_BUILD_TYPE=release -DENABLE_QT6=OFF -DENABLE_GPGME=OFF && \
make
RUN export DEBIAN_FRONTEND=noninteractive && \
apt-get install -y checkinstall && \
cd poppler-* && \
mkdir -p /usr/share/doc/poppler-clang20/ && \
cp COPYING NEWS ChangeLog README.md /usr/share/doc/poppler-clang20/ && \
echo /usr/share/doc/poppler-clang20/COPYING > /tmp/xlist && \
echo /usr/share/doc/poppler-clang20/NEWS >> /tmp/xlist && \
echo /usr/share/doc/poppler-clang20/aChangeLog >> /tmp/xlist && \
echo /usr/share/doc/poppler-clang20/README.md >> /tmp/xlist && \
cd build && \
checkinstall -y -D --pkgname poppler-clang20 \
--pkgversion $(basename `pwd` | sed 's/^[^-]*-//') \
--maintainer "[email protected]" \
--include /tmp/xlist \
--requires 'libc++1-20,libc++abi1-20,libunwind-20,libc6,libgcc-s1' \
--arch $(dpkg --print-architecture) \
--pkglicense "See COPYING file."
RUN cp poppler-*/build/poppler-clang*.deb /root/
COPY build.sh /root/build.sh