From 819ef471b72dba9f586715269cd71a5f37f4706d Mon Sep 17 00:00:00 2001 From: blueloveTH Date: Sat, 9 Dec 2023 19:01:40 +0800 Subject: [PATCH] update android workflow --- .github/workflows/main.yml | 40 ++++++++++++++++++-------------------- CMakeLists.txt | 4 ++-- build_android.sh | 14 +++++++++++++ 3 files changed, 35 insertions(+), 23 deletions(-) create mode 100644 build_android.sh diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index cf02bbbe..484434a9 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -104,38 +104,36 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - - uses: subosito/flutter-action@v2 + - name: Setup Android SDK + uses: android-actions/setup-android@v3 + - uses: nttld/setup-ndk@v1 with: - flutter-version: '3.3.0' - channel: 'stable' - cache: true - - run: flutter --version - - name: Compile + ndk-version: r21e + local-cache: true + add-to-path: false + - name: Compile Shared Library run: | - python3 amalgamate.py - cd plugins/flutter/example - flutter build apk --split-debug-info=.debug-info --split-per-abi - cd build/app/outputs/flutter-apk + bash build_android.sh arm64-v8a + bash build_android.sh armeabi-v7a + bash build_android.sh x86_64 + mkdir -p output/android/arm64-v8a mkdir -p output/android/armeabi-v7a mkdir -p output/android/x86_64 - unzip -q app-arm64-v8a-release.apk -d tmp - mv tmp/lib/arm64-v8a/libpocketpy.so output/android/arm64-v8a/libpocketpy.so - rm -rf tmp - unzip -q app-armeabi-v7a-release.apk -d tmp - mv tmp/lib/armeabi-v7a/libpocketpy.so output/android/armeabi-v7a/libpocketpy.so - rm -rf tmp - unzip -q app-x86_64-release.apk -d tmp - mv tmp/lib/x86_64/libpocketpy.so output/android/x86_64/libpocketpy.so - rm -rf tmp + + cp build/android/arm64-v8a/libpocketpy.so output/android/arm64-v8a + cp build/android/armeabi-v7a/libpocketpy.so output/android/armeabi-v7a + cp build/android/x86_64/libpocketpy.so output/android/x86_64 + env: + ANDROID_NDK_HOME: ${{ steps.setup-ndk.outputs.ndk-path }} - uses: actions/upload-artifact@v3 with: - path: plugins/flutter/example/build/app/outputs/flutter-apk/output + path: output build_ios: runs-on: macos-latest steps: - uses: actions/checkout@v3 - - name: Compile and Test + - name: Compile Static Library run: | git clone https://github.com/leetal/ios-cmake --depth 1 cp ios-cmake/ios.toolchain.cmake . diff --git a/CMakeLists.txt b/CMakeLists.txt index 9a214aef..72f43a27 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -28,9 +28,9 @@ elseif(MSVC) else() set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fexceptions -O2") - # -Wshorten-64-to-32 for apple + # disable -Wshorten-64-to-32 for apple if(APPLE) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wshorten-64-to-32") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-shorten-64-to-32") endif() endif() diff --git a/build_android.sh b/build_android.sh new file mode 100644 index 00000000..7e82501a --- /dev/null +++ b/build_android.sh @@ -0,0 +1,14 @@ +# if no $1 default arm64-v8a +if [ -z $1 ]; then + $1=arm64-v8a +fi + +mkdir -p build/android/$1 +cd build/android/$1 + +cmake \ + -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake \ + -DANDROID_ABI=$1 \ + -DANDROID_PLATFORM=android-22 \ + ../../.. + -DPK_BUILD_SHARED_LIB=ON -DPK_USE_CJSON=ON -DPK_USE_BOX2D=ON