Add ultimate sdk
This commit is contained in:
committed by
Vyacheslav Gerasimov
parent
1219572aa0
commit
d38b1c361a
@@ -31,9 +31,9 @@ plugins {
|
|||||||
`kotlin-dsl`
|
`kotlin-dsl`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extra["intellijUltimateEnabled"] = true
|
||||||
extra["intellijRepo"] = "https://www.jetbrains.com/intellij-repository"
|
extra["intellijRepo"] = "https://www.jetbrains.com/intellij-repository"
|
||||||
extra["intellijReleaseType"] = "releases" // or "snapshots"
|
extra["intellijReleaseType"] = "releases" // or "snapshots"
|
||||||
extra["intellijSdkDependencyName"] = "ideaIC" // "ideaIC" or "ideaIU
|
|
||||||
extra["versions.intellijSdk"] = "172.4343.14"
|
extra["versions.intellijSdk"] = "172.4343.14"
|
||||||
extra["versions.androidBuildTools"] = "r23.0.1"
|
extra["versions.androidBuildTools"] = "r23.0.1"
|
||||||
extra["versions.androidDxSources"] = "5.0.0_r2"
|
extra["versions.androidDxSources"] = "5.0.0_r2"
|
||||||
|
|||||||
@@ -7,9 +7,9 @@ import org.gradle.api.publish.ivy.internal.publisher.IvyDescriptorFileGenerator
|
|||||||
import java.io.File
|
import java.io.File
|
||||||
import org.gradle.internal.os.OperatingSystem
|
import org.gradle.internal.os.OperatingSystem
|
||||||
|
|
||||||
|
val intellijUltimateEnabled: Boolean by rootProject.extra
|
||||||
val intellijRepo: String by rootProject.extra
|
val intellijRepo: String by rootProject.extra
|
||||||
val intellijReleaseType: String by rootProject.extra
|
val intellijReleaseType: String by rootProject.extra
|
||||||
val intellijSdkDependencyName: String by rootProject.extra
|
|
||||||
val intellijVersion = rootProject.extra["versions.intellijSdk"] as String
|
val intellijVersion = rootProject.extra["versions.intellijSdk"] as String
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
@@ -17,6 +17,7 @@ repositories {
|
|||||||
}
|
}
|
||||||
|
|
||||||
val intellij by configurations.creating
|
val intellij by configurations.creating
|
||||||
|
val intellijUltimate by configurations.creating
|
||||||
val sources by configurations.creating
|
val sources by configurations.creating
|
||||||
val `jps-standalone` by configurations.creating
|
val `jps-standalone` by configurations.creating
|
||||||
val `jps-build-test` by configurations.creating
|
val `jps-build-test` by configurations.creating
|
||||||
@@ -29,7 +30,10 @@ val customDepsRepoModulesDir = File(customDepsRepoDir, "$customDepsOrg/$customDe
|
|||||||
val repoDir = customDepsRepoModulesDir
|
val repoDir = customDepsRepoModulesDir
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
intellij("com.jetbrains.intellij.idea:$intellijSdkDependencyName:$intellijVersion")
|
intellij("com.jetbrains.intellij.idea:ideaIC:$intellijVersion")
|
||||||
|
if (intellijUltimateEnabled) {
|
||||||
|
intellijUltimate("com.jetbrains.intellij.idea:ideaIU:$intellijVersion")
|
||||||
|
}
|
||||||
sources("com.jetbrains.intellij.idea:ideaIC:$intellijVersion:sources@jar")
|
sources("com.jetbrains.intellij.idea:ideaIC:$intellijVersion:sources@jar")
|
||||||
`jps-standalone`("com.jetbrains.intellij.idea:jps-standalone:$intellijVersion")
|
`jps-standalone`("com.jetbrains.intellij.idea:jps-standalone:$intellijVersion")
|
||||||
`jps-build-test`("com.jetbrains.intellij.idea:jps-build-test:$intellijVersion")
|
`jps-build-test`("com.jetbrains.intellij.idea:jps-build-test:$intellijVersion")
|
||||||
@@ -51,6 +55,8 @@ fun Task.configureExtractFromConfigurationTask(sourceConfig: Configuration, extr
|
|||||||
|
|
||||||
val unzipIntellijSdk by tasks.creating { configureExtractFromConfigurationTask(intellij) { zipTree(it.singleFile) } }
|
val unzipIntellijSdk by tasks.creating { configureExtractFromConfigurationTask(intellij) { zipTree(it.singleFile) } }
|
||||||
|
|
||||||
|
val unzipIntellijUltimateSdk by tasks.creating { configureExtractFromConfigurationTask(intellijUltimate) { zipTree(it.singleFile) } }
|
||||||
|
|
||||||
val unzipIntellijCore by tasks.creating { configureExtractFromConfigurationTask(`intellij-core`) { zipTree(it.singleFile) } }
|
val unzipIntellijCore by tasks.creating { configureExtractFromConfigurationTask(`intellij-core`) { zipTree(it.singleFile) } }
|
||||||
|
|
||||||
val unzipJpsStandalone by tasks.creating { configureExtractFromConfigurationTask(`jps-standalone`) { zipTree(it.singleFile) } }
|
val unzipJpsStandalone by tasks.creating { configureExtractFromConfigurationTask(`jps-standalone`) { zipTree(it.singleFile) } }
|
||||||
@@ -77,15 +83,24 @@ fun writeIvyXml(moduleName: String, fileName: String, jarFiles: FileCollection,
|
|||||||
|
|
||||||
val prepareIvyXml by tasks.creating {
|
val prepareIvyXml by tasks.creating {
|
||||||
dependsOn(unzipIntellijSdk, unzipIntellijCore, unzipJpsStandalone, copyIntellijSdkSources, copyJpsBuildTest)
|
dependsOn(unzipIntellijSdk, unzipIntellijCore, unzipJpsStandalone, copyIntellijSdkSources, copyJpsBuildTest)
|
||||||
|
|
||||||
val intellijSdkDir = File(repoDir, intellij.name)
|
val intellijSdkDir = File(repoDir, intellij.name)
|
||||||
inputs.dir(intellijSdkDir)
|
inputs.dir(intellijSdkDir)
|
||||||
outputs.file(File(repoDir, "${intellij.name}.ivy.xml"))
|
outputs.file(File(repoDir, "${intellij.name}.ivy.xml"))
|
||||||
|
|
||||||
|
val intellijUltimateSdkDir = File(repoDir, intellijUltimate.name)
|
||||||
|
if (intellijUltimateEnabled) {
|
||||||
|
dependsOn(unzipIntellijUltimateSdk)
|
||||||
|
inputs.dir(intellijUltimateSdkDir)
|
||||||
|
outputs.file(File(repoDir, "${intellijUltimate.name}.ivy.xml"))
|
||||||
|
}
|
||||||
val flatDeps = listOf(`intellij-core`, `jps-standalone`, `jps-build-test`)
|
val flatDeps = listOf(`intellij-core`, `jps-standalone`, `jps-build-test`)
|
||||||
flatDeps.forEach {
|
flatDeps.forEach {
|
||||||
inputs.dir(File(repoDir, it.name))
|
inputs.dir(File(repoDir, it.name))
|
||||||
outputs.file(File(repoDir, "${it.name}.ivy.xml"))
|
outputs.file(File(repoDir, "${it.name}.ivy.xml"))
|
||||||
}
|
}
|
||||||
inputs.dir(File(repoDir, sources.name))
|
inputs.dir(File(repoDir, sources.name))
|
||||||
|
|
||||||
doFirst {
|
doFirst {
|
||||||
val sourcesFile = File(repoDir, "${sources.name}/${sources.singleFile.name}")
|
val sourcesFile = File(repoDir, "${sources.name}/${sources.singleFile.name}")
|
||||||
writeIvyXml(intellij.name, intellij.name,
|
writeIvyXml(intellij.name, intellij.name,
|
||||||
@@ -95,6 +110,17 @@ val prepareIvyXml by tasks.creating {
|
|||||||
File(intellijSdkDir, "plugins").listFiles { it: File -> it.isDirectory }.forEach {
|
File(intellijSdkDir, "plugins").listFiles { it: File -> it.isDirectory }.forEach {
|
||||||
writeIvyXml(it.name, "intellij.plugin.${it.name}", files("$it/lib/"), File(it, "lib"), sourcesFile)
|
writeIvyXml(it.name, "intellij.plugin.${it.name}", files("$it/lib/"), File(it, "lib"), sourcesFile)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (intellijUltimateEnabled) {
|
||||||
|
writeIvyXml(intellijUltimate.name, intellijUltimate.name,
|
||||||
|
files("$intellijUltimateSdkDir/lib/").filter { !it.name.startsWith("kotlin-") },
|
||||||
|
File(intellijUltimateSdkDir, "lib"),
|
||||||
|
sourcesFile)
|
||||||
|
File(intellijUltimateSdkDir, "plugins").listFiles { it: File -> it.isDirectory }.forEach {
|
||||||
|
writeIvyXml(it.name, "intellijUltimate.plugin.${it.name}", files("$it/lib/"), File(it, "lib"), sourcesFile)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
flatDeps.forEach {
|
flatDeps.forEach {
|
||||||
writeIvyXml(it.name, it.name, files("$repoDir/${it.name}"), File(repoDir, it.name), sourcesFile)
|
writeIvyXml(it.name, it.name, files("$repoDir/${it.name}"), File(repoDir, it.name), sourcesFile)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,8 +13,10 @@ fun RepositoryHandler.intellijSdkRepo(project: Project): IvyArtifactRepository =
|
|||||||
setUrl(baseDir)
|
setUrl(baseDir)
|
||||||
ivyPattern("${baseDir.canonicalPath}/[organisation]/[revision]/[module].ivy.xml")
|
ivyPattern("${baseDir.canonicalPath}/[organisation]/[revision]/[module].ivy.xml")
|
||||||
ivyPattern("${baseDir.canonicalPath}/[organisation]/[revision]/intellij.plugin.[module].ivy.xml")
|
ivyPattern("${baseDir.canonicalPath}/[organisation]/[revision]/intellij.plugin.[module].ivy.xml")
|
||||||
|
ivyPattern("${baseDir.canonicalPath}/[organisation]/[revision]/intellijUltimate.plugin.[module].ivy.xml")
|
||||||
artifactPattern("${baseDir.canonicalPath}/[organisation]/[revision]/[module]/lib/[artifact](-[classifier]).jar")
|
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]/intellij/plugins/[module]/lib/[artifact](-[classifier]).jar")
|
||||||
|
artifactPattern("${baseDir.canonicalPath}/[organisation]/[revision]/intellijUltimate/plugins/[module]/lib/[artifact](-[classifier]).jar")
|
||||||
artifactPattern("${baseDir.canonicalPath}/[organisation]/[revision]/[module]/[artifact].jar")
|
artifactPattern("${baseDir.canonicalPath}/[organisation]/[revision]/[module]/[artifact].jar")
|
||||||
artifactPattern("${baseDir.canonicalPath}/[organisation]/[revision]/[module]/[artifact](-[revision])(-[classifier]).jar")
|
artifactPattern("${baseDir.canonicalPath}/[organisation]/[revision]/[module]/[artifact](-[revision])(-[classifier]).jar")
|
||||||
artifactPattern("${baseDir.canonicalPath}/[organisation]/[revision]/sources/[artifact]-[revision]-[classifier].[ext]")
|
artifactPattern("${baseDir.canonicalPath}/[organisation]/[revision]/sources/[artifact]-[revision]-[classifier].[ext]")
|
||||||
@@ -26,6 +28,8 @@ fun Project.intellijCoreDep() = intellijDep("intellij-core")
|
|||||||
|
|
||||||
fun Project.intellijPluginDep(plugin: String) = intellijDep(plugin)
|
fun Project.intellijPluginDep(plugin: String) = intellijDep(plugin)
|
||||||
|
|
||||||
|
fun Project.intellijUltimateDep() = intellijDep("intellijUltimate")
|
||||||
|
|
||||||
fun ModuleDependency.includeJars(vararg names: String) {
|
fun ModuleDependency.includeJars(vararg names: String) {
|
||||||
names.forEach {
|
names.forEach {
|
||||||
artifact {
|
artifact {
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ dependencies {
|
|||||||
compile(project(":idea:ide-common")) { isTransitive = false }
|
compile(project(":idea:ide-common")) { isTransitive = false }
|
||||||
compile(project(":idea:idea-gradle")) { isTransitive = false }
|
compile(project(":idea:idea-gradle")) { isTransitive = false }
|
||||||
compileOnly(intellijCoreDep()) { includeJars("intellij-core") }
|
compileOnly(intellijCoreDep()) { includeJars("intellij-core") }
|
||||||
compileOnly(intellijDep()) { includeJars("annotations", "trove4j", "openapi", "idea", "util", "jdom") }
|
compileOnly(intellijUltimateDep()) { includeJars("annotations", "trove4j", "openapi", "idea", "util", "jdom") }
|
||||||
compileOnly(intellijPluginDep("CSS"))
|
compileOnly(intellijPluginDep("CSS"))
|
||||||
compileOnly(intellijPluginDep("DatabaseTools"))
|
compileOnly(intellijPluginDep("DatabaseTools"))
|
||||||
compileOnly(intellijPluginDep("JavaEE"))
|
compileOnly(intellijPluginDep("JavaEE"))
|
||||||
@@ -86,7 +86,7 @@ dependencies {
|
|||||||
springClasspath(commonDep("org.springframework", "spring-web"))
|
springClasspath(commonDep("org.springframework", "spring-web"))
|
||||||
|
|
||||||
testCompileOnly(intellijDep()) { includeJars("gson-2.5", "annotations", "trove4j", "openapi", "idea", "util", "jdom") }
|
testCompileOnly(intellijDep()) { includeJars("gson-2.5", "annotations", "trove4j", "openapi", "idea", "util", "jdom") }
|
||||||
testRuntime(intellijDep())
|
testRuntime(intellijUltimateDep())
|
||||||
testCompile(intellijPluginDep("CSS"))
|
testCompile(intellijPluginDep("CSS"))
|
||||||
testCompile(intellijPluginDep("DatabaseTools"))
|
testCompile(intellijPluginDep("DatabaseTools"))
|
||||||
testCompile(intellijPluginDep("JavaEE"))
|
testCompile(intellijPluginDep("JavaEE"))
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ dependencies {
|
|||||||
compileOnly(project(":idea:idea-jvm"))
|
compileOnly(project(":idea:idea-jvm"))
|
||||||
|
|
||||||
runtimeOnly(files(toolsJar()))
|
runtimeOnly(files(toolsJar()))
|
||||||
compileOnly(intellijDep())
|
compileOnly(intellijUltimateDep())
|
||||||
}
|
}
|
||||||
|
|
||||||
afterEvaluate {
|
afterEvaluate {
|
||||||
|
|||||||
Reference in New Issue
Block a user