build.gradle
110 lines
| 2.5 KiB
| text/x-groovy
|
GroovyLexer
|
|
r87 | plugins { | |
|
|
r174 | id "org.implab.gradle-typescript" | |
| id "org.implab.gradle-npm-package" | |||
| id "ivy-publish" | |||
|
|
r95 | } | |
|
|
r174 | typescript { | |
| useTsc npm.bin("tsc") | |||
|
|
r90 | ||
|
|
r174 | compilerOptions { | |
| incremental = true | |||
|
|
r89 | } | |
|
|
r59 | } | |
|
|
r174 | def typingsFromMain = { | |
| sets { | |||
| named("compileOnlyTypings") { | |||
| srcDir main.output("typings") | |||
|
|
r99 | } | |
| } | |||
|
|
r92 | } | |
|
|
r174 | variants { | |
| configureEach { variant -> | |||
| def sourceSetLocation = { setName, self -> | |||
| self.sourceSetDir = layout.projectDirectory.dir("src/${setName}") | |||
| self.outputsDir = layout.buildDirectory.dir("${variant.name}/${setName}") | |||
| } | |||
|
|
r47 | ||
|
|
r174 | def main = sources.register("${variant.name}Main", sourceSetLocation.curry("main")) | |
| def test = sources.register("${variant.name}Test", sourceSetLocation.curry("test")) | |||
|
|
r90 | ||
|
|
r174 | sourceSets { | |
| add(main) { | |||
| role "main" | |||
| } | |||
| add(test) { | |||
| role "test" | |||
| } | |||
| } | |||
|
|
r93 | } | |
|
|
r174 | register("browser") { | |
| def srcAmd = sources.register("amd", typingsFromMain) | |||
| def srcTestAmd = sources.register("testAmd", typingsFromMain) | |||
| // advice to all TypescriptCompile tasks | |||
| typescriptCompile { | |||
| baseTsConfig = file("src/tsconfig.browser.json") | |||
| } | |||
|
|
r90 | ||
|
|
r174 | // creates npmPackBrowser, npmPublishBrowser | |
| npmPackage { | |||
| usePackageJson() | |||
| metadata { | |||
| name = "@implab/core-amd" | |||
| } | |||
| content { | |||
| from sourceSets.byRoles("main").allOutputs() | |||
| } | |||
| } | |||
|
|
r90 | ||
|
|
r174 | sourceSets { | |
| add(srcAmd) { | |||
| role "main" | |||
| } | |||
| add(srcTestAmd) { | |||
| role "test" | |||
| } | |||
| } | |||
| } | |||
| register("node") { | |||
| def srcCjs = sources.register("cjs", typingsFromMain) | |||
| def srcTestCjs = sources.register("testCjs", typingsFromMain) | |||
|
|
r91 | ||
|
|
r174 | compileTasks { | |
| baseTsConfig = file("src/tsconfig.node.json") | |||
| } | |||
| npmPackage { | |||
| name = "@implab/core" | |||
| } | |||
| sourceSets { | |||
| add srcAmd | |||
| add srcTestAmd | |||
| } | |||
|
|
r98 | } | |
|
|
r174 | npmPackage { | |
| usePackageJson() | |||
| metadata { | |||
| name = "@implab/core" | |||
| version = project.provider { project.version.toString() } | |||
|
|
r92 | } | |
|
|
r96 | } | |
|
|
r95 | publishing { | |
| publications { | |||
| local(IvyPublication) { | |||
| artifact(packJsTar) { | |||
| type = "js" | |||
| } | |||
| } | |||
| } | |||
| repositories { | |||
| ivy { | |||
| url "ivy-repo" | |||
| } | |||
| } | |||
|
|
r90 | } |
