Upgrade Emscripten + build fixes
- Upgraded to 3.1.47. - EM_CACHE override leads to some new issues with package search in sysroot, probably because sysroot is hardcoded in PKG_CONFIG* variables. Use Docker's path mapping mechanism instead. - Added temporary workaround for new issue from https://github.com/emscripten-core/emscripten/issues/16836.
This commit is contained in:
@@ -1,5 +1,4 @@
|
|||||||
FROM emscripten/emsdk:3.1.3
|
FROM emscripten/emsdk:3.1.47
|
||||||
RUN apt-get update && apt-get install -qqy autoconf autopoint pkg-config
|
RUN apt-get update && apt-get install -qqy autoconf autopoint pkg-config libtool libtool-bin
|
||||||
WORKDIR /src
|
WORKDIR /src
|
||||||
ENV EM_CACHE /src/deps/.emcache
|
|
||||||
CMD ["sh", "-c", "emmake make -j`nproc`"]
|
CMD ["sh", "-c", "emmake make -j`nproc`"]
|
||||||
|
|||||||
4
Makefile
4
Makefile
@@ -1,4 +1,4 @@
|
|||||||
SYSROOT = $(EM_CACHE)/sysroot
|
SYSROOT = /emsdk/upstream/emscripten/cache/sysroot
|
||||||
|
|
||||||
# Add custom sysroot to library & macro search paths.
|
# Add custom sysroot to library & macro search paths.
|
||||||
export LDFLAGS += -L$(SYSROOT)/lib
|
export LDFLAGS += -L$(SYSROOT)/lib
|
||||||
@@ -6,6 +6,8 @@ export ACLOCAL_PATH := $(SYSROOT)/share/aclocal:$(ACLOCAL_PATH)
|
|||||||
|
|
||||||
# Common linking flags for all targets.
|
# Common linking flags for all targets.
|
||||||
export LDFLAGS += -s DYNAMIC_EXECUTION=0 -s AUTO_JS_LIBRARIES=0 -s AUTO_NATIVE_LIBRARIES=0
|
export LDFLAGS += -s DYNAMIC_EXECUTION=0 -s AUTO_JS_LIBRARIES=0 -s AUTO_NATIVE_LIBRARIES=0
|
||||||
|
# Temporary workaround for https://github.com/emscripten-core/emscripten/issues/16836.
|
||||||
|
export LDFLAGS += -Wl,-u,ntohs
|
||||||
|
|
||||||
# Common compilation & linking flags for all langs and targets.
|
# Common compilation & linking flags for all langs and targets.
|
||||||
COMMON_FLAGS = -Os -flto
|
COMMON_FLAGS = -Os -flto
|
||||||
|
|||||||
7
build.sh
7
build.sh
@@ -16,16 +16,15 @@
|
|||||||
# License along with this library; if not, write to the Free Software
|
# License along with this library; if not, write to the Free Software
|
||||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
|
||||||
if [ -z "$CI" ]
|
if [ -z "$CI" ]; then
|
||||||
then
|
|
||||||
DOCKER_INTERACTIVE_OPTS="-it"
|
DOCKER_INTERACTIVE_OPTS="-it"
|
||||||
else
|
else
|
||||||
DOCKER_INTERACTIVE_OPTS=""
|
DOCKER_INTERACTIVE_OPTS=""
|
||||||
fi
|
fi
|
||||||
|
|
||||||
docker build -t web-gphoto2 - < Dockerfile
|
docker build -t web-gphoto2 - <Dockerfile
|
||||||
docker run --rm $DOCKER_INTERACTIVE_OPTS \
|
docker run --rm $DOCKER_INTERACTIVE_OPTS \
|
||||||
-v $PWD:/src \
|
-v $PWD:/src \
|
||||||
-u $(id -u):$(id -g) \
|
-v $PWD/deps/.emcache:/emsdk/upstream/emscripten/cache \
|
||||||
web-gphoto2 \
|
web-gphoto2 \
|
||||||
$@
|
$@
|
||||||
|
|||||||
Reference in New Issue
Block a user