Преглед на файлове

update android workflow

blueloveTH преди 2 години
родител
ревизия
819ef471b7
променени са 3 файла, в които са добавени 35 реда и са изтрити 23 реда
  1. 19 21
      .github/workflows/main.yml
  2. 2 2
      CMakeLists.txt
  3. 14 0
      build_android.sh

+ 19 - 21
.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 .

+ 2 - 2
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()
 

+ 14 - 0
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