build.gradle 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. apply plugin: 'com.android.library'
  2. apply plugin: 'kotlin-android'
  3. dependencies {
  4. implementation libraries.supportCoreUtils
  5. implementation libraries.kotlinStdLib
  6. implementation libraries.v4Support
  7. }
  8. def pathToRootDir = "../../../../"
  9. android {
  10. compileSdkVersion versions.compileSdk
  11. buildToolsVersion versions.buildTools
  12. defaultConfig {
  13. minSdkVersion versions.minSdk
  14. targetSdkVersion versions.targetSdk
  15. }
  16. compileOptions {
  17. sourceCompatibility versions.javaVersion
  18. targetCompatibility versions.javaVersion
  19. }
  20. lintOptions {
  21. abortOnError false
  22. disable 'MissingTranslation', 'UnusedResources'
  23. }
  24. packagingOptions {
  25. exclude 'META-INF/LICENSE'
  26. exclude 'META-INF/NOTICE'
  27. // Should be uncommented for development purpose within Android Studio
  28. // doNotStrip '**/*.so'
  29. }
  30. sourceSets {
  31. main {
  32. manifest.srcFile 'AndroidManifest.xml'
  33. java.srcDirs = ['src']
  34. res.srcDirs = ['res']
  35. aidl.srcDirs = ['aidl']
  36. assets.srcDirs = ['assets']
  37. }
  38. debug.jniLibs.srcDirs = ['libs/debug']
  39. release.jniLibs.srcDirs = ['libs/release']
  40. }
  41. libraryVariants.all { variant ->
  42. variant.outputs.all { output ->
  43. output.outputFileName = "godot-lib.${variant.name}.aar"
  44. }
  45. def buildType = variant.buildType.name.capitalize()
  46. def releaseTarget = buildType.toLowerCase()
  47. if (releaseTarget == null || releaseTarget == "") {
  48. throw new GradleException("Invalid build type: " + buildType)
  49. }
  50. if (!supportedAbis.contains(defaultAbi)) {
  51. throw new GradleException("Invalid default abi: " + defaultAbi)
  52. }
  53. // Creating gradle task to generate the native libraries for the default abi.
  54. def taskName = getSconsTaskName(buildType)
  55. tasks.create(name: taskName, type: Exec) {
  56. executable "scons" + sconsExt
  57. args "--directory=${pathToRootDir}", "platform=android", "target=${releaseTarget}", "android_arch=${defaultAbi}", "-j" + Runtime.runtime.availableProcessors()
  58. }
  59. // Schedule the tasks so the generated libs are present before the aar file is packaged.
  60. tasks["merge${buildType}JniLibFolders"].dependsOn taskName
  61. }
  62. }