diff --git a/app/build.gradle b/app/build.gradle index 1588ec59..a38b75a2 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -39,7 +39,6 @@ android { cppFlags '-std=c++17 -fexceptions -Wno-error=format-security -fopenmp' // cppFlags '-std=c++17 -Wno-error=format-security' // arguments "-DANDROID_STL=c++_shared" - arguments "-DNCNN_DISABLE_EXCEPTION=OFF", "-DTERM_CORE_ROOT=" + coreroot, "-DOpenCV_DIR=" + opencvsdk + "/sdk/native/jni", "-DHDRPLUS_ROOT=" + hdrplusroot, "-DNCNN_ROOT=" + ncnnroot, "-DHALIDE_ROOT=" + halideroot abiFilters 'arm64-v8a', 'armeabi-v7a' // setAbiFilters(['arm64-v8a']) } @@ -75,15 +74,34 @@ android { } } - splits { - boolean isReleaseTask = gradle.startParameter.taskNames.any { it.contains("Release") } - // enabled on release build - abi { - enable isReleaseTask - reset() - include "armeabi-v7a", "arm64-v8a" - // include "arm64-v8a" - universalApk false + flavorDimensions "apps" + productFlavors { + N938 { + dimension = "apps" + externalNativeBuild { + cmake { + arguments "-DUSING_N938=1", "-DNCNN_DISABLE_EXCEPTION=OFF", "-DTERM_CORE_ROOT=" + coreroot, "-DOpenCV_DIR=" + opencvsdk + "/sdk/native/jni", "-DHDRPLUS_ROOT=" + hdrplusroot, "-DNCNN_ROOT=" + ncnnroot, "-DHALIDE_ROOT=" + halideroot + abiFilters "armeabi-v7a" + } + } + } + RP { + dimension = "apps" + externalNativeBuild { + cmake { + arguments "-DUSING_PLZ=1", "-DNCNN_DISABLE_EXCEPTION=OFF", "-DTERM_CORE_ROOT=" + coreroot, "-DOpenCV_DIR=" + opencvsdk + "/sdk/native/jni", "-DHDRPLUS_ROOT=" + hdrplusroot, "-DNCNN_ROOT=" + ncnnroot, "-DHALIDE_ROOT=" + halideroot + abiFilters "arm64-v8a" + } + } + } + WP { + dimension = "apps" + externalNativeBuild { + cmake { + arguments "-DNCNN_DISABLE_EXCEPTION=OFF", "-DTERM_CORE_ROOT=" + coreroot, "-DOpenCV_DIR=" + opencvsdk + "/sdk/native/jni", "-DHDRPLUS_ROOT=" + hdrplusroot, "-DNCNN_ROOT=" + ncnnroot, "-DHALIDE_ROOT=" + halideroot + abiFilters "arm64-v8a" + } + } } } @@ -91,15 +109,19 @@ android { variant.outputs.all { output -> if (outputFileName.endsWith('.apk')) { def buildTypeFlag = "dbg" + def flavor = variant.flavorName def prevFileName = "mpapp" + def buildType = variant.buildType if(variant.buildType.name.equals('release')) { buildTypeFlag = "rel" } - def abi = output.getFilter(com.android.build.OutputFile.ABI) - if (abi == null) abi = "all" - if (abi.contains("v7a")) prevFileName = "N938" - def fileName = "${prevFileName}_v${defaultConfig.versionName}_${buildTypeFlag}_${new Date(System.currentTimeMillis()).format("yyyyMMdd")}_${abi}.apk" + if (flavor.equals("N938")) prevFileName = "N938" + else if (flavor.equals("RP")) prevFileName = "rpapp" + def fileName = "${prevFileName}_v${defaultConfig.versionName}_${buildTypeFlag}_${new Date(System.currentTimeMillis()).format("yyyyMMdd")}.apk" + def outputDir = new File("${project.buildDir}/${buildType}") outputFileName = fileName + + // variant.getPackageApplication().outputDirectory = outputDir // new File(project.rootDir.absolutePath + "/app/build/") } } } diff --git a/app/src/main/cpp/CMakeLists.txt b/app/src/main/cpp/CMakeLists.txt index 9d18a0af..59b29b0e 100644 --- a/app/src/main/cpp/CMakeLists.txt +++ b/app/src/main/cpp/CMakeLists.txt @@ -17,12 +17,15 @@ set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS}") add_definitions(-DUSING_ETHERNET) -if(ANDROID_ABI STREQUAL "armeabi-v7a") - add_definitions(-DUSING_N938) -elseif(ANDROID_ABI STREQUAL "arm64-v8a") - # add_definitions(-DUSING_N938) - add_definitions(-DUSING_PLZ) -endif() +# USING_N938 defined in gradle +# USING_PLZ defined in gradle + +#if(ANDROID_ABI STREQUAL "armeabi-v7a") +# add_definitions(-DUSING_N938) +#elseif(ANDROID_ABI STREQUAL "arm64-v8a") +# # add_definitions(-DUSING_N938) +# # add_definitions(-DUSING_PLZ) +#endif() # OUTPUT_DBG_INFO: 输出调试相关信息 add_definitions(-DOUTPUT_DBG_INFO)