Compare commits

...

14 Commits

Author SHA1 Message Date
Tindy X
60ce85172b Update build script 2020-03-18 19:57:44 +08:00
Tindy X
38314a778b Update build scripts 2020-03-18 19:48:41 +08:00
Tindy X
46f36769bd Update build scripts 2020-03-18 19:28:02 +08:00
Tindy X
5c6e7209a6 Update build scripts 2020-03-18 19:24:10 +08:00
Tindy X
4dd81f9f02 Update build scrtips 2020-03-18 19:15:23 +08:00
Tindy X
1ea1be7eda Update build script 2020-03-18 19:09:12 +08:00
Tindy X
e504eeb938 Update build script 2020-03-18 19:04:01 +08:00
Tindy X
eb79327497 Update build script 2020-03-18 19:00:01 +08:00
Tindy X
012c4621be Update build script 2020-03-18 18:57:20 +08:00
Tindy X
4f39c5e4c7 Update build scripts 2020-03-18 18:55:27 +08:00
Tindy X
c7037c1a81 Update build scripts 2020-03-09 14:56:12 +08:00
Tindy X
8f54f38073 Update build scripts 2020-03-09 14:31:43 +08:00
Tindy X
64a9e7e091 Update .travis.yml 2020-03-05 05:23:09 -06:00
Tindy X
ea47217b82 Add AArch64 auto build 2020-03-02 20:57:54 +08:00
8 changed files with 116 additions and 21 deletions

42
.github/workflows/build.yml vendored Normal file
View File

@@ -0,0 +1,42 @@
name: Github CI
on: [push]
jobs:
linux32_build:
name: Linux x86 Build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Build
run: docker run --rm -v $GITHUB_WORKSPACE:/root/workdir multiarch/alpine:x86-edge /bin/sh -c "apk add bash git && cd /root/workdir && chmod +x scripts/build.alpine.release.sh && bash scripts/build.alpine.release.sh"
- name: Upload
uses: actions/upload-artifact@v1
with:
name: subconverter_linux32
path: subconverter/
linux64_build:
name: Linux x86_64 Build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Build
run: docker run -v $GITHUB_WORKSPACE:/root/workdir multiarch/alpine:amd64-edge /bin/sh -c "apk add bash git && cd /root/workdir && chmod +x scripts/build.alpine.release.sh && bash scripts/build.alpine.release.sh"
- name: Upload
uses: actions/upload-artifact@v1
with:
name: subconverter_linux64
path: subconverter/
macos_build:
name: macOS Build
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- name: Build
run: bash scripts/build.macos.release.sh
- name: Upload
uses: actions/upload-artifact@v1
with:
name: subconverter_darwin64
path: subconverter/

View File

@@ -13,6 +13,7 @@ jobs:
osx_image: xcode10.3
script:
- bash scripts/build.macos.release.sh
- tar czf subconverter_darwin64.tar.gz subconverter
deploy:
provider: releases
token: "$GITHUB_OAUTH_TOKEN"
@@ -25,8 +26,7 @@ jobs:
services: docker
script:
- docker run --rm -v $TRAVIS_BUILD_DIR:/root/workdir multiarch/alpine:x86-edge /bin/sh -c "apk add bash git && cd /root/workdir && chmod +x scripts/build.alpine.release.sh && bash scripts/build.alpine.release.sh"
before_deploy:
- mv subconverter_linux64.tar.gz subconverter_linux32.tar.gz
- tar czf subconverter_linux32.tar.gz subconverter/
deploy:
provider: releases
token: "$GITHUB_OAUTH_TOKEN"
@@ -38,7 +38,8 @@ jobs:
- name: "Linux x86_64 Build"
services: docker
script:
- docker run -v $TRAVIS_BUILD_DIR:/root/workdir alpine:latest /bin/sh -c "apk add bash git && cd /root/workdir && chmod +x scripts/build.alpine.release.sh && bash scripts/build.alpine.release.sh"
- docker run -v $TRAVIS_BUILD_DIR:/root/workdir multiarch/alpine:amd64-edge /bin/sh -c "apk add bash git && cd /root/workdir && chmod +x scripts/build.alpine.release.sh && bash scripts/build.alpine.release.sh"
- tar czf subconverter_linux64.tar.gz subconverter/
deploy:
provider: releases
token: "$GITHUB_OAUTH_TOKEN"
@@ -49,11 +50,10 @@ jobs:
tags: true
- name: "Linux ARMHF Build"
services: docker
arch: arm64
script:
- docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
- docker run --rm -v $TRAVIS_BUILD_DIR:/root/workdir multiarch/alpine:armhf-edge /bin/sh -c "apk add bash git && cd /root/workdir && chmod +x scripts/build.alpine.release.sh && bash scripts/build.alpine.release.sh"
before_deploy:
- mv subconverter_linux64.tar.gz subconverter_armhf.tar.gz
- tar czf subconverter_armhf.tar.gz subconverter/
deploy:
provider: releases
token: "$GITHUB_OAUTH_TOKEN"
@@ -66,9 +66,8 @@ jobs:
services: docker
arch: arm64
script:
- docker run -v $TRAVIS_BUILD_DIR:/root/workdir alpine:latest /bin/sh -c "apk add bash git && cd /root/workdir && chmod +x scripts/build.alpine.release.sh && bash scripts/build.alpine.release.sh"
before_deploy:
- mv subconverter_linux64.tar.gz subconverter_aarch64.tar.gz
- docker run -v $TRAVIS_BUILD_DIR:/root/workdir multiarch/alpine:aarch64-edge /bin/sh -c "apk add bash git && cd /root/workdir && chmod +x scripts/build.alpine.release.sh && bash scripts/build.alpine.release.sh"
- tar czf subconverter_aarch64.tar.gz subconverter/
deploy:
provider: releases
token: "$GITHUB_OAUTH_TOKEN"
@@ -76,4 +75,4 @@ jobs:
skip_cleanup: true
draft: true
on:
tags: true
tags: true

View File

@@ -0,0 +1,22 @@
FROM arm64v8/alpine:latest
MAINTAINER Tindy X <tindy.it@gmail.com>
COPY qemu-aarch64-static /usr/bin
# build minimized
RUN apk add git g++ build-base linux-headers cmake && \
apk add libressl-dev curl-dev rapidjson-dev libevent-dev pcre2-dev yaml-cpp-dev && \
git clone https://github.com/tindy2013/subconverter && \
cd subconverter && \
cmake . && \
make -j4 && \
mv subconverter base/ && \
mv base ../ && \
cd .. && \
rm -rf subconverter && \
apk add pcre2 libcurl yaml-cpp libevent libpcrecpp && \
apk del git gcc g++ build-base linux-headers cmake libressl-dev curl-dev rapidjson-dev libevent-dev pcre2-dev yaml-cpp-dev
# set entry
WORKDIR /base
CMD ./subconverter

View File

@@ -1,5 +1,4 @@
#!/bin/bash
mkdir obj
set -xe
apk add gcc g++ build-base linux-headers cmake make autoconf automake libtool
@@ -13,10 +12,11 @@ cd ..
cmake .
make -j2
rm subconverter
g++ -o base/subconverter CMakeFiles/subconverter.dir/src/*.o -static -lpcre2-8 -levent -lyaml-cpp -lcurl -lnghttp2 -lssl -lcrypto -lz -lbz2 -ldl -lpthread -O3 -s
cd base
chmod +rx subconverter
chmod +r *
tar czf ../subconverter_linux64.tar.gz *
cd ..
mv base subconverter

View File

@@ -1,34 +1,42 @@
#!/bin/bash
mkdir obj
set -xe
brew reinstall yaml-cpp rapidjson libevent zlib pcre2 bzip2 pkgconfig
brew reinstall rapidjson libevent zlib pcre2 bzip2 libssh2 pkgconfig
git clone https://github.com/curl/curl
cd curl
./buildconf > /dev/null
./configure --with-ssl=/usr/local/opt/openssl@1.1 --without-mbedtls --disable-ldap --disable-ldaps --disable-rtsp --without-libidn2 > /dev/null
#./buildconf > /dev/null
#./configure --with-ssl=/usr/local/opt/openssl@1.1 --without-mbedtls --disable-ldap --disable-ldaps --disable-rtsp --without-libidn2 > /dev/null
cmake -DHTTP_ONLY=ON -DBUILD_TESTING=OFF -DBUILD_SHARED_LIBS=OFF -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl@1.1 . > /dev/null
make -j8 > /dev/null
cd ..
cp curl/lib/.libs/libcurl.a .
git clone https://github.com/jbeder/yaml-cpp
cd yaml-cpp
cmake -DYAML_CPP_BUILD_TESTS=OFF -DYAML_CPP_BUILD_TOOLS=OFF . > /dev/null
make install -j8 > /dev/null
cd ..
cp curl/lib/libcurl.a .
cp yaml-cpp/libyaml-cpp.a .
cp /usr/local/lib/libevent.a .
cp /usr/local/opt/zlib/lib/libz.a .
cp /usr/local/opt/openssl@1.1/lib/libssl.a .
cp /usr/local/opt/openssl@1.1/lib/libcrypto.a .
cp /usr/local/lib/libyaml-cpp.a .
cp /usr/local/lib/libpcre2-8.a .
cp /usr/local/opt/bzip2/lib/libbz2.a .
cp /usr/local/lib/libssh2.a .
export CMAKE_CXX_FLAGS="-I/usr/local/include -I/usr/local/opt/openssl@1.1/include -I/usr/local/opt/curl/include"
cmake -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl@1.1 .
make -j8
c++ -Xlinker -unexported_symbol -Xlinker "*" -o base/subconverter CMakeFiles/subconverter.dir/src/*.o libpcre2-8.a libevent.a libcurl.a libz.a libssl.a libcrypto.a libyaml-cpp.a libbz2.a -ldl -lpthread -O3
rm subconverter
c++ -Xlinker -unexported_symbol -Xlinker "*" -o base/subconverter CMakeFiles/subconverter.dir/src/*.o libpcre2-8.a libevent.a libcurl.a libz.a libssl.a libcrypto.a libyaml-cpp.a libbz2.a libssh2.a -ldl -lpthread -O3
cd base
chmod +rx subconverter
chmod +r *
tar czf ../subconverter_darwin64.tar.gz *
cd ..
mv base subconverter
set +xe

18
scripts/build.windows.sh Normal file
View File

@@ -0,0 +1,18 @@
#!/bin/bash
set -xe
git clone https://github.com/curl/curl
cd curl
cmake -DHTTP_ONLY=ON -DBUILD_TESTING=OFF -DBUILD_SHARED_LIBS=OFF -G "Unix Makefiles" .
make -j4
cd ..
cmake -G "Unix Makefiles" .
make -j2
rm subconverter.exe
g++ -o base/subconverter CMakeFiles/subconverter.dir/src/*.obj curl/lib/libcurl.a -static -lpcre2-8 -levent -lyaml-cpp -lssl -lcrypto -lwsock32 -lws2_32 -lz
mv base subconverter
zip -q -r subconverter_win64.zip subconverter/
set +xe

View File

@@ -0,0 +1,2 @@
#!/bin/bash
curl -L https://github.com/multiarch/qemu-user-static/releases/download/v4.2.0-6/x86_64_qemu-aarch64-static.tar.gz | tar zxvf - -C .

4
scripts/hooks/pre_build Normal file
View File

@@ -0,0 +1,4 @@
#!/bin/bash
# Register qemu-*-static for all supported processors except the
# current one, but also remove all registered binfmt_misc before
docker run --rm --privileged multiarch/qemu-user-static:register --reset