فهرست منبع

Add hacky, initial arm64 support

Dima Krasner 5 سال پیش
والد
کامیت
818097ca7e
4فایلهای تغییر یافته به همراه31 افزوده شده و 17 حذف شده
  1. 4 0
      .travis.yml
  2. 14 10
      build.sh
  3. 11 5
      install_deps.sh
  4. 2 2
      sum.sh

+ 4 - 0
.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

+ 14 - 10
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

+ 11 - 5
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

+ 2 - 2
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