Files
NativeScript/widgets/build.gradle

111 lines
2.2 KiB
Groovy

import groovy.json.JsonSlurper //used to parse package.json
import groovy.json.JsonBuilder
import groovy.json.JsonOutput
def isWinOs = System.properties['os.name'].toLowerCase().contains('windows')
apply plugin: 'com.android.library'
def computeCompuleSdkVersion () {
if(project.hasProperty("compileSdk")) {
return compileSdk
}
else {
return 23
}
}
def computeBuildToolsVersion() {
if(project.hasProperty("buildToolsVersion")) {
return buildToolsVersion
}
else {
return "22.0.1"
}
}
def computeTargetSdkVersion() {
if(project.hasProperty("targetSdk")) {
return targetSdk
}
else {
return 23
}
}
android {
compileSdkVersion computeCompuleSdkVersion()
buildToolsVersion computeBuildToolsVersion()
defaultConfig {
minSdkVersion 17
targetSdkVersion computeTargetSdkVersion()
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.android.support:support-v4:+'
}
task cleanDistDir (type: Delete) {
delete "../dist/"
}
task fixVersion << {
if(project.hasProperty("PACKAGE_VERSION")) {
def inputFile = new File("../package.json")
def json = new JsonSlurper().parseText(inputFile.text)
json.version = json.version + "-" + PACKAGE_VERSION
def jb = new JsonBuilder(json);
inputFile.text = JsonOutput.prettyPrint(jb.toString())
}
}
task copyAar << {
copy {
from "../package.json"
into "../dist"
}
copy {
from "build/outputs/aar/widgets-release.aar"
into "../dist/platforms/android/"
}
}
task revertPackageJson (type: Exec) {
if(isWinOs) {
commandLine "cmd", "/c", "git", "checkout", "--", "../package.json"
}
else {
commandLine "git", "checkout", "--", "../package.json"
}
}
task packFramework (type: Exec) {
workingDir "../dist"
if(isWinOs) {
commandLine "cmd", "/c", "npm", "pack"
}
else {
commandLine "npm", "pack"
}
}
assembleRelease.dependsOn(cleanDistDir)
fixVersion.dependsOn(assembleRelease)
copyAar.dependsOn(fixVersion)
revertPackageJson.dependsOn(copyAar)
packFramework.dependsOn(revertPackageJson)