diff options
Diffstat (limited to 'misc/ide/jetbrains/build.gradle')
-rw-r--r-- | misc/ide/jetbrains/build.gradle | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/misc/ide/jetbrains/build.gradle b/misc/ide/jetbrains/build.gradle new file mode 100644 index 0000000000..ffcd12cd15 --- /dev/null +++ b/misc/ide/jetbrains/build.gradle @@ -0,0 +1,108 @@ +buildscript { + repositories { + google() + jcenter() + } + dependencies { + classpath 'com.android.tools.build:gradle:3.3.2' + } +} + +allprojects { + repositories { + google() + jcenter() + } +} + +apply plugin: 'com.android.library' + +dependencies { + implementation "com.android.support:support-core-utils:28.0.0" +} + +def pathToRootDir = "../../../" +// Note: Only keep the abis you support to speed up the gradle 'assemble' task. +def supportedAbis = ["armv6", "armv7", "arm64v8", "x86", "x86_64"] + +android { + + lintOptions { + abortOnError false + disable "MissingTranslation", 'UnusedResources' + } + + compileSdkVersion 28 + buildToolsVersion "28.0.3" + useLibrary 'org.apache.http.legacy' + + packagingOptions { + exclude 'META-INF/LICENSE' + exclude 'META-INF/NOTICE' + } + defaultConfig { + minSdkVersion 18 + targetSdkVersion 28 + } + + sourceSets { + main { + manifest.srcFile "AndroidManifest.xml" + java.srcDirs = ["${pathToRootDir}platform/android/java/src"] + res.srcDirs = ["${pathToRootDir}platform/android/java/res"] + aidl.srcDirs = ["${pathToRootDir}platform/android/java/aidl"] + assets.srcDirs = ["${pathToRootDir}platform/android/java/assets"] + } + debug.jniLibs.srcDirs = ["${pathToRootDir}platform/android/java/libs/debug"] + release.jniLibs.srcDirs = ["${pathToRootDir}platform/android/java/libs/release"] + } + + libraryVariants.all { variant -> + variant.outputs.all { output -> + output.outputFileName = "godot-lib.${variant.name}.aar" + } + + def buildType = variant.buildType.name.capitalize() + + def taskPrefix = "" + if (project.path != ":") { + taskPrefix = project.path + ":" + } + + // Disable the externalNativeBuild* task as it would cause build failures since the cmake build + // files is only setup for editing support. + gradle.startParameter.excludedTaskNames += taskPrefix + "externalNativeBuild" + buildType + + // Create tasks to generate the Godot native libraries. + def taskName = "compileGodotNativeLibs" + buildType + def releaseTarget = "release" + if (buildType == "Debug") { + releaseTarget += "_debug" + } + + def abiTaskNames = [] + // Creating gradle tasks to generate the native libraries for the supported abis. + supportedAbis.each { abi -> + def abiTaskName = taskName + abi.capitalize() + abiTaskNames += abiTaskName + tasks.create(name: abiTaskName, type: Exec) { + executable "scons" + args "--directory=${pathToRootDir}", "platform=android", "target=${releaseTarget}", "android_arch=${abi}" + } + } + + // Creating gradle task to run all of the previously generated tasks. + tasks.create(name: taskName, type: GradleBuild) { + tasks = abiTaskNames + } + + // Schedule the tasks so the generated libs are present before the aar file is packaged. + tasks["merge${buildType}JniLibFolders"].dependsOn taskName + } + + externalNativeBuild { + cmake { + path "CMakeLists.txt" + } + } +} |