diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index 801f011f311..dbad2287e79 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -37,6 +37,7 @@ extra["intellijReleaseType"] = "releases" // or "snapshots" extra["versions.intellijSdk"] = "172.4343.14" extra["versions.androidBuildTools"] = "r23.0.1" extra["versions.androidDxSources"] = "5.0.0_r2" +extra["versions.idea.NodeJS"] = "172.3757.32" extra["customDepsRepo"] = "$rootDir/repo" extra["customDepsOrg"] = "kotlin.build.custom.deps" diff --git a/buildSrc/prepare-deps/intellij-sdk/build.gradle.kts b/buildSrc/prepare-deps/intellij-sdk/build.gradle.kts index 698d5a45b47..8ef17369a3d 100644 --- a/buildSrc/prepare-deps/intellij-sdk/build.gradle.kts +++ b/buildSrc/prepare-deps/intellij-sdk/build.gradle.kts @@ -15,6 +15,7 @@ val intellijFlavour = if (intellijUltimateEnabled) "ideaIU" else "ideaIC" repositories { maven { setUrl("$intellijRepo/$intellijReleaseType") } + maven { setUrl("https://plugins.jetbrains.com/maven") } } val intellij by configurations.creating @@ -22,6 +23,7 @@ val sources by configurations.creating val `jps-standalone` by configurations.creating val `jps-build-test` by configurations.creating val `intellij-core` by configurations.creating +val `plugins-NodeJS` by configurations.creating val customDepsRepoDir = File(buildDir, "repo") val customDepsOrg: String by rootProject.extra @@ -35,6 +37,7 @@ dependencies { `jps-standalone`("com.jetbrains.intellij.idea:jps-standalone:$intellijVersion") `jps-build-test`("com.jetbrains.intellij.idea:jps-build-test:$intellijVersion") `intellij-core`("com.jetbrains.intellij.idea:intellij-core:$intellijVersion") + `plugins-NodeJS`("com.jetbrains.plugins:NodeJS:${rootProject.extra["versions.idea.NodeJS"]}@zip") } fun Task.configureExtractFromConfigurationTask(sourceConfig: Configuration, extractor: (Configuration) -> Any) { @@ -60,6 +63,8 @@ val copyIntellijSdkSources by tasks.creating { configureExtractFromConfiguration val copyJpsBuildTest by tasks.creating { configureExtractFromConfigurationTask(`jps-build-test`) { it.singleFile } } +val unzipNodeJSPlugin by tasks.creating { configureExtractFromConfigurationTask(`plugins-NodeJS`) { zipTree(it.singleFile) } } + fun writeIvyXml(moduleName: String, fileName: String, jarFiles: FileCollection, baseDir: File, sourcesJar: File) { with(IvyDescriptorFileGenerator(DefaultIvyPublicationIdentity(customDepsOrg, moduleName, intellijVersion))) { addConfiguration(DefaultIvyConfiguration("default")) @@ -90,6 +95,12 @@ val prepareIvyXml by tasks.creating { } inputs.dir(File(repoDir, sources.name)) + if (intellijUltimateEnabled) { + dependsOn(unzipNodeJSPlugin) + inputs.dir(File(repoDir, `plugins-NodeJS`.name)) + outputs.file(File(repoDir, "${`plugins-NodeJS`.name}.ivy.xml")) + } + doFirst { val sourcesFile = File(repoDir, "${sources.name}/${sources.singleFile.name}") writeIvyXml(intellij.name, intellij.name, @@ -103,6 +114,11 @@ val prepareIvyXml by tasks.creating { flatDeps.forEach { writeIvyXml(it.name, it.name, files("$repoDir/${it.name}"), File(repoDir, it.name), sourcesFile) } + + if (intellijUltimateEnabled) { + val nodeJsBaseDir = "${`plugins-NodeJS`.name}/NodeJS/lib" + writeIvyXml("NodeJS", `plugins-NodeJS`.name, files("$repoDir/$nodeJsBaseDir"), File(repoDir, nodeJsBaseDir), sourcesFile) + } } } diff --git a/buildSrc/src/main/kotlin/intellijDependencies.kt b/buildSrc/src/main/kotlin/intellijDependencies.kt index ecaee97cade..a40b693f3ad 100644 --- a/buildSrc/src/main/kotlin/intellijDependencies.kt +++ b/buildSrc/src/main/kotlin/intellijDependencies.kt @@ -15,6 +15,7 @@ fun RepositoryHandler.intellijSdkRepo(project: Project): IvyArtifactRepository = ivyPattern("${baseDir.canonicalPath}/[organisation]/[revision]/intellij.plugin.[module].ivy.xml") artifactPattern("${baseDir.canonicalPath}/[organisation]/[revision]/[module]/lib/[artifact](-[classifier]).jar") artifactPattern("${baseDir.canonicalPath}/[organisation]/[revision]/intellij/plugins/[module]/lib/[artifact](-[classifier]).jar") + artifactPattern("${baseDir.canonicalPath}/[organisation]/[revision]/plugins-[module]/[module]/lib/[artifact](-[classifier]).jar") artifactPattern("${baseDir.canonicalPath}/[organisation]/[revision]/[module]/[artifact].jar") artifactPattern("${baseDir.canonicalPath}/[organisation]/[revision]/[module]/[artifact](-[revision])(-[classifier]).jar") artifactPattern("${baseDir.canonicalPath}/[organisation]/[revision]/sources/[artifact]-[revision]-[classifier].[ext]")