blob: 232c30d2743278d90671ef2570283a631d695da6 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
task copyAndRenamePackage(type: Copy) {
if(!project.useApachePackageName) {
inputs.dir new File('src/main/java/org/apache/weex')
from new File('src/main/java/org/apache/weex')
into new File('src/legacyRelease/java/com/taobao/weex')
filter { String line ->
line.replaceAll(/^(package org\.apache)(\.weex.*)$/, { _, packageName, suffix ->
"package com.taobao${suffix}"
}).replaceAll(/^(import org\.apache)(\.weex.*)$/, { _, packageName, suffix ->
"import com.taobao${suffix}"
}).replaceAll(/^(import static org\.apache)(\.weex.*)$/, { _, packageName, suffix ->
"import static com.taobao${suffix}"
})
}
}
}
task copyManifest(type: Copy){
if(!project.useApachePackageName){
inputs.file new File('src/main/AndroidManifest.xml')
from new File('src/main/AndroidManifest.xml')
into new File('src/legacyRelease')
filter { String line ->
line.replaceAll(/(org\.apache)(\.weex.*)/, { _, packageName, suffix ->
"com.taobao${suffix}"
})
}
}
}
task copyProguard(type: Copy){
if(!project.useApachePackageName){
inputs.file new File('proguard-rules.pro')
from new File('proguard-rules.pro')
into new File('.')
rename 'proguard-rules.pro', 'proguard-rules-legacy.pro'
filter { String line ->
line.replaceAll(/(org\.apache)(\.weex.*)/, { _, packageName, suffix ->
"com.taobao${suffix}"
})
}
}
}
task(cleanCopyProguard, overwrite: true, type: Delete){
delete 'proguard-rules-legacy.pro'
}
task copyOtherCppFile(type: Copy){
if(!project.useApachePackageName) {
inputs.dir new File('../../weex_core')
from new File('../../weex_core')
into new File('src/legacyRelease/cpp')
exclude '**/*.cpp', '**/*.cc', '**/*.c', '**/*.h', '**/*.hpp'
}
}
task copyAndRenameCppSourceFile(type: Copy){
dependsOn copyOtherCppFile, copyJSCHeaderToWeexCore
if(!project.useApachePackageName) {
inputs.dir new File('../../weex_core')
from new File('../../weex_core')
into new File('src/legacyRelease/cpp')
include '**/*.cpp', '**/*.cc', '**/*.c', '**/*.h', '**/*.hpp'
filter { String line ->
line.replaceAll('(.*".*)(org/apache/weex)(.*".*)', { _, prefix, packageName, suffix ->
logger.info("Content substation in .cpp/.h files happpened, \n Input: ${line}, \n Output: ${prefix}com/taobao/weex${suffix}")
"${prefix}com/taobao/weex${suffix}"
})
}
}
}
gradle.taskGraph.beforeTask { Task task ->
if(task.name == 'assembleApacheRelease'){
throw new StopActionException('Not Supported. assembleApacheRelease is not supported, please use the following command instead.\n assembleRelease -PapachePackageName="true"')
}
else if(task.name == 'assembleLegacyRelease'){
throw new StopActionException('Not Supported. assembleLegacyRelease is not supported, please use the following command instead.\n assembleRelease -PapachePackageName="false"')
}
}
preBuild.dependsOn copyAndRenameCppSourceFile, copyAndRenamePackage, copyManifest, copyProguard
clean.dependsOn cleanCopyAndRenamePackage, cleanCopyManifest, cleanCopyProguard, cleanCopyOtherCppFile, cleanCopyAndRenameCppSourceFile