Support downloading Android Studio
This commit is contained in:
committed by
Vyacheslav Gerasimov
parent
f4feb71ad2
commit
b2ca302bf7
@@ -1,3 +1,4 @@
|
|||||||
|
|
||||||
@file:Suppress("PropertyName")
|
@file:Suppress("PropertyName")
|
||||||
|
|
||||||
import org.gradle.api.publish.ivy.internal.artifact.DefaultIvyArtifact
|
import org.gradle.api.publish.ivy.internal.artifact.DefaultIvyArtifact
|
||||||
@@ -11,11 +12,30 @@ 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 intellijVersion = rootProject.extra["versions.intellijSdk"] as String
|
val intellijVersion = rootProject.extra["versions.intellijSdk"] as String
|
||||||
|
val androidStudioRelease = rootProject.extra["versions.androidStudioRelease"] as String?
|
||||||
|
val androidStudioBuild = rootProject.extra["versions.androidStudioBuild"] as String?
|
||||||
val intellijSeparateSdks: Boolean by rootProject.extra
|
val intellijSeparateSdks: Boolean by rootProject.extra
|
||||||
val installIntellijCommunity = !intellijUltimateEnabled || intellijSeparateSdks
|
val installIntellijCommunity = !intellijUltimateEnabled || intellijSeparateSdks
|
||||||
val installIntellijUltimate = intellijUltimateEnabled
|
val installIntellijUltimate = intellijUltimateEnabled
|
||||||
|
|
||||||
|
val studioOs by lazy {
|
||||||
|
when {
|
||||||
|
OperatingSystem.current().isWindows -> "windows"
|
||||||
|
OperatingSystem.current().isMacOsX -> "mac"
|
||||||
|
OperatingSystem.current().isLinux -> "linux"
|
||||||
|
else -> {
|
||||||
|
logger.error("Unknown operating system for android tools: ${OperatingSystem.current().name}")
|
||||||
|
""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
|
if (androidStudioRelease != null) {
|
||||||
|
ivy {
|
||||||
|
artifactPattern("https://dl.google.com/dl/android/studio/ide-zips/$androidStudioRelease/[artifact]-[revision]-$studioOs.zip")
|
||||||
|
}
|
||||||
|
}
|
||||||
maven { setUrl("$intellijRepo/$intellijReleaseType") }
|
maven { setUrl("$intellijRepo/$intellijReleaseType") }
|
||||||
maven { setUrl("https://plugins.jetbrains.com/maven") }
|
maven { setUrl("https://plugins.jetbrains.com/maven") }
|
||||||
}
|
}
|
||||||
@@ -35,13 +55,17 @@ val customDepsRepoModulesDir = File(customDepsRepoDir, "$customDepsOrg/$customDe
|
|||||||
val repoDir = customDepsRepoModulesDir
|
val repoDir = customDepsRepoModulesDir
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
if (installIntellijCommunity) {
|
if (androidStudioRelease != null) {
|
||||||
intellij("com.jetbrains.intellij.idea:ideaIC:$intellijVersion")
|
intellij("google:android-studio-ide:$androidStudioBuild")
|
||||||
|
} else {
|
||||||
|
if (installIntellijCommunity) {
|
||||||
|
intellij("com.jetbrains.intellij.idea:ideaIC:$intellijVersion")
|
||||||
|
}
|
||||||
|
if (installIntellijUltimate) {
|
||||||
|
intellijUltimate("com.jetbrains.intellij.idea:ideaIU:$intellijVersion")
|
||||||
|
}
|
||||||
|
sources("com.jetbrains.intellij.idea:ideaIC:$intellijVersion:sources@jar")
|
||||||
}
|
}
|
||||||
if (installIntellijUltimate) {
|
|
||||||
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-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")
|
||||||
`intellij-core`("com.jetbrains.intellij.idea:intellij-core:$intellijVersion")
|
`intellij-core`("com.jetbrains.intellij.idea:intellij-core:$intellijVersion")
|
||||||
@@ -71,13 +95,17 @@ val unzipIntellijCore by tasks.creating { configureExtractFromConfigurationTask(
|
|||||||
|
|
||||||
val unzipJpsStandalone by tasks.creating { configureExtractFromConfigurationTask(`jps-standalone`) { zipTree(it.singleFile) } }
|
val unzipJpsStandalone by tasks.creating { configureExtractFromConfigurationTask(`jps-standalone`) { zipTree(it.singleFile) } }
|
||||||
|
|
||||||
val copyIntellijSdkSources by tasks.creating { configureExtractFromConfigurationTask(sources) { it.singleFile } }
|
val copyIntellijSdkSources by tasks.creating {
|
||||||
|
if (androidStudioRelease == null) {
|
||||||
|
configureExtractFromConfigurationTask(sources) { it.singleFile }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
val copyJpsBuildTest by tasks.creating { configureExtractFromConfigurationTask(`jps-build-test`) { it.singleFile } }
|
val copyJpsBuildTest by tasks.creating { configureExtractFromConfigurationTask(`jps-build-test`) { it.singleFile } }
|
||||||
|
|
||||||
val unzipNodeJSPlugin by tasks.creating { configureExtractFromConfigurationTask(`plugins-NodeJS`) { zipTree(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) {
|
fun writeIvyXml(moduleName: String, fileName: String, jarFiles: FileCollection, baseDir: File, sourcesJar: File?) {
|
||||||
with(IvyDescriptorFileGenerator(DefaultIvyPublicationIdentity(customDepsOrg, moduleName, intellijVersion))) {
|
with(IvyDescriptorFileGenerator(DefaultIvyPublicationIdentity(customDepsOrg, moduleName, intellijVersion))) {
|
||||||
addConfiguration(DefaultIvyConfiguration("default"))
|
addConfiguration(DefaultIvyConfiguration("default"))
|
||||||
addConfiguration(DefaultIvyConfiguration("sources"))
|
addConfiguration(DefaultIvyConfiguration("sources"))
|
||||||
@@ -87,8 +115,10 @@ fun writeIvyXml(moduleName: String, fileName: String, jarFiles: FileCollection,
|
|||||||
addArtifact(DefaultIvyArtifact(it, relativeName, "jar", "jar", null).also { it.conf = "default" })
|
addArtifact(DefaultIvyArtifact(it, relativeName, "jar", "jar", null).also { it.conf = "default" })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
val sourcesArtifactName = sourcesJar.name.removeSuffix(".jar").substringBefore("-")
|
if (sourcesJar != null) {
|
||||||
addArtifact(DefaultIvyArtifact(sourcesJar, sourcesArtifactName, "jar", "sources", "sources").also { it.conf = "sources" })
|
val sourcesArtifactName = sourcesJar.name.removeSuffix(".jar").substringBefore("-")
|
||||||
|
addArtifact(DefaultIvyArtifact(sourcesJar, sourcesArtifactName, "jar", "sources", "sources").also { it.conf = "sources" })
|
||||||
|
}
|
||||||
writeTo(File(customDepsRepoModulesDir, "$fileName.ivy.xml"))
|
writeTo(File(customDepsRepoModulesDir, "$fileName.ivy.xml"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -125,7 +155,7 @@ val prepareIvyXmls by tasks.creating {
|
|||||||
}
|
}
|
||||||
|
|
||||||
doFirst {
|
doFirst {
|
||||||
val sourcesFile = File(repoDir, "${sources.name}/${sources.singleFile.name}")
|
val sourcesFile = if (sources.isEmpty) null else File(repoDir, "${sources.name}/${sources.singleFile.name}")
|
||||||
|
|
||||||
if (installIntellijCommunity) {
|
if (installIntellijCommunity) {
|
||||||
writeIvyXml(intellij.name, intellij.name,
|
writeIvyXml(intellij.name, intellij.name,
|
||||||
|
|||||||
Reference in New Issue
Block a user