Add ultimate sdk
This commit is contained in:
committed by
Vyacheslav Gerasimov
parent
1219572aa0
commit
d38b1c361a
@@ -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 {
|
||||
|
||||
@@ -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"))
|
||||
|
||||
@@ -21,7 +21,7 @@ dependencies {
|
||||
compileOnly(project(":idea:idea-jvm"))
|
||||
|
||||
runtimeOnly(files(toolsJar()))
|
||||
compileOnly(intellijDep())
|
||||
compileOnly(intellijUltimateDep())
|
||||
}
|
||||
|
||||
afterEvaluate {
|
||||
|
||||
Reference in New Issue
Block a user