mirror of
https://github.com/bensuperpc/dockcross.git
synced 2024-12-22 08:24:25 +01:00
browser-asmjs: Update to depend on existing image from "trzeci/emscripten"
This commit updates the "browser-asmjs" images to avoid systematic rebuild of emscripten sdk. Instead, it introduces dependency on the image maintained by @trzeci Note also: * emscripten sdk updated from 1.36.7 to 1.36.14 * symlinking of "/bin/bash" as "/bin/sh" is reverted. This ensures other images including file like "common.debian" and relying on standard "sh" behavior will work as expected. * workaround associated with CMakeForceCompiler has been removed from Dockerfile. Emscripten as been fixed. See https://github.com/kripken/emscripten/pull/4477 * we will revisit once official images are available. See https://github.com/kripken/emscripten/issues/4682
This commit is contained in:
parent
46cef1a33a
commit
09868d5289
1
.gitignore
vendored
1
.gitignore
vendored
@ -2,5 +2,6 @@ bin
|
||||
dockcross
|
||||
*/test/
|
||||
Dockerfile
|
||||
browser-asmjs/Dockerfile
|
||||
*/imagefiles/*
|
||||
!imagefiles/*
|
||||
|
4
Makefile
4
Makefile
@ -39,8 +39,8 @@ test: base.test $(addsuffix .test,$(IMAGES))
|
||||
#
|
||||
# browser-asmjs
|
||||
#
|
||||
browser-asmjs: base browser-asmjs/Dockerfile.in common.docker
|
||||
sed '/common.docker/ r common.docker' $@/Dockerfile.in > $@/Dockerfile
|
||||
browser-asmjs: base browser-asmjs/Dockerfile.in common.docker common.debian
|
||||
sed -e '/common.docker/ r common.docker' -e '/common.debian/ r common.debian' $@/Dockerfile.in > $@/Dockerfile
|
||||
mkdir -p $@/imagefiles && cp -r imagefiles $@/
|
||||
cp -r test browser-asmjs/
|
||||
$(DOCKER) build -t $(ORG)/browser-asmjs \
|
||||
|
@ -1,61 +0,0 @@
|
||||
FROM dockcross/base
|
||||
MAINTAINER Matt McCormick "matt.mccormick@kitware.com"
|
||||
|
||||
# The cross-compiling emulator
|
||||
RUN curl -sL https://deb.nodesource.com/setup_4.x | bash - && \
|
||||
apt-get install -y --no-install-recommends \
|
||||
default-jre \
|
||||
nodejs \
|
||||
python2.7
|
||||
|
||||
ENV EMSCRIPTEN_VERSION 1.36.7
|
||||
RUN cd /usr && \
|
||||
curl -L https://s3.amazonaws.com/mozilla-games/emscripten/releases/emsdk-portable.tar.gz | tar xz && \
|
||||
cd ./emsdk_portable && \
|
||||
./emsdk update && \
|
||||
./emsdk install -j$(nproc) --build=Release sdk-tag-${EMSCRIPTEN_VERSION}-32bit && \
|
||||
./emsdk activate --build=Release sdk-tag-${EMSCRIPTEN_VERSION}-32bit && \
|
||||
./emsdk install node-4.1.1-64bit && \
|
||||
./emsdk activate node-4.1.1-64bit && \
|
||||
./emsdk uninstall node-4.1.1-32bit && \
|
||||
find . -name "*.o" -exec rm {} \; && \
|
||||
find . -name "*.a" -exec rm {} \; && \
|
||||
find . -name "*.tmp" -exec rm {} \;
|
||||
|
||||
ENV PATH /usr/emsdk_portable:/usr/emsdk_portable/clang/tag-e${EMSCRIPTEN_VERSION}/build_tag-e${EMSCRIPTEN_VERSION}_32/bin:/usr/emsdk_portable/emscripten/tag-${EMSCRIPTEN_VERSION}:${PATH}
|
||||
ENV CC=/usr/emsdk_portable/emscripten/tag-${EMSCRIPTEN_VERSION}/emcc \
|
||||
CXX=/usr/emsdk_portable/emscripten/tag-${EMSCRIPTEN_VERSION}/em++ \
|
||||
AR=/usr/emsdk_portable/emscripten/tag-${EMSCRIPTEN_VERSION}/emar
|
||||
|
||||
# Emscripten generates system libraries the firsts time it runs
|
||||
ADD test/ /tmp/test/
|
||||
RUN cd /tmp && \
|
||||
/bin/echo -e "#include <iostream>\nint main() { std::cout << \"first run\"; return 0; }" > /tmp/first_run.cxx && \
|
||||
$CXX /tmp/first_run.cxx -o a.out.js && \
|
||||
rm /tmp/first_run.* && \
|
||||
/bin/echo -e "#include <stdio.h>\nint main() { printf(\"first run\"); return 0; }" > /tmp/first_run.c && \
|
||||
$CC /tmp/first_run.c -o a.out.js && \
|
||||
rm /tmp/first_run.* a.out.js && \
|
||||
cd /tmp/test && \
|
||||
python /tmp/test/run.py; python /tmp/test/run.py && \
|
||||
cd && rm -rf /tmp/test
|
||||
|
||||
ENV DEFAULT_DOCKCROSS_IMAGE dockcross/browser-asmjs
|
||||
|
||||
ENV CMAKE_TOOLCHAIN_FILE /usr/emsdk_portable/emscripten/tag-${EMSCRIPTEN_VERSION}/cmake/Modules/Platform/Emscripten.cmake
|
||||
# CMakeForceCompiler was marked deprecated in CMake 3.6.0. It emits many
|
||||
# warnings when using Emscripten. These changes can be removed in a future
|
||||
# version of Emscripten when it is disabled or removed per:
|
||||
# https://github.com/kripken/emscripten/pull/4477
|
||||
RUN sed -i -e '/CMakeForceCompiler/d' -e '/CMAKE_FORCE_C/d' $CMAKE_TOOLCHAIN_FILE
|
||||
|
||||
# Build-time metadata as defined at http://label-schema.org
|
||||
ARG BUILD_DATE
|
||||
ARG IMAGE
|
||||
ARG VCS_REF
|
||||
ARG VCS_URL
|
||||
LABEL org.label-schema.build-date=$BUILD_DATE \
|
||||
org.label-schema.name=$IMAGE \
|
||||
org.label-schema.vcs-ref=$VCS_REF \
|
||||
org.label-schema.vcs-url=$VCS_URL \
|
||||
org.label-schema.schema-version="1.0"
|
45
browser-asmjs/Dockerfile.in
Normal file
45
browser-asmjs/Dockerfile.in
Normal file
@ -0,0 +1,45 @@
|
||||
FROM trzeci/emscripten:sdk-tag-1.36.14-64bit
|
||||
MAINTAINER Matt McCormick "matt.mccormick@kitware.com"
|
||||
|
||||
# Revert back to "/bin/sh" as default shell
|
||||
# See https://github.com/asRIA/emscripten-docker/blob/master/Dockerfile.in#L4
|
||||
RUN rm /bin/sh && ln -s /bin/dash /bin/sh
|
||||
|
||||
#include "common.debian"
|
||||
|
||||
#include "common.docker"
|
||||
|
||||
ENV EMSCRIPTEN_VERSION 1.36.14
|
||||
|
||||
ENV PATH /emsdk_portable:/emsdk_portable/clang/tag-e${EMSCRIPTEN_VERSION}/build_tag-e${EMSCRIPTEN_VERSION}_64/bin:/emsdk_portable/emscripten/tag-${EMSCRIPTEN_VERSION}:${PATH}
|
||||
ENV CC=/emsdk_portable/emscripten/tag-${EMSCRIPTEN_VERSION}/emcc \
|
||||
CXX=/emsdk_portable/emscripten/tag-${EMSCRIPTEN_VERSION}/em++ \
|
||||
AR=/emsdk_portable/emscripten/tag-${EMSCRIPTEN_VERSION}/emar
|
||||
|
||||
# Emscripten generates system libraries the firsts time it runs
|
||||
ADD test/ /tmp/test/
|
||||
RUN cd /tmp && \
|
||||
/bin/echo -e "#include <iostream>\nint main() { std::cout << \"first run\"; return 0; }" > /tmp/first_run.cxx && \
|
||||
$CXX /tmp/first_run.cxx -o a.out.js && \
|
||||
rm /tmp/first_run.* && \
|
||||
/bin/echo -e "#include <stdio.h>\nint main() { printf(\"first run\"); return 0; }" > /tmp/first_run.c && \
|
||||
$CC /tmp/first_run.c -o a.out.js && \
|
||||
rm /tmp/first_run.* a.out.js && \
|
||||
cd /tmp/test && \
|
||||
python /tmp/test/run.py; python /tmp/test/run.py && \
|
||||
cd && rm -rf /tmp/test
|
||||
|
||||
ENV DEFAULT_DOCKCROSS_IMAGE dockcross/browser-asmjs
|
||||
|
||||
ENV CMAKE_TOOLCHAIN_FILE /emsdk_portable/emscripten/tag-${EMSCRIPTEN_VERSION}/cmake/Modules/Platform/Emscripten.cmake
|
||||
|
||||
# Build-time metadata as defined at http://label-schema.org
|
||||
ARG BUILD_DATE
|
||||
ARG IMAGE
|
||||
ARG VCS_REF
|
||||
ARG VCS_URL
|
||||
LABEL org.label-schema.build-date=$BUILD_DATE \
|
||||
org.label-schema.name=$IMAGE \
|
||||
org.label-schema.vcs-ref=$VCS_REF \
|
||||
org.label-schema.vcs-url=$VCS_URL \
|
||||
org.label-schema.schema-version="1.0"
|
Loading…
Reference in New Issue
Block a user