This is an automated email from the ASF dual-hosted git repository. luckychen pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-weex.git
The following commit(s) were added to refs/heads/master by this push: new c542823 [Android] Split build.gradle file into 5 files. (#2927) c542823 is described below commit c542823029adc92cecebbf8eb66a17d127b15e99 Author: YorkShen <shenyua...@gmail.com> AuthorDate: Fri Sep 20 17:35:17 2019 +0800 [Android] Split build.gradle file into 5 files. (#2927) --- android/build.gradle | 1 + android/sdk/build.gradle | 228 +------------------------------- android/sdk/buildSrc/asan.gradle | 52 ++++++++ android/sdk/buildSrc/checkStyle.gradle | 14 ++ android/sdk/buildSrc/jcenter.gradle | 66 +++++++++ android/sdk/buildSrc/packageName.gradle | 33 +++++ android/sdk/buildSrc/unstripped.gradle | 50 +++++++ 7 files changed, 223 insertions(+), 221 deletions(-) diff --git a/android/build.gradle b/android/build.gradle index 3112b63..6a3c4db 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -58,6 +58,7 @@ ext { fastjsonLibVersion="1.1.70.android" //Default value for disableCov is false disableCov = project.hasProperty("disableCov") && disableCov.equals("true") + useApachePackageName = project.hasProperty('apachePackageName') ? project.property('apachePackageName').toBoolean() : true implementFromWeex = true } diff --git a/android/sdk/build.gradle b/android/sdk/build.gradle index e6c6b75..d14f25c 100755 --- a/android/sdk/build.gradle +++ b/android/sdk/build.gradle @@ -26,20 +26,11 @@ apply plugin: 'checkstyle' apply plugin: 'com.jfrog.bintray' apply plugin: 'com.github.dcendents.android-maven' -task checkstyle(type: Checkstyle) { - configFile file("${project.rootDir}/sdk/config/quality/checkstyle.xml") // Where my checkstyle config is... - // configProperties.checkstyleSuppressionsPath = file("${project.rootDir}/config/quality/checkstyle/suppressions.xml").absolutePath // Where is my suppressions file for checkstyle is... - source 'src' - include '**/*.java' - exclude '**/gen/**' - exclude '**/test/**' - exclude '**/com/taobao/weex/dom/flex/**' - classpath = files() -} - -checkstyle { - toolVersion = '6.9' -} +apply from: 'buildSrc/asan.gradle' +apply from: 'buildSrc/jcenter.gradle' +apply from: 'buildSrc/unstripped.gradle' +apply from: 'buildSrc/checkStyle.gradle' +apply from: 'buildSrc/packageName.gradle' version = project.hasProperty('weexVersion') ? project.getProperty('weexVersion') : '0.26.0.1' @@ -62,8 +53,6 @@ if (!project.hasProperty('ignoreVersionCheck') || !project.getProperty('ignoreVe } } -def useApachePackageName = project.hasProperty('apachePackageName') ? project.property('apachePackageName').toBoolean() : true - android { compileSdkVersion project.compileSdkVersion resourcePrefix "weex" @@ -114,7 +103,7 @@ android { def buildRuntimeApi = project.hasProperty('buildRuntimeApi') ? project.property('buildRuntimeApi') : false - defaultPublishConfig useApachePackageName ? 'apacheRelease' : 'legacyRelease' + defaultPublishConfig project.useApachePackageName ? 'apacheRelease' : 'legacyRelease' defaultConfig { buildConfigField "String", "buildJavascriptFrameworkVersion", "\"${jsfmVersion}\"" @@ -188,7 +177,7 @@ android { sourceSets { main.assets.srcDirs = ['assets'] main.jniLibs.srcDirs = ['libs'] - if(!useApachePackageName){ + if(!project.useApachePackageName){ main.java.srcDirs = ['src/legacyRelease/java'] main.manifest.srcFile (new File('src/legacyRelease/AndroidManifest.xml')) } @@ -267,207 +256,4 @@ task weex_core_license(type: com.hierynomus.gradle.license.tasks.LicenseFormat) 'Source/include/JavaScriptCore/**/*.cpp']) } -def ndkDir = '' -task checkNdkVersion() { - def rootDir = project.rootDir - def localProperties = new File(rootDir, "local.properties") - if (localProperties.exists()) { - Properties properties = new Properties() - localProperties.withInputStream { instr -> - properties.load(instr) - } - ndkDir = properties.getProperty('ndk.dir') - } -} - -def siteUrl = 'https://weex.incubator.apache.org' -def gitUrl = 'https://github.com/apache/incubator-weex.git' -group = "com.taobao.android" -install { - repositories.mavenInstaller { - // This generates POM.xml with proper parameters - pom { - project { - packaging 'aar' - name 'weex_sdk' - url siteUrl - licenses { - license { - name 'The Apache Software License, Version 2.0' - url 'https://www.apache.org/licenses/LICENSE-2.0.txt' - } - } - developers { - developer { - id 'weex alibaba' - name 'weex alibaba' - email 'alibabaw...@gmail.com' - } - } - scm { - connection gitUrl - developerConnection gitUrl - url siteUrl - } - } - } - } -} - -bintray { - configurations = ['archives'] - user = project.hasProperty('bintrayUser') ? project.property('bintrayUser') : System.getenv('BINTRAY_USER') - key = project.hasProperty('bintrayApiKey') ? project.property('bintrayApiKey') : System.getenv('BINTRAY_API_KEY') - pkg { - repo = "maven" - name = "weex_sdk" - websiteUrl = siteUrl - vcsUrl = gitUrl - licenses = ["Apache-2.0"] - publish = true - version { - //The version to be published - name = project.version - vcsTag = project.version - } - } -} -artifactory { - contextUrl = 'http://oss.jfrog.org/artifactory' - publish { - repository { - repoKey = 'oss-snapshot-local' - username = bintray.user - password = bintray.key - maven = true - } - defaults { - publishConfigs('archives') - } - } -} -def asanAbi = project.hasProperty('asanAbi') ? project.getProperty('asanAbi') : 'arm64-v8a' -task clearASanLibs(type: Delete){ - delete project.android.sourceSets.main.resources.srcDirs - delete fileTree(project.android.sourceSets.main.jniLibs.srcDirs[-1]) { - include '**/libclang_rt.asan-*-android.so' - } -} -task copyWrapScript(type: Copy,dependsOn: clearASanLibs) { - if(project.hasProperty('enableASan') && "true" == project.getProperty('enableASan')) { - from 'wrap.sh' - into new File(project.android.sourceSets.main.resources.srcDirs[-1], "lib") - eachFile { - it.path = "${asanAbi}/${it.name}" - } - } -} -task copyASanLib(type: Copy,dependsOn: copyWrapScript){ - if(project.hasProperty('enableASan') && "true" == project.getProperty('enableASan')) { - def ndkPath = ndkDir == '' ? System.getenv("ANDROID_NDK_HOME"):ndkDir - def dir = ndkPath + '/toolchains/llvm/prebuilt/' - def renamedAbi = asanAbi - if (asanAbi == "armeabi-v7a" || asanAbi == "armeabi") - renamedAbi = "arm" - if (asanAbi == "arm64-v8a") - renamedAbi = "aarch64" - if (asanAbi == "x86") - renamedAbi = "i686" - new File(dir).eachFileRecurse { file -> - if (file.name == 'libclang_rt.asan-' + renamedAbi + '-android.so') - from file.absolutePath - into project.android.sourceSets.main.jniLibs.srcDirs[-1] - eachFile { - it.path = "${asanAbi}/${it.name}" - } - includeEmptyDirs = false - } - } -} - -task copyAndRenamePackage(type: Copy) { - if(!useApachePackageName) { - doFirst { - delete new File('src/legacyRelease/java') - } - from new File('src/main/java/com/taobao/weex') - into new File('src/legacyRelease/java/org/apache/weex') - filter { String line -> - line.replaceAll(/^(package com\.taobao)(\.weex.*)$/, { _, packageName, suffix -> - "package org.apache${suffix}" - }).replaceAll(/^(import com\.taobao)(\.weex.*)$/, { _, packageName, suffix -> - "import org.apache${suffix}" - }).replaceAll(/^(import static com\.taobao)(\.weex.*)$/, { _, packageName, suffix -> - "import static org.apache${suffix}" - }) - } - } -} - -task copyManifest(type: Copy){ - if(!useApachePackageName){ - doFirst { - delete new File('src/legacyRelease/AndroidManifest.xml') - } - from new File('src/main/AndroidManifest.xml') - into new File('src/legacyRelease') - filter { String line -> - line.replaceAll(/(com\.taobao)(\.weex.*)/, { _, packageName, suffix -> - "org.apache${suffix}" - }) - } - } -} - -def processNativeLibs = { unstripped, stripped -> - copy{ - from unstripped - into new File(project.buildDir, "unstrippedSo") - include '**/libweexjss.so', '**/libweexcore.so' - eachFile { - it.path = "${it.relativePath.segments[-2]}_${it.name}" - } - } - - if(project.hasProperty('supportArmeabi') && "true" == project.getProperty('supportArmeabi')){ - //Copy stripped shared library from armeabi-v7a into armeabi - copy{ - from stripped - into project.android.sourceSets.main.jniLibs.srcDirs[-1] - include '**/armeabi-v7a/**' - exclude '**/libc++_shared.so' - eachFile { - it.path = "armeabi/${it.name}" - } - } - - //Copy Unstripped shared library from armeabi-v7a into armeabi - copy{ - from unstripped - into new File(project.buildDir, "unstrippedSo") - include '**/armeabi-v7a/libweexjss.so', '**/armeabi-v7a/libweexcore.so' - eachFile { - it.path = "armeabi_${it.name}" - } - } - } -} - -afterEvaluate { project -> - transformNativeLibsWithStripDebugSymbolForRelease << { - processNativeLibs transformNativeLibsWithMergeJniLibsForRelease, - transformNativeLibsWithStripDebugSymbolForRelease - } - - transformNativeLibsWithStripDebugSymbolForApacheRelease << { - processNativeLibs transformNativeLibsWithMergeJniLibsForApacheRelease, - transformNativeLibsWithStripDebugSymbolForApacheRelease - } - - transformNativeLibsWithStripDebugSymbolForLegacyRelease << { - processNativeLibs transformNativeLibsWithMergeJniLibsForLegacyRelease, - transformNativeLibsWithStripDebugSymbolForLegacyRelease - } -} - preBuild.dependsOn copyAndRenamePackage, copyManifest, copyASanLib, checkNdkVersion, licenseFormat \ No newline at end of file diff --git a/android/sdk/buildSrc/asan.gradle b/android/sdk/buildSrc/asan.gradle new file mode 100644 index 0000000..1413f28 --- /dev/null +++ b/android/sdk/buildSrc/asan.gradle @@ -0,0 +1,52 @@ +def asanAbi = project.hasProperty('asanAbi') ? project.getProperty('asanAbi') : 'arm64-v8a' +def ndkDir = '' + +task checkNdkVersion() { + def rootDir = project.rootDir + def localProperties = new File(rootDir, "local.properties") + if (localProperties.exists()) { + Properties properties = new Properties() + localProperties.withInputStream { instr -> + properties.load(instr) + } + ndkDir = properties.getProperty('ndk.dir') + } +} + +task clearASanLibs(type: Delete){ + delete project.android.sourceSets.main.resources.srcDirs + delete fileTree(project.android.sourceSets.main.jniLibs.srcDirs[-1]) { + include '**/libclang_rt.asan-*-android.so' + } +} +task copyWrapScript(type: Copy,dependsOn: clearASanLibs) { + if(project.hasProperty('enableASan') && "true" == project.getProperty('enableASan')) { + from 'wrap.sh' + into new File(project.android.sourceSets.main.resources.srcDirs[-1], "lib") + eachFile { + it.path = "${asanAbi}/${it.name}" + } + } +} +task copyASanLib(type: Copy,dependsOn: copyWrapScript){ + if(project.hasProperty('enableASan') && "true" == project.getProperty('enableASan')) { + def ndkPath = ndkDir == '' ? System.getenv("ANDROID_NDK_HOME"):ndkDir + def dir = ndkPath + '/toolchains/llvm/prebuilt/' + def renamedAbi = asanAbi + if (asanAbi == "armeabi-v7a" || asanAbi == "armeabi") + renamedAbi = "arm" + if (asanAbi == "arm64-v8a") + renamedAbi = "aarch64" + if (asanAbi == "x86") + renamedAbi = "i686" + new File(dir).eachFileRecurse { file -> + if (file.name == 'libclang_rt.asan-' + renamedAbi + '-android.so') + from file.absolutePath + into project.android.sourceSets.main.jniLibs.srcDirs[-1] + eachFile { + it.path = "${asanAbi}/${it.name}" + } + includeEmptyDirs = false + } + } +} \ No newline at end of file diff --git a/android/sdk/buildSrc/checkStyle.gradle b/android/sdk/buildSrc/checkStyle.gradle new file mode 100644 index 0000000..09f5f79 --- /dev/null +++ b/android/sdk/buildSrc/checkStyle.gradle @@ -0,0 +1,14 @@ +task checkstyle(type: Checkstyle) { + configFile file("${project.rootDir}/sdk/config/quality/checkstyle.xml") // Where my checkstyle config is... + // configProperties.checkstyleSuppressionsPath = file("${project.rootDir}/config/quality/checkstyle/suppressions.xml").absolutePath // Where is my suppressions file for checkstyle is... + source 'src' + include '**/*.java' + exclude '**/gen/**' + exclude '**/test/**' + exclude '**/com/taobao/weex/dom/flex/**' + classpath = files() +} + +checkstyle { + toolVersion = '6.9' +} \ No newline at end of file diff --git a/android/sdk/buildSrc/jcenter.gradle b/android/sdk/buildSrc/jcenter.gradle new file mode 100644 index 0000000..27e4dfc --- /dev/null +++ b/android/sdk/buildSrc/jcenter.gradle @@ -0,0 +1,66 @@ +def siteUrl = 'https://weex.incubator.apache.org' +def gitUrl = 'https://github.com/apache/incubator-weex.git' +group = "com.taobao.android" +install { + repositories.mavenInstaller { + // This generates POM.xml with proper parameters + pom { + project { + packaging 'aar' + name 'weex_sdk' + url siteUrl + licenses { + license { + name 'The Apache Software License, Version 2.0' + url 'https://www.apache.org/licenses/LICENSE-2.0.txt' + } + } + developers { + developer { + id 'weex alibaba' + name 'weex alibaba' + email 'alibabaw...@gmail.com' + } + } + scm { + connection gitUrl + developerConnection gitUrl + url siteUrl + } + } + } + } +} + +bintray { + configurations = ['archives'] + user = project.hasProperty('bintrayUser') ? project.property('bintrayUser') : System.getenv('BINTRAY_USER') + key = project.hasProperty('bintrayApiKey') ? project.property('bintrayApiKey') : System.getenv('BINTRAY_API_KEY') + pkg { + repo = "maven" + name = "weex_sdk" + websiteUrl = siteUrl + vcsUrl = gitUrl + licenses = ["Apache-2.0"] + publish = true + version { + //The version to be published + name = project.version + vcsTag = project.version + } + } +} +artifactory { + contextUrl = 'http://oss.jfrog.org/artifactory' + publish { + repository { + repoKey = 'oss-snapshot-local' + username = bintray.user + password = bintray.key + maven = true + } + defaults { + publishConfigs('archives') + } + } +} \ No newline at end of file diff --git a/android/sdk/buildSrc/packageName.gradle b/android/sdk/buildSrc/packageName.gradle new file mode 100644 index 0000000..81e9b80 --- /dev/null +++ b/android/sdk/buildSrc/packageName.gradle @@ -0,0 +1,33 @@ +task copyAndRenamePackage(type: Copy) { + if(!project.useApachePackageName) { + doFirst { + delete new File('src/legacyRelease/java') + } + from new File('src/main/java/com/taobao/weex') + into new File('src/legacyRelease/java/org/apache/weex') + filter { String line -> + line.replaceAll(/^(package com\.taobao)(\.weex.*)$/, { _, packageName, suffix -> + "package org.apache${suffix}" + }).replaceAll(/^(import com\.taobao)(\.weex.*)$/, { _, packageName, suffix -> + "import org.apache${suffix}" + }).replaceAll(/^(import static com\.taobao)(\.weex.*)$/, { _, packageName, suffix -> + "import static org.apache${suffix}" + }) + } + } +} + +task copyManifest(type: Copy){ + if(!project.useApachePackageName){ + doFirst { + delete new File('src/legacyRelease/AndroidManifest.xml') + } + from new File('src/main/AndroidManifest.xml') + into new File('src/legacyRelease') + filter { String line -> + line.replaceAll(/(com\.taobao)(\.weex.*)/, { _, packageName, suffix -> + "org.apache${suffix}" + }) + } + } +} diff --git a/android/sdk/buildSrc/unstripped.gradle b/android/sdk/buildSrc/unstripped.gradle new file mode 100644 index 0000000..b195a60 --- /dev/null +++ b/android/sdk/buildSrc/unstripped.gradle @@ -0,0 +1,50 @@ +def processNativeLibs = { unstripped, stripped -> + copy{ + from unstripped + into new File(project.buildDir, "unstrippedSo") + include '**/libweexjss.so', '**/libweexcore.so' + eachFile { + it.path = "${it.relativePath.segments[-2]}_${it.name}" + } + } + + if(project.hasProperty('supportArmeabi') && "true" == project.getProperty('supportArmeabi')){ + //Copy stripped shared library from armeabi-v7a into armeabi + copy{ + from stripped + into project.android.sourceSets.main.jniLibs.srcDirs[-1] + include '**/armeabi-v7a/**' + exclude '**/libc++_shared.so' + eachFile { + it.path = "armeabi/${it.name}" + } + } + + //Copy Unstripped shared library from armeabi-v7a into armeabi + copy{ + from unstripped + into new File(project.buildDir, "unstrippedSo") + include '**/armeabi-v7a/libweexjss.so', '**/armeabi-v7a/libweexcore.so' + eachFile { + it.path = "armeabi_${it.name}" + } + } + } +} + +afterEvaluate { project -> + transformNativeLibsWithStripDebugSymbolForRelease << { + processNativeLibs transformNativeLibsWithMergeJniLibsForRelease, + transformNativeLibsWithStripDebugSymbolForRelease + } + + transformNativeLibsWithStripDebugSymbolForApacheRelease << { + processNativeLibs transformNativeLibsWithMergeJniLibsForApacheRelease, + transformNativeLibsWithStripDebugSymbolForApacheRelease + } + + transformNativeLibsWithStripDebugSymbolForLegacyRelease << { + processNativeLibs transformNativeLibsWithMergeJniLibsForLegacyRelease, + transformNativeLibsWithStripDebugSymbolForLegacyRelease + } +} \ No newline at end of file