├── .gitignore ├── x64-android-dynamic.cmake ├── arm64-android-dynamic.cmake ├── project └── vcpkg.json ├── arm-android-dynamic.cmake ├── Dockerfile └── .github └── workflows └── blank.yml /.gitignore: -------------------------------------------------------------------------------- 1 | dist 2 | build -------------------------------------------------------------------------------- /x64-android-dynamic.cmake: -------------------------------------------------------------------------------- 1 | set(VCPKG_TARGET_ARCHITECTURE x64) 2 | set(VCPKG_CRT_LINKAGE dynamic) 3 | set(VCPKG_LIBRARY_LINKAGE dynamic) 4 | set(VCPKG_CMAKE_SYSTEM_NAME Android) 5 | set(VCPKG_MAKE_BUILD_TRIPLET "--host=x86_64-linux-android") 6 | set(VCPKG_CMAKE_CONFIGURE_OPTIONS -DANDROID_ABI=x86_64) 7 | -------------------------------------------------------------------------------- /arm64-android-dynamic.cmake: -------------------------------------------------------------------------------- 1 | set(VCPKG_TARGET_ARCHITECTURE arm64) 2 | set(VCPKG_CRT_LINKAGE dynamic) 3 | set(VCPKG_LIBRARY_LINKAGE dynamic) 4 | set(VCPKG_CMAKE_SYSTEM_NAME Android) 5 | set(VCPKG_MAKE_BUILD_TRIPLET "--host=aarch64-linux-android") 6 | set(VCPKG_CMAKE_CONFIGURE_OPTIONS -DANDROID_ABI=arm64-v8a) 7 | -------------------------------------------------------------------------------- /project/vcpkg.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": [ 3 | "curl", 4 | "freetype", 5 | "icu", 6 | "libflac", 7 | "libogg", 8 | "libpng", 9 | "libvorbis", 10 | "openssl", 11 | "sdl2", 12 | "speexdsp" 13 | ], 14 | "builtin-baseline": "14542c8ad9b6bcb9da755884ab823605c3300b68" 15 | } 16 | -------------------------------------------------------------------------------- /arm-android-dynamic.cmake: -------------------------------------------------------------------------------- 1 | set(VCPKG_TARGET_ARCHITECTURE arm) 2 | set(VCPKG_CRT_LINKAGE dynamic) 3 | set(VCPKG_LIBRARY_LINKAGE dynamic) 4 | set(VCPKG_CMAKE_SYSTEM_NAME Android) 5 | set(VCPKG_MAKE_BUILD_TRIPLET "--host=armv7a-linux-androideabi") 6 | set(VCPKG_CMAKE_CONFIGURE_OPTIONS -DANDROID_ABI=armeabi-v7a -DANDROID_ARM_NEON=ON) 7 | set(VCPKG_CMAKE_SYSTEM_VERSION 24) 8 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:24.04 2 | 3 | ENV DEBIAN_FRONTEND noninteractive 4 | 5 | RUN \ 6 | apt-get update && \ 7 | apt-get -y upgrade 8 | 9 | RUN \ 10 | apt-get -y --no-install-recommends install git g++ wget curl zip vim pkg-config tar cmake unzip ca-certificates python3 autoconf autoconf-archive autotools-dev automake make 11 | 12 | # Download Android NDK 13 | RUN \ 14 | wget https://dl.google.com/android/repository/android-ndk-r27c-linux.zip && \ 15 | unzip android-ndk-r27c-linux.zip && \ 16 | rm -rf android-ndk-r27c-linux.zip 17 | 18 | ENV ANDROID_NDK_HOME /android-ndk-r27c 19 | 20 | RUN git clone https://github.com/microsoft/vcpkg 21 | WORKDIR vcpkg 22 | RUN ./bootstrap-vcpkg.sh 23 | 24 | COPY arm-android-dynamic.cmake arm64-android-dynamic.cmake x64-android-dynamic.cmake /vcpkg/triplets/ 25 | 26 | ENV PATH "/vcpkg:$PATH" 27 | ENV VCPKG_ROOT "/vcpkg" 28 | 29 | WORKDIR /project 30 | -------------------------------------------------------------------------------- /.github/workflows/blank.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | 3 | on: 4 | push: 5 | branches: [ "master" ] 6 | pull_request: 7 | branches: [ "master" ] 8 | 9 | jobs: 10 | build-docker: 11 | runs-on: ubuntu-latest 12 | 13 | steps: 14 | - uses: actions/checkout@v4 15 | 16 | - name: Build docker image 17 | run: docker build . -t vcpkg-build 18 | 19 | - name: Save docker image 20 | run: | 21 | docker save -o vcpkg-build.tar vcpkg-build 22 | zstd vcpkg-build.tar 23 | 24 | - name: Upload docker image 25 | uses: actions/upload-artifact@v4 26 | with: 27 | path: vcpkg-build.tar.zst 28 | name: vcpkg-build.tar.zst 29 | compression-level: 0 30 | download: 31 | needs: build-docker 32 | runs-on: ubuntu-latest 33 | strategy: 34 | matrix: 35 | arch: [arm, arm64, x64] 36 | steps: 37 | - uses: actions/checkout@v4 38 | - name: Download All Artifacts 39 | uses: actions/download-artifact@v4 40 | with: 41 | pattern: vcpkg-build.tar.zst 42 | - name: Load image 43 | run: | 44 | zstd -d vcpkg-build.tar.zst/vcpkg-build.tar.zst 45 | docker load --input vcpkg-build.tar.zst/vcpkg-build.tar 46 | 47 | - name: Build ${{ matrix.arch }} libraries 48 | run: docker run -v $(pwd)/project:/project -t vcpkg-build vcpkg install --triplet ${{ matrix.arch }}-android-dynamic 49 | 50 | - name: Archive libraries 51 | run: tar -c --zstd -f ${{ matrix.arch }}-android-dynamic.tar.zst -C project/vcpkg_installed/ ${{ matrix.arch }}-android-dynamic 52 | 53 | - name: Upload libraries 54 | uses: actions/upload-artifact@v4 55 | with: 56 | path: ${{ matrix.arch }}-android-dynamic.tar.zst 57 | name: ${{ matrix.arch }}-android-dynamic.tar.zst 58 | compression-level: 1 59 | --------------------------------------------------------------------------------