From 9b0d6d056c299ef3a57de39a83e611dfdd1e8af2 Mon Sep 17 00:00:00 2001 From: Yuta Saito Date: Wed, 27 Jan 2021 20:01:09 +0900 Subject: [PATCH] Init --- .github/workflows/build.yaml | 38 ++++++++++++++++++++++ .gitignore | 1 + .gitmodules | 3 ++ Makefile | 62 ++++++++++++++++++++++++++++++++++++ src/libxml2 | 1 + 5 files changed, 105 insertions(+) create mode 100644 .github/workflows/build.yaml create mode 100644 .gitignore create mode 100644 .gitmodules create mode 100644 Makefile create mode 160000 src/libxml2 diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml new file mode 100644 index 0000000..47547db --- /dev/null +++ b/.github/workflows/build.yaml @@ -0,0 +1,38 @@ +name: Build + +on: + create: + tags: + push: + branches: + - main + pull_request: + +jobs: + build: + name: Native Build + runs-on: ubuntu-latest + env: + WASI_SDK_MAJOR_VERSION: 12 + WASI_SDK_MINOR_VERSION: 0 + steps: + - uses: actions/checkout@v2 + with: + submodules: true + - name: Install ninja + run: sudo apt install ninja-build + - name: Install wasi-sdk + run: | + WASI_SDK_VERSION=$WASI_SDK_MAJOR_VERSION.$WASI_SDK_MINOR_VERSION + wget https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-$WASI_SDK_MAJOR_VERSION/wasi-sdk-$WASI_SDK_VERSION-linux.tar.gz + tar xvf wasi-sdk-$WASI_SDK_VERSION-linux.tar.gz + ln -s wasi-sdk-$WASI_SDK_VERSION wasi-sdk + - name: Build + run: | + export WASI_SDK_PREFIX="$GITHUB_WORKSPACE/wasi-sdk" + make package + - name: Upload artifacts + uses: actions/upload-artifact@v1 + with: + name: libxml2-wasm32-unknown-wasi.tar.gz + path: build/libxml2-wasm32-unknown-wasi.tar.gz diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..567609b --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +build/ diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..4dd5574 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "src/libxml2"] + path = src/libxml2 + url = https://gitlab.gnome.org/GNOME/libxml2.git diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..eaeeb17 --- /dev/null +++ b/Makefile @@ -0,0 +1,62 @@ +ROOT_DIR = ${CURDIR} +DESTDIR = $(abspath build/install) + +ifndef WASI_SDK_PREFIX +$(error WASI_SDK_PREFIX is not set) +endif + +build/libxml2.BUILT: + mkdir -p build/libxml2 + cd build/libxml2 && cmake $(ROOT_DIR)/src/libxml2 -GNinja \ + -DLIBXML2_WITH_C14N=OFF \ + -DLIBXML2_WITH_CATALOG=OFF \ + -DLIBXML2_WITH_DEBUG=OFF \ + -DLIBXML2_WITH_DOCB=OFF \ + -DLIBXML2_WITH_FTP=OFF \ + -DLIBXML2_WITH_HTML=OFF \ + -DLIBXML2_WITH_HTTP=OFF \ + -DLIBXML2_WITH_ICONV=OFF \ + -DLIBXML2_WITH_ICU=OFF \ + -DLIBXML2_WITH_ISO8859X=OFF \ + -DLIBXML2_WITH_LEGACY=OFF \ + -DLIBXML2_WITH_LZMA=OFF \ + -DLIBXML2_WITH_MEM_DEBUG=OFF \ + -DLIBXML2_WITH_MODULES=OFF \ + -DLIBXML2_WITH_OUTPUT=ON \ + -DLIBXML2_WITH_PATTERN=OFF \ + -DLIBXML2_WITH_PROGRAMS=OFF \ + -DLIBXML2_WITH_PUSH=ON \ + -DLIBXML2_WITH_PYTHON=OFF \ + -DLIBXML2_WITH_READER=OFF \ + -DLIBXML2_WITH_REGEXPS=ON \ + -DLIBXML2_WITH_RUN_DEBUG=OFF \ + -DLIBXML2_WITH_SAX1=OFF \ + -DLIBXML2_WITH_SCHEMAS=OFF \ + -DLIBXML2_WITH_SCHEMATRON=OFF \ + -DLIBXML2_WITH_TESTS=OFF \ + -DLIBXML2_WITH_THREADS=OFF \ + -DLIBXML2_WITH_THREAD_ALLOC=OFF \ + -DLIBXML2_WITH_TREE=ON \ + -DLIBXML2_WITH_VALID=ON \ + -DLIBXML2_WITH_WRITER=OFF \ + -DLIBXML2_WITH_XINCLUDE=OFF \ + -DLIBXML2_WITH_XPATH=ON \ + -DLIBXML2_WITH_XPTR=OFF \ + -DLIBXML2_WITH_ZLIB=OFF \ + -DBUILD_SHARED_LIBS=OFF \ + -DWASI_SDK_PREFIX=$(WASI_SDK_PREFIX) \ + -DCMAKE_C_COMPILER_WORKS=ON \ + -DCMAKE_SYSROOT=$(WASI_SDK_PREFIX)/share/wasi-sysroot \ + -DCMAKE_TOOLCHAIN_FILE=$(WASI_SDK_PREFIX)/share/cmake/wasi-sdk.cmake + + DESTDIR=$(DESTDIR) ninja install -C build/libxml2 + + touch build/libxml2.BUILT + +build/package.BUILT: build/libxml2.BUILT + mkdir -p build/libxml2-wasm32-unknown-wasi + cp -r build/install/usr/local/include build/libxml2-wasm32-unknown-wasi/ + cp -r build/install/usr/local/lib build/libxml2-wasm32-unknown-wasi/ + tar czf build/libxml2-wasm32-unknown-wasi.tar.gz -C build libxml2-wasm32-unknown-wasi + +package: build/package.BUILT diff --git a/src/libxml2 b/src/libxml2 new file mode 160000 index 0000000..f93ca3e --- /dev/null +++ b/src/libxml2 @@ -0,0 +1 @@ +Subproject commit f93ca3e140a371b26366f747a408588c631e0fd1