-
Notifications
You must be signed in to change notification settings - Fork 0
/
Dockerfile.darwin.base
139 lines (127 loc) · 3.75 KB
/
Dockerfile.darwin.base
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
FROM amd64/ubuntu:20.04
ARG DEBIAN_FRONTEND=noninteractive
RUN echo 'Preparing base' && \
apt-get update --yes && \
apt-get upgrade --yes && \
echo "path-exclude=/usr/share/locale/*" >> /etc/dpkg/dpkg.cfg.d/01_nodoc && \
echo "path-exclude=/usr/share/man/*" >> /etc/dpkg/dpkg.cfg.d/01_nodoc && \
echo "path-exclude=/usr/share/doc/*" >> /etc/dpkg/dpkg.cfg.d/01_nodoc && \
apt-get install --no-install-recommends --yes \
autogen \
automake \
autopoint \
build-essential \
ca-certificates \
curl \
gettext \
git \
libtool \
make \
patch \
perl \
pkg-config \
python3 \
unzip \
wget \
zip && \
# cmake
apt-get install --no-install-recommends --yes \
libbz2-dev \
liblzma-dev \
libssl-dev \
zlib1g-dev && \
# osxcross
apt-get install --no-install-recommends --yes \
gobjc \
gobjc++ \
icu-devtools \
libicu-dev \
libxml2-dev \
uuid-dev && \
apt-get clean autoclean --yes && \
apt-get autoremove --yes && \
rm -rf /etc/ssh/*key*
# Need cmake 3.20+ to build clang
RUN echo 'Building cmake' && \
mkdir -p /build && \
cd /build && \
git clone https://gitlab.kitware.com/cmake/cmake.git && \
cd cmake && \
git checkout v3.26.5 && \
mkdir -p build && \
cd build && \
../bootstrap --no-qt-gui \
--system-bzip2 \
--system-liblzma \
--system-zlib \
--prefix=/usr/local && \
make -j"$(nproc)" && \
make install && \
cd / && \
rm -rf /build
RUN echo 'Building apple clang. THIS WILL TAKE A WHILE!' && \
mkdir -p /build && \
cd /build && \
git clone https://github.com/tpoechtrager/osxcross.git && \
cd osxcross && \
git checkout ff8d100f3f026b4ffbe4ce96d8aac4ce06f1278b && \
ENABLE_BOOTSTRAP=1 \
ENABLE_FULL_BOOTSTRAP=1 \
ENABLE_CLANG_INSTALL=1 \
CLANG_VERSION=17 \
UNATTENDED=1 \
./build_apple_clang.sh && \
cd /usr/local/bin && \
ln -sf llvm-lipo lipo && \
rm -rf /build
ENV PATH_DARWINCROSS /usr/local/darwincross
ENV PATH ${PATH_DARWINCROSS}/bin:${PATH}
RUN echo 'Building ldid' && \
mkdir -p ${PATH_DARWINCROSS} && \
mkdir -p /build && \
cd /build && \
git clone https://github.com/tpoechtrager/ldid.git && \
cd ldid && \
git checkout 4bf8f4d60384a0693dbbe2084ce62a35bfeb87ab && \
make INSTALLPREFIX=${PATH_DARWINCROSS} -j"$(nproc)" install && \
cd / && \
rm -rf /build
RUN echo 'Building apple-libdispatch' && \
mkdir -p /build && \
cd /build && \
git clone https://github.com/tpoechtrager/apple-libdispatch.git && \
cd apple-libdispatch && \
git checkout ee39300b12a77efd3f2f020e009e42d557adbb29 && \
mkdir -p build && \
cd build && \
CC=clang CXX=clang++ \
cmake .. -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=${PATH_DARWINCROSS} && \
make install -j"$(nproc)" && \
cd /build && \
rm -rf /build
RUN echo 'Building xar' && \
mkdir -p /build && \
cd /build && \
git clone https://github.com/tpoechtrager/xar.git && \
cd xar && \
git checkout 5fa4675419cfec60ac19a9c7f7c2d0e7c831a497 && \
cd xar && \
CFLAGS="-w" && \
./configure --prefix=${PATH_DARWINCROSS} && \
make -j"$(nproc)" && \
make install -j"$(nproc)" && \
cd / && \
rm -rf /build
RUN echo 'Building apple-libtapi' && \
mkdir -p /build && \
cd /build && \
git clone https://github.com/tpoechtrager/apple-libtapi.git && \
cd apple-libtapi && \
git checkout 1300.6.5 && \
INSTALLPREFIX=${PATH_DARWINCROSS} ./build.sh && \
./install.sh && \
cd / && \
rm -rf /build
WORKDIR /work
COPY entrypoint_base.sh /var/opt
ENTRYPOINT ["/var/opt/entrypoint_base.sh"]