Skip to content

Commit eaa6712

Browse files
committed
Do not require offline structure from repo-tool checkout
1 parent e6c336b commit eaa6712

File tree

11 files changed

+85
-40
lines changed

11 files changed

+85
-40
lines changed

buildSrc/private/src/main/kotlin/androidx/build/clang/KonanBuildService.kt

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -55,17 +55,6 @@ import org.jetbrains.kotlin.konan.target.PlatformManager
5555
abstract class KonanBuildService @Inject constructor(private val execOperations: ExecOperations) :
5656
BuildService<KonanBuildService.Parameters> {
5757
private val dist by lazy {
58-
// double check that we don't initialize konan distribution without prebuilts in AOSP
59-
check(
60-
parameters.projectLayoutType.get() == ProjectLayoutType.PLAYGROUND ||
61-
parameters.prebuilts.isPresent
62-
) {
63-
"""
64-
Prebuilts directory for Konan must be provided when the project is not a playground
65-
project.
66-
"""
67-
.trimIndent()
68-
}
6958
KonanPrebuiltsSetup.createKonanDistribution(
7059
prebuiltsDirectory = parameters.prebuilts.orNull?.asFile,
7160
konanHome = parameters.konanHome.get().asFile,

buildSrc/private/src/main/kotlin/androidx/build/studio/StudioTask.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -445,6 +445,10 @@ abstract class StudioTask : DefaultTask() {
445445
when (ProjectLayoutType.from(this)) {
446446
ProjectLayoutType.ANDROIDX -> RootStudioTask::class.java
447447
ProjectLayoutType.PLAYGROUND -> PlaygroundStudioTask::class.java
448+
449+
// For JetBrains' fork it's supposed to use IJ IDEA, so it's not required to have a task
450+
// to automatically download and run Android Studio.
451+
ProjectLayoutType.JETBRAINS_FORK -> return
448452
}
449453
tasks.register(STUDIO_TASK, studioTask)
450454
}

buildSrc/public/src/main/kotlin/androidx/build/AndroidXConfig.kt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,10 +98,17 @@ val Project.defaultAndroidConfig: AndroidConfig
9898
?: extensions.create("androidx.build.AndroidConfigImpl", AndroidConfigImpl::class.java)
9999

100100
fun Project.getGradlePrebuiltsPath(): File {
101+
if (ProjectLayoutType.isPlayground(project)) {
102+
throw IllegalStateException("external projects are not available in playground project layout")
103+
}
101104
return File(rootProject.projectDir, "../../tools/external/gradle").canonicalFile
102105
}
103106

104107
fun Project.getExternalProjectPath(): File {
108+
if (ProjectLayoutType.isPlayground(project)) {
109+
// In JetBrains Fork required parts of the "external" folder are copied into this repo.
110+
return File(rootProject.projectDir, "external").canonicalFile
111+
}
105112
return File(rootProject.projectDir, "../../external").canonicalFile
106113
}
107114

@@ -110,6 +117,10 @@ fun Project.getKeystore(): File {
110117
}
111118

112119
fun Project.getPrebuiltsRoot(): File {
120+
if (ProjectLayoutType.isPlayground(project)) {
121+
// Do not ban calling this because it's used in a lot benchmark projects during the configuration stage.
122+
return rootProject.projectDir
123+
}
113124
return File(project.extraPropertyOrNull("prebuiltsRoot").toString())
114125
}
115126

buildSrc/public/src/main/kotlin/androidx/build/ProjectLayoutType.kt

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@ import org.gradle.api.Project
2121

2222
enum class ProjectLayoutType {
2323
ANDROIDX,
24-
PLAYGROUND;
24+
PLAYGROUND,
25+
JETBRAINS_FORK;
2526

2627
companion object {
2728
/** Returns the project layout type for the project (PLAYGROUND or ANDROIDX) */
@@ -30,16 +31,24 @@ enum class ProjectLayoutType {
3031
val value = project.extraPropertyOrNull(STUDIO_TYPE)
3132
return when (value) {
3233
"playground" -> PLAYGROUND
33-
null,
3434
"androidx" -> ANDROIDX
35+
null,
36+
"jetbrains-fork" -> JETBRAINS_FORK
3537
else -> error("Invalid project type $value")
3638
}
3739
}
3840

3941
/** @return `true` if running in a Playground (Github) setup, `false` otherwise. */
4042
@JvmStatic
4143
fun isPlayground(project: Project): Boolean {
42-
return ProjectLayoutType.from(project) == PLAYGROUND
44+
return when(ProjectLayoutType.from(project)) {
45+
ANDROIDX -> false
46+
PLAYGROUND -> true
47+
48+
// This check is used to determine if prebuilt dependencies are available,
49+
// so despite of applying playground gradle plugin, we need to return true here
50+
JETBRAINS_FORK -> true
51+
}
4352
}
4453
}
4554
}

buildSrc/public/src/main/kotlin/androidx/build/SdkHelper.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,7 @@ fun Project.getSdkDependency(): FileTree =
3030

3131
/** Returns the root project's platform-specific SDK path as a file. */
3232
fun Project.getSdkPath(): File {
33-
if (
34-
ProjectLayoutType.from(project) == ProjectLayoutType.PLAYGROUND ||
35-
System.getenv("COMPOSE_DESKTOP_GITHUB_BUILD") != null
36-
) {
33+
if (ProjectLayoutType.isPlayground(project)) {
3734
// This is not full checkout, use local settings instead.
3835
// https://developer.android.com/studio/command-line/variables
3936
// check for local.properties first
@@ -102,6 +99,9 @@ fun Project.getSupportRootFolder(): File {
10299
* This method assumes that the canonical root project directory is {@code frameworks/support}.
103100
*/
104101
fun Project.getCheckoutRoot(): File {
102+
if (!ProjectLayoutType.isPlayground(project)) {
103+
throw IllegalStateException("repo checkout root is not available in playground project layout")
104+
}
105105
return project.getSupportRootFolder().parentFile.parentFile
106106
}
107107

buildSrc/repos.gradle

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ def addMavenRepositories(RepositoryHandler handler) {
3838
}
3939
}
4040
}
41+
/*
4142
handler.maven {
4243
url = "${repos.prebuiltsRoot}/androidx/internal"
4344
metadataSources {
@@ -63,7 +64,8 @@ def addMavenRepositories(RepositoryHandler handler) {
6364
}
6465
}
6566
}
66-
if (System.getenv("ALLOW_PUBLIC_REPOS") != null || System.getProperty("ALLOW_PUBLIC_REPOS") != null) {
67+
*/
68+
if (true /* In JetBrains Fork */) {
6769
handler.mavenCentral()
6870
handler.google {
6971
content {

buildSrc/settings.gradle

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,16 @@
1616

1717
apply from: "settingsScripts/out-setup.groovy"
1818
getGradle().beforeProject { project ->
19-
def checkoutRoot = new File("${buildscript.sourceFile.parent}/../../..")
19+
def checkoutRoot = new File("${buildscript.sourceFile.parent}/..")
2020
init.chooseBuildDirectory(checkoutRoot, rootProject.name, project)
21+
22+
/*
23+
Could not set unknown property 'kotlin.project.persistent.dir' for project ':buildSrc' of type org.gradle.api.Project.
24+
2125
// https://youtrack.jetbrains.com/issue/KT-58223
2226
def kotlinDir = new File(System.env.OUT_DIR ?: checkoutRoot, ".kotlinBuildSrc")
2327
project.setProperty("kotlin.project.persistent.dir", kotlinDir.absolutePath)
28+
*/
2429
}
2530

2631
include ":jetpad-integration"

compose/ui/ui/integration-tests/ui-demos/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ dependencies {
3535

3636
implementation("androidx.activity:activity-compose:1.8.1")
3737
implementation("androidx.fragment:fragment-ktx:1.2.5")
38-
implementation(project(":recyclerview:recyclerview"))
39-
implementation(project(":customview:customview-poolingcontainer"))
38+
implementation("androidx.recyclerview:recyclerview:1.4.0")
39+
implementation("androidx.customview:customview-poolingcontainer:1.0.0")
4040
implementation("androidx.viewpager2:viewpager2:1.0.0")
4141
implementation("androidx.coordinatorlayout:coordinatorlayout:1.1.0")
4242
implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.1.0")

gradle.properties

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
1-
# TODO(https://github.com/spdx/spdx-gradle-plugin/issues/16) remove `-DSPDXParser.OnlyUseLocalLicenses=true`
2-
org.gradle.jvmargs=-Xmx12g -XX:+HeapDumpOnOutOfMemoryError -XX:+UseParallelGC -Dkotlin.daemon.jvm.options=-XX:MaxMetaspaceSize=1g,-Xmx8g -Dlint.nullness.ignore-deprecated=true -Dorg.gradle.configuration-cache.internal.report-link-as-warning=true -DSPDXParser.OnlyUseLocalLicenses=true -Dcom.android.tools.r8.enableEmptyMemberRulesToDefaultInitRuleConversion=true -Dfile.encoding=UTF-8
1+
org.gradle.jvmargs=-Xmx12g \
2+
-XX:+HeapDumpOnOutOfMemoryError \
3+
-XX:+UseParallelGC \
4+
-Dkotlin.daemon.jvm.options=-XX:MaxMetaspaceSize=1g,-Xmx8g \
5+
-Dlint.nullness.ignore-deprecated=true \
6+
-Dfile.encoding=UTF-8
37
org.gradle.daemon=true
48
org.gradle.configureondemand=true
59
org.gradle.parallel=true
610
org.gradle.caching=true
711
org.gradle.welcome=never
8-
org.gradle.projectcachedir=../../out/gradle-project-cache
9-
# https://youtrack.jetbrains.com/issue/KT-58223
10-
kotlin.project.persistent.dir=./placeholder
11-
kotlin.user.home=./placeholder
1212
# Disabled due to https://github.com/gradle/gradle/issues/18626
1313
# org.gradle.vfs.watch=true
1414
# Reenabled in gradlew, but disabled in Studio until these errors become shown (b/268380971) or computed more quickly (https://github.com/gradle/gradle/issues/23272)

placeholder/settings.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
apply from: "../buildSrc/settingsScripts/out-setup.groovy"
22
getGradle().beforeProject { project ->
33
init.chooseBuildDirectory(
4-
new File("${buildscript.sourceFile.parent}/../../.."), rootProject.name, project
4+
new File("${buildscript.sourceFile.parent}/.."), rootProject.name, project
55
)
66
}

0 commit comments

Comments
 (0)