Define the list of architectures to build for in a variable
This simplifies reducing the build to fewer architectures (e.g. to speed up testing).
This commit is contained in:
1 parent
03f1fd6c65
commit
0f0863b010
1 file changed
+12
-11
+12
-11
@@ -51,9 +51,10 @@ RUN git clone git://git.code.sf.net/p/mingw-w64/mingw-w64 && \
|
|||||||
|
|
||||||
ENV TOOLCHAIN_PREFIX=/build/prefix
|
ENV TOOLCHAIN_PREFIX=/build/prefix
|
||||||
ENV PATH=$TOOLCHAIN_PREFIX/bin:$PATH
|
ENV PATH=$TOOLCHAIN_PREFIX/bin:$PATH
|
||||||
|
ENV TOOLCHAIN_ARCHS="i686 x86_64 armv7 aarch64"
|
||||||
|
|
||||||
RUN cd mingw-w64/mingw-w64-headers && \
|
RUN cd mingw-w64/mingw-w64-headers && \
|
||||||
for arch in armv7 aarch64 i686 x86_64; do \
|
for arch in $TOOLCHAIN_ARCHS; do \
|
||||||
mkdir build-${arch} && cd build-${arch} && \
|
mkdir build-${arch} && cd build-${arch} && \
|
||||||
../configure --host=${arch}-w64-mingw32 --prefix=$TOOLCHAIN_PREFIX/${arch}-w64-mingw32 \
|
../configure --host=${arch}-w64-mingw32 --prefix=$TOOLCHAIN_PREFIX/${arch}-w64-mingw32 \
|
||||||
--enable-secure-api --with-default-win32-winnt=0x600 && \
|
--enable-secure-api --with-default-win32-winnt=0x600 && \
|
||||||
@@ -64,7 +65,7 @@ RUN cd mingw-w64/mingw-w64-headers && \
|
|||||||
# Install the usual $TUPLE-clang binaries
|
# Install the usual $TUPLE-clang binaries
|
||||||
RUN mkdir wrappers
|
RUN mkdir wrappers
|
||||||
COPY wrappers/clang-target-wrapper /build/wrappers
|
COPY wrappers/clang-target-wrapper /build/wrappers
|
||||||
RUN for arch in armv7 aarch64 i686 x86_64; do \
|
RUN for arch in $TOOLCHAIN_ARCHS; do \
|
||||||
for exec in clang clang++; do \
|
for exec in clang clang++; do \
|
||||||
cp wrappers/clang-target-wrapper $TOOLCHAIN_PREFIX/bin/${arch}-w64-mingw32-${exec}; \
|
cp wrappers/clang-target-wrapper $TOOLCHAIN_PREFIX/bin/${arch}-w64-mingw32-${exec}; \
|
||||||
done; \
|
done; \
|
||||||
@@ -72,7 +73,7 @@ RUN for arch in armv7 aarch64 i686 x86_64; do \
|
|||||||
|
|
||||||
# Build mingw with our freshly built cross compiler
|
# Build mingw with our freshly built cross compiler
|
||||||
RUN cd mingw-w64/mingw-w64-crt && \
|
RUN cd mingw-w64/mingw-w64-crt && \
|
||||||
for arch in armv7 aarch64 i686 x86_64; do \
|
for arch in $TOOLCHAIN_ARCHS; do \
|
||||||
mkdir build-$arch && cd build-$arch && \
|
mkdir build-$arch && cd build-$arch && \
|
||||||
case $arch in \
|
case $arch in \
|
||||||
armv7) \
|
armv7) \
|
||||||
@@ -107,7 +108,7 @@ RUN cd $TOOLCHAIN_PREFIX && ln -s i686-w64-mingw32 i386-w64-mingw32
|
|||||||
|
|
||||||
# Manually build compiler-rt as a standalone project
|
# Manually build compiler-rt as a standalone project
|
||||||
RUN cd compiler-rt && \
|
RUN cd compiler-rt && \
|
||||||
for arch in armv7 aarch64 i686 x86_64; do \
|
for arch in $TOOLCHAIN_ARCHS; do \
|
||||||
buildarchname=$arch && \
|
buildarchname=$arch && \
|
||||||
libarchname=$arch && \
|
libarchname=$arch && \
|
||||||
case $arch in \
|
case $arch in \
|
||||||
@@ -158,7 +159,7 @@ RUN git clone -b master https://github.com/llvm-mirror/libcxx.git && \
|
|||||||
|
|
||||||
|
|
||||||
RUN cd libcxxabi && \
|
RUN cd libcxxabi && \
|
||||||
for arch in armv7 aarch64 i686 x86_64; do \
|
for arch in $TOOLCHAIN_ARCHS; do \
|
||||||
mkdir build-$arch && cd build-$arch && cmake \
|
mkdir build-$arch && cd build-$arch && cmake \
|
||||||
-DCMAKE_BUILD_TYPE=Release \
|
-DCMAKE_BUILD_TYPE=Release \
|
||||||
-DCMAKE_INSTALL_PREFIX=$TOOLCHAIN_PREFIX/$arch-w64-mingw32 \
|
-DCMAKE_INSTALL_PREFIX=$TOOLCHAIN_PREFIX/$arch-w64-mingw32 \
|
||||||
@@ -185,7 +186,7 @@ RUN cd libcxxabi && \
|
|||||||
done
|
done
|
||||||
|
|
||||||
RUN cd libcxx && \
|
RUN cd libcxx && \
|
||||||
for arch in armv7 aarch64 i686 x86_64; do \
|
for arch in $TOOLCHAIN_ARCHS; do \
|
||||||
mkdir build-$arch && cd build-$arch && cmake \
|
mkdir build-$arch && cd build-$arch && cmake \
|
||||||
-DCMAKE_BUILD_TYPE=Release \
|
-DCMAKE_BUILD_TYPE=Release \
|
||||||
-DCMAKE_INSTALL_PREFIX=$TOOLCHAIN_PREFIX/$arch-w64-mingw32 \
|
-DCMAKE_INSTALL_PREFIX=$TOOLCHAIN_PREFIX/$arch-w64-mingw32 \
|
||||||
@@ -217,10 +218,10 @@ RUN cd libcxx && \
|
|||||||
cd .. || exit 1; \
|
cd .. || exit 1; \
|
||||||
done
|
done
|
||||||
|
|
||||||
RUN cd $TOOLCHAIN_PREFIX/include && ln -s ../armv7-w64-mingw32/include/c++ .
|
RUN cd $TOOLCHAIN_PREFIX/include && ln -s ../$(echo $TOOLCHAIN_ARCHS | awk '{print $1}')-w64-mingw32/include/c++ .
|
||||||
|
|
||||||
RUN cd libunwind && \
|
RUN cd libunwind && \
|
||||||
for arch in armv7 aarch64 i686 x86_64; do \
|
for arch in $TOOLCHAIN_ARCHS; do \
|
||||||
mkdir build-$arch && cd build-$arch && cmake \
|
mkdir build-$arch && cd build-$arch && cmake \
|
||||||
-DCMAKE_BUILD_TYPE=Release \
|
-DCMAKE_BUILD_TYPE=Release \
|
||||||
-DCMAKE_INSTALL_PREFIX=$TOOLCHAIN_PREFIX/$arch-w64-mingw32 \
|
-DCMAKE_INSTALL_PREFIX=$TOOLCHAIN_PREFIX/$arch-w64-mingw32 \
|
||||||
@@ -250,17 +251,17 @@ RUN cd libunwind && \
|
|||||||
RUN mkdir -p hello
|
RUN mkdir -p hello
|
||||||
COPY hello.c hello.cpp hello-exception.cpp /build/hello/
|
COPY hello.c hello.cpp hello-exception.cpp /build/hello/
|
||||||
RUN cd hello && \
|
RUN cd hello && \
|
||||||
for arch in armv7 aarch64 x86_64 i686; do \
|
for arch in $TOOLCHAIN_ARCHS; do \
|
||||||
$arch-w64-mingw32-clang hello.c -o hello-$arch.exe || exit 1; \
|
$arch-w64-mingw32-clang hello.c -o hello-$arch.exe || exit 1; \
|
||||||
done
|
done
|
||||||
|
|
||||||
RUN cd hello && \
|
RUN cd hello && \
|
||||||
for arch in armv7 aarch64 x86_64 i686; do \
|
for arch in $TOOLCHAIN_ARCHS; do \
|
||||||
$arch-w64-mingw32-clang++ hello.cpp -o hello-cpp-$arch.exe -fno-exceptions -lpsapi || exit 1; \
|
$arch-w64-mingw32-clang++ hello.cpp -o hello-cpp-$arch.exe -fno-exceptions -lpsapi || exit 1; \
|
||||||
done
|
done
|
||||||
|
|
||||||
RUN cd hello && \
|
RUN cd hello && \
|
||||||
for arch in armv7 aarch64 x86_64 i686; do \
|
for arch in $TOOLCHAIN_ARCHS; do \
|
||||||
$arch-w64-mingw32-clang++ hello-exception.cpp -o hello-exception-$arch.exe -lpsapi || exit 1; \
|
$arch-w64-mingw32-clang++ hello-exception.cpp -o hello-exception-$arch.exe -lpsapi || exit 1; \
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user