You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@weex.apache.org by lu...@apache.org on 2019/09/20 09:35:27 UTC
[incubator-weex] branch master updated: [Android] Split
build.gradle file into 5 files. (#2927)
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 <sh...@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 'alibabaweex@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 'alibabaweex@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