mirror of
https://github.com/tsl0922/ttyd.git
synced 2025-12-19 18:34:20 +01:00
scripts: use cross compiler from musl.cc
This commit is contained in:
12
.github/workflows/backend.yml
vendored
12
.github/workflows/backend.yml
vendored
@@ -34,7 +34,7 @@ jobs:
|
|||||||
cd libwebsockets-${LWS_VERSION}
|
cd libwebsockets-${LWS_VERSION}
|
||||||
cmake -DLWS_WITH_LIBUV=ON -DLWS_UNIX_SOCK=ON -DLWS_IPV6=ON -DLWS_WITHOUT_TESTAPPS=ON -DCMAKE_BUILD_TYPE=RELEASE .
|
cmake -DLWS_WITH_LIBUV=ON -DLWS_UNIX_SOCK=ON -DLWS_IPV6=ON -DLWS_WITHOUT_TESTAPPS=ON -DCMAKE_BUILD_TYPE=RELEASE .
|
||||||
make && sudo make install && sudo ldconfig
|
make && sudo make install && sudo ldconfig
|
||||||
- uses: actions/checkout@v1
|
- uses: actions/checkout@v2
|
||||||
- name: Build ttyd
|
- name: Build ttyd
|
||||||
run: |
|
run: |
|
||||||
cmake -DCMAKE_BUILD_TYPE=RELEASE .
|
cmake -DCMAKE_BUILD_TYPE=RELEASE .
|
||||||
@@ -44,13 +44,17 @@ jobs:
|
|||||||
runs-on: ubuntu-16.04
|
runs-on: ubuntu-16.04
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
arch: [i386, x86_64, arm, armhf, aarch64, mips, mipsel]
|
arch: [i686, x86_64, arm, armhf, aarch64, mips, mipsel, mips64, mips64el]
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v1
|
- uses: actions/checkout@v2
|
||||||
|
- name: Install packages
|
||||||
|
run: |
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install -y autoconf automake build-essential cmake curl file libtool
|
||||||
- name: Cross build (${{ matrix.arch }})
|
- name: Cross build (${{ matrix.arch }})
|
||||||
env:
|
env:
|
||||||
ARCH: ${{ matrix.arch }}
|
ARCH: ${{ matrix.arch }}
|
||||||
run: docker run --rm -v $(pwd):/ttyd -w /ttyd tsl0922/musl-cross ./scripts/cross-build.sh $ARCH
|
run: ./scripts/cross-build.sh $ARCH
|
||||||
- uses: actions/upload-artifact@v1
|
- uses: actions/upload-artifact@v1
|
||||||
with:
|
with:
|
||||||
name: ttyd.${{ matrix.arch }}
|
name: ttyd.${{ matrix.arch }}
|
||||||
|
|||||||
2
.github/workflows/frontend.yml
vendored
2
.github/workflows/frontend.yml
vendored
@@ -14,7 +14,7 @@ jobs:
|
|||||||
build:
|
build:
|
||||||
runs-on: ubuntu-16.04
|
runs-on: ubuntu-16.04
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v1
|
- uses: actions/checkout@v2
|
||||||
- uses: actions/setup-node@v1
|
- uses: actions/setup-node@v1
|
||||||
with:
|
with:
|
||||||
node-version: '12.x'
|
node-version: '12.x'
|
||||||
|
|||||||
10
.github/workflows/release.yml
vendored
10
.github/workflows/release.yml
vendored
@@ -9,12 +9,16 @@ jobs:
|
|||||||
build:
|
build:
|
||||||
runs-on: ubuntu-16.04
|
runs-on: ubuntu-16.04
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v1
|
- uses: actions/checkout@v2
|
||||||
|
- name: Install packages
|
||||||
|
run: |
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install -y autoconf automake build-essential cmake curl file libtool
|
||||||
- name: Build Release
|
- name: Build Release
|
||||||
run: |
|
run: |
|
||||||
mkdir -p bin
|
mkdir -p bin
|
||||||
for arch in i386 x86_64 arm armhf aarch64 mips mipsel; do
|
for arch in i686 x86_64 arm armhf aarch64 mips mipsel mips64 mips64el; do
|
||||||
docker run --rm -v $(pwd):/ttyd -w /ttyd tsl0922/musl-cross ./scripts/cross-build.sh $arch
|
./scripts/cross-build.sh $arch
|
||||||
cp build/ttyd bin/ttyd_linux.$arch
|
cp build/ttyd bin/ttyd_linux.$arch
|
||||||
sha256sum bin/ttyd_linux.$arch >> bin/SHA256SUMS
|
sha256sum bin/ttyd_linux.$arch >> bin/SHA256SUMS
|
||||||
done
|
done
|
||||||
|
|||||||
@@ -1,9 +1,5 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
#
|
|
||||||
# This script should be run inside the tsl0922/musl-cross docker image
|
|
||||||
# Example:
|
|
||||||
# docker run --rm -v $(pwd):/ttyd -w /ttyd tsl0922/musl-cross ./scripts/cross-build.sh mips
|
|
||||||
#
|
|
||||||
set -eo pipefail
|
set -eo pipefail
|
||||||
|
|
||||||
CROSS_ROOT="${CROSS_ROOT:-/opt/cross}"
|
CROSS_ROOT="${CROSS_ROOT:-/opt/cross}"
|
||||||
@@ -14,7 +10,7 @@ ZLIB_VERSION="${ZLIB_VERSION:-1.2.11}"
|
|||||||
JSON_C_VERSION="${JSON_C_VERSION:-0.14}"
|
JSON_C_VERSION="${JSON_C_VERSION:-0.14}"
|
||||||
OPENSSL_VERSION="${OPENSSL_VERSION:-1.0.2u}"
|
OPENSSL_VERSION="${OPENSSL_VERSION:-1.0.2u}"
|
||||||
LIBUV_VERSION="${LIBUV_VERSION:-1.38.0}"
|
LIBUV_VERSION="${LIBUV_VERSION:-1.38.0}"
|
||||||
LIBWEBSOCKETS_VERSION="${LIBWEBSOCKETS_VERSION:-4.0.19}"
|
LIBWEBSOCKETS_VERSION="${LIBWEBSOCKETS_VERSION:-4.0.20}"
|
||||||
|
|
||||||
build_zlib() {
|
build_zlib() {
|
||||||
echo "=== Building zlib-${ZLIB_VERSION} (${TARGET})..."
|
echo "=== Building zlib-${ZLIB_VERSION} (${TARGET})..."
|
||||||
@@ -71,17 +67,19 @@ set(CMAKE_FIND_ROOT_PATH "${STAGE_DIR}")
|
|||||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||||
|
|
||||||
|
set(OPENSSL_USE_STATIC_LIBS TRUE)
|
||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
|
|
||||||
build_libwebsockets() {
|
build_libwebsockets() {
|
||||||
echo "=== Building libwebsockets-${LIBWEBSOCKETS_VERSION} (${TARGET})..."
|
echo "=== Building libwebsockets-${LIBWEBSOCKETS_VERSION} (${TARGET})..."
|
||||||
curl -sLo- "https://github.com/warmcat/libwebsockets/archive/v${LIBWEBSOCKETS_VERSION}.tar.gz" | tar xz -C "${BUILD_DIR}"
|
curl -sLo- "https://github.com/warmcat/libwebsockets/archive/v${LIBWEBSOCKETS_VERSION}.tar.gz" | tar xz -C ${BUILD_DIR}
|
||||||
pushd "${BUILD_DIR}/libwebsockets-${LIBWEBSOCKETS_VERSION}"
|
pushd "${BUILD_DIR}/libwebsockets-${LIBWEBSOCKETS_VERSION}"
|
||||||
sed -i 's/ websockets_shared//g' cmake/LibwebsocketsConfig.cmake.in
|
sed -i 's/ websockets_shared//g' cmake/LibwebsocketsConfig.cmake.in
|
||||||
|
sed -i '/PC_OPENSSL/d' CMakeLists.txt
|
||||||
mkdir build && cd build
|
mkdir build && cd build
|
||||||
cmake -DCMAKE_TOOLCHAIN_FILE="${BUILD_DIR}/cross-${TARGET}.cmake" \
|
cmake -DCMAKE_TOOLCHAIN_FILE="${BUILD_DIR}/cross-${TARGET}.cmake" \
|
||||||
-DCMAKE_BUILD_TYPE=RELEASE \
|
|
||||||
-DCMAKE_INSTALL_PREFIX="${STAGE_DIR}" \
|
-DCMAKE_INSTALL_PREFIX="${STAGE_DIR}" \
|
||||||
-DCMAKE_FIND_LIBRARY_SUFFIXES=".a" \
|
-DCMAKE_FIND_LIBRARY_SUFFIXES=".a" \
|
||||||
-DCMAKE_EXE_LINKER_FLAGS="-static" \
|
-DCMAKE_EXE_LINKER_FLAGS="-static" \
|
||||||
@@ -93,7 +91,6 @@ build_libwebsockets() {
|
|||||||
-DLWS_IPV6=ON \
|
-DLWS_IPV6=ON \
|
||||||
..
|
..
|
||||||
make -j"$(nproc)" install
|
make -j"$(nproc)" install
|
||||||
sed -i 's/ssl;crypto;//g' "${STAGE_DIR}/lib/cmake/libwebsockets/LibwebsocketsTargets-release.cmake"
|
|
||||||
popd
|
popd
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -115,6 +112,11 @@ build() {
|
|||||||
STAGE_DIR="${STAGE_ROOT}/${TARGET}"
|
STAGE_DIR="${STAGE_ROOT}/${TARGET}"
|
||||||
BUILD_DIR="${BUILD_ROOT}/${TARGET}"
|
BUILD_DIR="${BUILD_ROOT}/${TARGET}"
|
||||||
|
|
||||||
|
echo "=== Installing toolchain ${ALIAS} (${TARGET})..."
|
||||||
|
|
||||||
|
mkdir -p "${CROSS_ROOT}" && export PATH="${PATH}:/opt/cross/bin"
|
||||||
|
curl -sLo- "http://musl.cc/${TARGET}-cross.tgz" | tar xz -C ${CROSS_ROOT} --strip-components 1
|
||||||
|
|
||||||
echo "=== Building target ${ALIAS} (${TARGET})..."
|
echo "=== Building target ${ALIAS} (${TARGET})..."
|
||||||
|
|
||||||
rm -rf "${STAGE_DIR}" "${BUILD_DIR}"
|
rm -rf "${STAGE_DIR}" "${BUILD_DIR}"
|
||||||
@@ -132,7 +134,7 @@ build() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
case $1 in
|
case $1 in
|
||||||
i386|x86_64|aarch64|mips|mipsel)
|
i686|x86_64|aarch64|mips|mipsel|mips64|mips64el)
|
||||||
build "$1-linux-musl" "$1"
|
build "$1-linux-musl" "$1"
|
||||||
;;
|
;;
|
||||||
arm)
|
arm)
|
||||||
@@ -142,5 +144,5 @@ case $1 in
|
|||||||
build arm-linux-musleabihf "$1"
|
build arm-linux-musleabihf "$1"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo "usage: $0 i386|x86_64|arm|armhf|aarch64|mips|mipsel" && exit 1
|
echo "usage: $0 i686|x86_64|arm|armhf|aarch64|mips|mipsel|mips64|mips64el" && exit 1
|
||||||
esac
|
esac
|
||||||
|
|||||||
Reference in New Issue
Block a user