Add ultimate sdk

This commit is contained in:
Ilya Chernikov
2017-12-11 23:44:43 +01:00
committed by Vyacheslav Gerasimov
parent 1219572aa0
commit d38b1c361a
5 changed files with 36 additions and 6 deletions
+1 -1
View File
@@ -31,9 +31,9 @@ plugins {
`kotlin-dsl`
}
extra["intellijUltimateEnabled"] = true
extra["intellijRepo"] = "https://www.jetbrains.com/intellij-repository"
extra["intellijReleaseType"] = "releases" // or "snapshots"
extra["intellijSdkDependencyName"] = "ideaIC" // "ideaIC" or "ideaIU
extra["versions.intellijSdk"] = "172.4343.14"
extra["versions.androidBuildTools"] = "r23.0.1"
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 org.gradle.internal.os.OperatingSystem
val intellijUltimateEnabled: Boolean by rootProject.extra
val intellijRepo: String by rootProject.extra
val intellijReleaseType: String by rootProject.extra
val intellijSdkDependencyName: String by rootProject.extra
val intellijVersion = rootProject.extra["versions.intellijSdk"] as String
repositories {
@@ -17,6 +17,7 @@ repositories {
}
val intellij by configurations.creating
val intellijUltimate by configurations.creating
val sources by configurations.creating
val `jps-standalone` by configurations.creating
val `jps-build-test` by configurations.creating
@@ -29,7 +30,10 @@ val customDepsRepoModulesDir = File(customDepsRepoDir, "$customDepsOrg/$customDe
val repoDir = customDepsRepoModulesDir
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")
`jps-standalone`("com.jetbrains.intellij.idea:jps-standalone:$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 unzipIntellijUltimateSdk by tasks.creating { configureExtractFromConfigurationTask(intellijUltimate) { 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) } }
@@ -77,15 +83,24 @@ fun writeIvyXml(moduleName: String, fileName: String, jarFiles: FileCollection,
val prepareIvyXml by tasks.creating {
dependsOn(unzipIntellijSdk, unzipIntellijCore, unzipJpsStandalone, copyIntellijSdkSources, copyJpsBuildTest)
val intellijSdkDir = File(repoDir, intellij.name)
inputs.dir(intellijSdkDir)
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`)
flatDeps.forEach {
inputs.dir(File(repoDir, it.name))
outputs.file(File(repoDir, "${it.name}.ivy.xml"))
}
inputs.dir(File(repoDir, sources.name))
doFirst {
val sourcesFile = File(repoDir, "${sources.name}/${sources.singleFile.name}")
writeIvyXml(intellij.name, intellij.name,
@@ -95,6 +110,17 @@ val prepareIvyXml by tasks.creating {
File(intellijSdkDir, "plugins").listFiles { it: File -> it.isDirectory }.forEach {
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 {
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)
ivyPattern("${baseDir.canonicalPath}/[organisation]/[revision]/[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]/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](-[revision])(-[classifier]).jar")
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.intellijUltimateDep() = intellijDep("intellijUltimate")
fun ModuleDependency.includeJars(vararg names: String) {
names.forEach {
artifact {
+2 -2
View File
@@ -30,7 +30,7 @@ dependencies {
compile(project(":idea:ide-common")) { isTransitive = false }
compile(project(":idea:idea-gradle")) { isTransitive = false }
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("DatabaseTools"))
compileOnly(intellijPluginDep("JavaEE"))
@@ -86,7 +86,7 @@ dependencies {
springClasspath(commonDep("org.springframework", "spring-web"))
testCompileOnly(intellijDep()) { includeJars("gson-2.5", "annotations", "trove4j", "openapi", "idea", "util", "jdom") }
testRuntime(intellijDep())
testRuntime(intellijUltimateDep())
testCompile(intellijPluginDep("CSS"))
testCompile(intellijPluginDep("DatabaseTools"))
testCompile(intellijPluginDep("JavaEE"))
+1 -1
View File
@@ -21,7 +21,7 @@ dependencies {
compileOnly(project(":idea:idea-jvm"))
runtimeOnly(files(toolsJar()))
compileOnly(intellijDep())
compileOnly(intellijUltimateDep())
}
afterEvaluate {