From 818097ca7e46f82ab56643c174fd8a59eacbb9da Mon Sep 17 00:00:00 2001 From: Dima Krasner Date: Mon, 9 Dec 2019 21:40:37 +0200 Subject: [PATCH] Add hacky, initial arm64 support --- .travis.yml | 4 ++++ build.sh | 24 ++++++++++++++---------- install_deps.sh | 16 +++++++++++----- sum.sh | 4 ++-- 4 files changed, 31 insertions(+), 17 deletions(-) diff --git a/.travis.yml b/.travis.yml index 9244cd9..d22ecf0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,6 +4,10 @@ matrix: sudo: required env: BUILDARCH=x64 dist: trusty + - os: linux + sudo: required + env: BUILDARCH=arm64 + dist: trusty - os: osx language: node_js diff --git a/build.sh b/build.sh index a08167a..f013c3f 100755 --- a/build.sh +++ b/build.sh @@ -2,8 +2,8 @@ function keep_alive() { while true; do - date - sleep 60 + echo . + read -t 60 < /proc/self/fd/1 > /dev/null 2>&1 done } @@ -66,14 +66,14 @@ if [[ "$SHOULD_BUILD" == "yes" ]]; then sed -i "s/code-oss/codium/" resources/linux/debian/postinst.template fi - yarn gulp compile-build - yarn gulp compile-extensions-build - # this task is very slow on mac, so using a keep alive to keep travis alive keep_alive & KA_PID=$! + + yarn gulp compile-build + yarn gulp compile-extensions-build + yarn gulp minify-vscode - kill $KA_PID yarn gulp minify-vscode-reh yarn gulp minify-vscode-reh-web @@ -94,14 +94,18 @@ if [[ "$SHOULD_BUILD" == "yes" ]]; then yarn gulp "vscode-win32-${BUILDARCH}-system-setup" yarn gulp "vscode-win32-${BUILDARCH}-user-setup" else # linux - yarn gulp vscode-linux-x64-min-ci - yarn gulp vscode-reh-linux-x64-min-ci - yarn gulp vscode-reh-web-linux-x64-min-ci + yarn gulp vscode-linux-${BUILDARCH}-min-ci + yarn gulp vscode-reh-linux-${BUILDARCH}-min-ci + yarn gulp vscode-reh-web-linux-${BUILDARCH}-min-ci yarn gulp "vscode-linux-${BUILDARCH}-build-deb" - yarn gulp "vscode-linux-${BUILDARCH}-build-rpm" + if [[ "$BUILDARCH" != "arm64" ]]; then + yarn gulp "vscode-linux-${BUILDARCH}-build-rpm" + fi . ../create_appimage.sh fi + kill $KA_PID + cd .. fi diff --git a/install_deps.sh b/install_deps.sh index e01f06f..5a904e0 100755 --- a/install_deps.sh +++ b/install_deps.sh @@ -5,18 +5,24 @@ if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install jq zip else sudo apt-get update - sudo apt-get install -y fakeroot rpm jq + sudo apt-get install -y fakeroot jq if [[ $BUILDARCH == "arm64" ]]; then - echo "deb http://ports.ubuntu.com/ubuntu-ports/ trusty main" | sudo tee -a /etc/apt/sources.list.d/arm64.list >/dev/null + sed 's/^deb /deb [arch=amd64] '/g -i /etc/apt/sources.list + echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ trusty main" | sudo tee -a /etc/apt/sources.list.d/arm64.list >/dev/null sudo dpkg --add-architecture arm64 sudo apt-get update - sudo apt-get install libc6-dev-arm64-cross gcc-aarch64-linux-gnu g++-aarch64-linux-gnu - sudo apt-get install libx11-dev:arm64 libxkbfile-dev:arm64 + sudo apt-get install libc6-dev-arm64-cross gcc-aarch64-linux-gnu g++-aarch64-linux-gnu `apt-cache search x11proto | grep ^x11proto | cut -f 1 -d ' '` xz-utils pkg-config + mkdir -p dl + cd dl + apt-get download libx11-dev:arm64 libx11-6:arm64 libxkbfile-dev:arm64 libxkbfile1:arm64 libxau-dev:arm64 libxdmcp-dev:arm64 libxcb1-dev:arm64 libsecret-1-dev:arm64 libsecret-1-0:arm64 libpthread-stubs0-dev:arm64 libglib2.0-dev:arm64 libglib2.0-0:arm64 libffi-dev:arm64 libffi6:arm64 zlib1g:arm64 libpcre3-dev:arm64 libpcre3:arm64 + for i in *.deb; do ar x $i; sudo tar -C / -xf data.tar.*; rm -f data.tar.*; done + cd .. export CC=/usr/bin/aarch64-linux-gnu-gcc export CXX=/usr/bin/aarch64-linux-gnu-g++ export CC_host=/usr/bin/gcc export CXX_host=/usr/bin/g++ + export PKG_CONFIG_LIBDIR=/usr/lib/aarch64-linux-gnu/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig else - sudo apt-get install libx11-dev libxkbfile-dev libsecret-1-dev fakeroot rpm jq + sudo apt-get install libx11-dev libxkbfile-dev libsecret-1-dev rpm fi fi diff --git a/sum.sh b/sum.sh index 0f40bee..ac46646 100755 --- a/sum.sh +++ b/sum.sh @@ -28,8 +28,8 @@ if [[ "$SHOULD_BUILD" == "yes" ]]; then sum_file VSCodium-win32-*.zip else # linux cp out/*.AppImage . - cp vscode/.build/linux/deb/amd64/deb/*.deb . - cp vscode/.build/linux/rpm/x86_64/*.rpm . + cp vscode/.build/linux/deb/*/deb/*.deb . + cp vscode/.build/linux/rpm/*/*.rpm . sum_file *.AppImage sum_file VSCodium-linux*.tar.gz