diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 11c831cb9..be55528ee 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -8,7 +8,13 @@ jobs: steps: - name: Set up build environment - run: echo "y" | sudo ${ANDROID_HOME}/tools/bin/sdkmanager --install "ndk;20.0.5594570" + run: sudo apt-get update && sudo apt-get -y install ninja-build + + # Workaround for https://github.com/actions/virtual-environments/issues/3078 + - name: Downgrade CMake + uses: jwlawson/actions-setup-cmake@v1.9 + with: + cmake-version: '3.19.x' - uses: actions/checkout@v2 with: @@ -26,19 +32,19 @@ jobs: - name: Gradle working-directory: shell/android-studio - run: ./gradlew assembleDebug --parallel + run: ./gradlew assembleRelease --parallel - uses: actions/upload-artifact@v2 with: - name: flycast-debug.apk - path: shell/android-studio/flycast/build/outputs/apk/debug/flycast-debug.apk + name: flycast-release.apk + path: shell/android-studio/flycast/build/outputs/apk/release/flycast-release.apk - name: Set up git vars run: | echo GIT_BUILD=`git describe --all --always | sed 's/remotes\/origin/heads/'`-$GITHUB_SHA >> $GITHUB_ENV - name: Clean up - run: rm -f shell/android-studio/flycast/build/outputs/apk/debug/*.json + run: rm -f shell/android-studio/flycast/build/outputs/apk/release/*.json - uses: jakejarvis/s3-sync-action@master with: @@ -48,6 +54,6 @@ jobs: AWS_ACCESS_KEY_ID: AKIAJOZQS4H2PHQWYFCA AWS_SECRET_ACCESS_KEY: ${{ secrets.S3_SECRET_KEY }} AWS_REGION: 'us-east-2' - SOURCE_DIR: 'shell/android-studio/flycast/build/outputs/apk/debug/' + SOURCE_DIR: 'shell/android-studio/flycast/build/outputs/apk/release/' DEST_DIR: android/${{ env.GIT_BUILD }} if: ${{ github.repository == 'flyinghead/flycast' && github.event_name == 'push' }} diff --git a/CMakeLists.txt b/CMakeLists.txt index 563d4a230..c068be123 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -53,8 +53,6 @@ configure_file("${CMAKE_CURRENT_SOURCE_DIR}/core/version.h.in" "${CMAKE_CURRENT_ if(ANDROID) add_library(${PROJECT_NAME} SHARED core/nullDC.cpp) - set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_RELEASE} -O3") - set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_RELEASE} -O3") target_compile_options(${PROJECT_NAME} PRIVATE -fno-stack-protector) set(CMAKE_ANDROID_STL_TYPE "c++_static") elseif(MSVC) @@ -91,11 +89,12 @@ if(OpenMP_CXX_FOUND AND NOT APPLE AND USE_OPENMP) if(MINGW) target_link_libraries(${PROJECT_NAME} PRIVATE "-static -lgomp -lpthread") target_compile_options(${PROJECT_NAME} PRIVATE -fopenmp) + elseif(ANDROID) + # Reference: https://android.googlesource.com/platform/ndk/+/refs/heads/master/tests/device/openmp/CMakeLists.txt + set_target_properties(${PROJECT_NAME} PROPERTIES COMPILE_OPTIONS -fopenmp) + target_link_libraries(${PROJECT_NAME} PRIVATE -fopenmp -static-openmp) else() target_link_libraries(${PROJECT_NAME} PRIVATE OpenMP::OpenMP_CXX) - if(ANDROID_NDK_MAJOR VERSION_GREATER_EQUAL 21) - target_link_libraries(${PROJECT_NAME} PRIVATE -static-openmp) - endif() endif() else() target_compile_definitions(${PROJECT_NAME} PRIVATE TARGET_NO_OPENMP) @@ -111,6 +110,7 @@ add_subdirectory(core/deps/glm) target_link_libraries(${PROJECT_NAME} PRIVATE glm::glm) if(NOT APPLE) + option(BUILD_EXTERNAL "Build external dependencies in /External" OFF) add_subdirectory(core/deps/glslang) target_link_libraries(${PROJECT_NAME} PRIVATE SPIRV) endif() diff --git a/shell/android-studio/build.gradle b/shell/android-studio/build.gradle index c8274d0b5..dc16a262c 100644 --- a/shell/android-studio/build.gradle +++ b/shell/android-studio/build.gradle @@ -5,7 +5,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:4.1.2' + classpath 'com.android.tools.build:gradle:4.2.2' } } diff --git a/shell/android-studio/flycast/build.gradle b/shell/android-studio/flycast/build.gradle index dc205b36c..2fbdffe63 100644 --- a/shell/android-studio/flycast/build.gradle +++ b/shell/android-studio/flycast/build.gradle @@ -50,12 +50,6 @@ android { debug { storeFile file("../debug.keystore") } - release { - storeFile file("../reicast-beta-cd.jks") - storePassword "notasecret" - keyAlias "reicast-upload-key" - keyPassword "notasecret" - } } buildTypes { @@ -70,7 +64,7 @@ android { minifyEnabled true zipAlignEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' - signingConfig signingConfigs.release + signingConfig signingConfigs.debug } } diff --git a/shell/android-studio/gradle/wrapper/gradle-wrapper.properties b/shell/android-studio/gradle/wrapper/gradle-wrapper.properties index d85c2a8ea..89c54bcb4 100644 --- a/shell/android-studio/gradle/wrapper/gradle-wrapper.properties +++ b/shell/android-studio/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-all.zip