|
|
if (release != 'rtm') {
|
|
|
version += "-$release"
|
|
|
}
|
|
|
|
|
|
if(!npmName)
|
|
|
npmName = name;
|
|
|
|
|
|
if(!["amd", "cjs"].contains(platform))
|
|
|
throw new Exception("Invalid platform specified: $platform");
|
|
|
|
|
|
def moduleTypes = [
|
|
|
"amd": "amd",
|
|
|
"cjs": "commonjs"
|
|
|
]
|
|
|
|
|
|
ext.packageName="$npmScope/$npmName-$platform";
|
|
|
|
|
|
def srcDir = "$projectDir/src"
|
|
|
def typingsDir = "$srcDir/typings"
|
|
|
def distDir = "$buildDir/dist/$platform"
|
|
|
def testDir = "$buildDir/test/$platform"
|
|
|
def moduleType = moduleTypes[platform]
|
|
|
|
|
|
def sourceSets = ["main", "amd", "cjs", "test"];
|
|
|
|
|
|
task printVersion {
|
|
|
doLast {
|
|
|
println "version: $version"
|
|
|
println "packageName: $packageName"
|
|
|
println "platform: $platform"
|
|
|
println "module: $moduleType"
|
|
|
}
|
|
|
}
|
|
|
|
|
|
task clean {
|
|
|
doLast {
|
|
|
delete buildDir
|
|
|
delete "node_modules/$packageName"
|
|
|
delete typingsDir
|
|
|
}
|
|
|
}
|
|
|
|
|
|
task cleanNpm {
|
|
|
doLast {
|
|
|
delete 'node_modules'
|
|
|
}
|
|
|
}
|
|
|
|
|
|
task _npmInstall() {
|
|
|
inputs.file("package.json")
|
|
|
outputs.dir("node_modules")
|
|
|
doLast {
|
|
|
exec {
|
|
|
commandLine 'npm', 'install'
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
sourceSets.each {
|
|
|
def setName = it.capitalize();
|
|
|
|
|
|
def destDir = "$buildDir/compile/$it"
|
|
|
def declDir = "$typingsDir/$it"
|
|
|
def setDir = "$projectDir/src/$it"
|
|
|
|
|
|
task "_copyJs$setName"(type:Copy) {
|
|
|
from "$setDir/js"
|
|
|
into distDir
|
|
|
}
|
|
|
|
|
|
task "_compileTs$setName"(dependsOn: _npmInstall, type:Exec) {
|
|
|
inputs.dir("$setDir/ts")
|
|
|
inputs.file("$srcDir/tsconfig.json")
|
|
|
inputs.file("$setDir/tsconfig.json")
|
|
|
outputs.dir(destDir)
|
|
|
outputs.dir(declDir)
|
|
|
|
|
|
commandLine 'node_modules/.bin/tsc',
|
|
|
'-p', "$setDir/tsconfig.json",
|
|
|
'-m', moduleType,
|
|
|
'--outDir', destDir,
|
|
|
'--declarationDir', declDir
|
|
|
}
|
|
|
|
|
|
task "_buildTs$setName"(dependsOn: "_compileTs$setName", type:Copy) {
|
|
|
from tasks.getByPath("_compileTs$setName");
|
|
|
into distDir
|
|
|
}
|
|
|
}
|
|
|
|
|
|
_compileTsAmd {
|
|
|
dependsOn _buildTsMain
|
|
|
}
|
|
|
|
|
|
_buildTsTest {
|
|
|
into testDir
|
|
|
}
|
|
|
|
|
|
_copyJsTest {
|
|
|
into testDir
|
|
|
}
|
|
|
|
|
|
task _packageMeta(type: Copy) {
|
|
|
inputs.property("version", version)
|
|
|
from('.') {
|
|
|
include '.npmignore', 'readme.md', 'license', 'history.md'
|
|
|
}
|
|
|
from("$srcDir/package.template.json") {
|
|
|
expand project.properties
|
|
|
rename { "package.json" }
|
|
|
}
|
|
|
into distDir
|
|
|
}
|
|
|
|
|
|
task build(dependsOn: [_copyJsMain, _copyJsAmd, _npmInstall, _buildTsMain, _buildTsAmd, _packageMeta]) {
|
|
|
|
|
|
}
|
|
|
|
|
|
_compileTsTest {
|
|
|
dependsOn build
|
|
|
}
|
|
|
|
|
|
task buildTests(dependsOn: [_copyJsTest, _buildTsTest]) {
|
|
|
}
|
|
|
|
|
|
task test(dependsOn: buildTests, type: Exec) {
|
|
|
commandLine 'node', "$testDir/run-amd-tests.js"
|
|
|
}
|
|
|
|
|
|
task pack(dependsOn: build, type: Exec) {
|
|
|
workingDir distDir
|
|
|
|
|
|
commandLine 'npm', 'pack'
|
|
|
}
|