Simplify cache-redirector script apply method
Now it could be only be applied inside settings file pluginManagement block. This will update both settings repositories and all projects in the repo with cache redirection settings.
This commit is contained in:
+1
-1
@@ -115,7 +115,7 @@ class HierarchicalMppIT : KGPBaseTest() {
|
||||
fun testDependenciesInTests(gradleVersion: GradleVersion, @TempDir tempDir: Path) {
|
||||
publishThirdPartyLib(withGranularMetadata = true, gradleVersion = gradleVersion, localRepoDir = tempDir) {
|
||||
kotlinSourcesDir("jvmMain").copyRecursively(kotlinSourcesDir("linuxX64Main"))
|
||||
buildGradleKts.appendText("kotlin.linuxX64()")
|
||||
buildGradleKts.appendText("\nkotlin.linuxX64()")
|
||||
}
|
||||
|
||||
nativeProject(
|
||||
|
||||
+6
-5
@@ -406,11 +406,12 @@ class Kotlin2JsGradlePluginIT : AbstractKotlin2JsGradlePluginIT(false) {
|
||||
}
|
||||
libBuildscript.appendText(
|
||||
"""
|
||||
kotlin.js().browser {
|
||||
dceTask {
|
||||
dceOptions.devMode = true
|
||||
}
|
||||
}
|
||||
|
|
||||
|kotlin.js().browser {
|
||||
| dceTask {
|
||||
| dceOptions.devMode = true
|
||||
| }
|
||||
|}
|
||||
""".trimMargin()
|
||||
)
|
||||
|
||||
|
||||
+2
-14
@@ -228,9 +228,6 @@ class NewMultiplatformIT : BaseGradleIT() {
|
||||
gradleBuildScript(libProjectName).takeIf { it.extension == "kts" }?.modify {
|
||||
it.replace(Regex("""\.version\(.*\)"""), "")
|
||||
}
|
||||
gradleBuildScript(subproject = libProject.projectDir.name).modify {
|
||||
it.lines().dropLast(5).joinToString(separator = "\n")
|
||||
}
|
||||
|
||||
build(
|
||||
"clean",
|
||||
@@ -430,9 +427,6 @@ class NewMultiplatformIT : BaseGradleIT() {
|
||||
gradleBuildScript(libProjectName).takeIf { it.extension == "kts" }?.modify {
|
||||
it.replace(Regex("""\.version\(.*\)"""), "")
|
||||
}
|
||||
gradleBuildScript(subproject = libProject.projectDir.name).modify {
|
||||
it.lines().dropLast(5).joinToString(separator = "\n")
|
||||
}
|
||||
|
||||
build(
|
||||
"clean",
|
||||
@@ -714,7 +708,7 @@ class NewMultiplatformIT : BaseGradleIT() {
|
||||
arrayOf(
|
||||
it + "com/example/lib/TestCommonCode.class",
|
||||
it + "com/example/lib/TestWithJava.class",
|
||||
it + "META-INF/new-mpp-lib-with-tests.kotlin_module" // Note: same name as in main
|
||||
it + "META-INF/new-mpp-lib-with-tests_test.kotlin_module"
|
||||
)
|
||||
},
|
||||
*kotlinClassesDir(sourceSet = "jvmWithoutJava/main").let {
|
||||
@@ -729,7 +723,7 @@ class NewMultiplatformIT : BaseGradleIT() {
|
||||
arrayOf(
|
||||
it + "com/example/lib/TestCommonCode.class",
|
||||
it + "com/example/lib/TestWithoutJava.class",
|
||||
it + "META-INF/new-mpp-lib-with-tests.kotlin_module" // Note: same name as in main
|
||||
it + "META-INF/new-mpp-lib-with-tests_test.kotlin_module"
|
||||
)
|
||||
}
|
||||
)
|
||||
@@ -1057,9 +1051,6 @@ class NewMultiplatformIT : BaseGradleIT() {
|
||||
libProject.setupWorkingDir()
|
||||
|
||||
libProject.projectDir.copyRecursively(projectDir.resolve(libProject.projectDir.name))
|
||||
gradleBuildScript(libProject.projectDir.name).modify {
|
||||
it.lines().dropLast(5).joinToString(separator = "\n")
|
||||
}
|
||||
projectDir.resolve("settings.gradle").appendText("\ninclude '${libProject.projectDir.name}'")
|
||||
gradleBuildScript().modify {
|
||||
it.replace("'com.example:sample-lib:1.0'", "project(':${libProject.projectDir.name}')") +
|
||||
@@ -1277,9 +1268,6 @@ class NewMultiplatformIT : BaseGradleIT() {
|
||||
setupWorkingDir()
|
||||
appProject.setupWorkingDir(false)
|
||||
appProject.projectDir.copyRecursively(projectDir.resolve("sample-app"))
|
||||
gradleBuildScript("sample-app").modify {
|
||||
it.lines().dropLast(5).joinToString(separator = "\n")
|
||||
}
|
||||
|
||||
gradleSettingsScript().writeText("include 'sample-app'") // disables feature preview 'GRADLE_METADATA', resets rootProject name
|
||||
gradleBuildScript("sample-app").modify {
|
||||
|
||||
-10
@@ -409,16 +409,6 @@ internal fun BaseGradleIT.Project.embedProject(other: BaseGradleIT.Project, rena
|
||||
} finally {
|
||||
check(tempDir.deleteRecursively())
|
||||
}
|
||||
if (projectName == other.projectName) {
|
||||
val embeddedModuleDir = projectDir.resolve(embeddedModuleName)
|
||||
embeddedModuleDir.walk().forEach {
|
||||
if (it.name.contains("build.gradle")) {
|
||||
it.modify { string ->
|
||||
string.lines().dropLast(5).joinToString(separator = "\n")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
testCase.apply {
|
||||
gradleSettingsScript().appendText("\ninclude(\"$embeddedModuleName\")")
|
||||
|
||||
|
||||
+4
@@ -1135,6 +1135,10 @@ class GeneralNativeIT : BaseGradleIT() {
|
||||
""".trimIndent()
|
||||
)
|
||||
|
||||
gradleProperties().modify {
|
||||
it.replace("cacheRedirectorEnabled=true", "cacheRedirectorEnabled=false")
|
||||
}
|
||||
|
||||
build(
|
||||
"build",
|
||||
options = defaultBuildOptions().copy(
|
||||
|
||||
+10
-7
@@ -148,13 +148,16 @@ class NativePlatformLibsIT : BaseGradleIT() {
|
||||
appendText("\nkotlin.native.linkArgs=-Xfoo=bar -Xbaz=qux")
|
||||
}
|
||||
gradleBuildScript().modify(::transformBuildScriptWithPluginsDsl)
|
||||
gradleBuildScript().appendText("""
|
||||
kotlin.linuxX64() {
|
||||
binaries.sharedLib {
|
||||
freeCompilerArgs += "-Xmen=pool"
|
||||
}
|
||||
}
|
||||
""".trimIndent())
|
||||
gradleBuildScript().appendText(
|
||||
"""
|
||||
|
|
||||
|kotlin.linuxX64() {
|
||||
| binaries.sharedLib {
|
||||
| freeCompilerArgs += "-Xmen=pool"
|
||||
| }
|
||||
|}
|
||||
""".trimMargin()
|
||||
)
|
||||
build("linkDebugSharedLinuxX64") {
|
||||
assertSuccessful()
|
||||
assertTasksExecuted(
|
||||
|
||||
+25
-37
@@ -499,15 +499,14 @@ internal fun Path.enableAndroidSdk() {
|
||||
applyAndroidTestFixes()
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalPathApi::class)
|
||||
internal fun Path.enableCacheRedirector() {
|
||||
// Path relative to the current gradle module project dir
|
||||
val redirectorScript = Paths.get("../../../gradle/cacheRedirector.gradle.kts")
|
||||
val redirectorScript = Paths.get("../../../repo/scripts/cache-redirector.settings.gradle.kts")
|
||||
assert(redirectorScript.exists()) {
|
||||
"$redirectorScript does not exist! Please provide correct path to 'cacheRedirector.gradle.kts' file."
|
||||
"$redirectorScript does not exist! Please provide correct path to 'cache-redirector.settings.gradle.kts' file."
|
||||
}
|
||||
val gradleDir = resolve("gradle").also { it.createDirectories() }
|
||||
redirectorScript.copyTo(gradleDir.resolve("cacheRedirector.gradle.kts"))
|
||||
redirectorScript.copyTo(gradleDir.resolve("cache-redirector.settings.gradle.kts"))
|
||||
|
||||
val projectCacheRedirectorStatus = Paths
|
||||
.get("../../../gradle.properties")
|
||||
@@ -519,45 +518,34 @@ internal fun Path.enableCacheRedirector() {
|
||||
.also { if (!it.exists()) it.createFile() }
|
||||
.appendText(
|
||||
"""
|
||||
|
||||
$projectCacheRedirectorStatus
|
||||
|
||||
""".trimIndent()
|
||||
|
|
||||
|$projectCacheRedirectorStatus
|
||||
|
|
||||
""".trimMargin()
|
||||
)
|
||||
|
||||
val projectDir = toFile()
|
||||
projectDir.walk().forEach {
|
||||
when (it.name) {
|
||||
"build.gradle" -> {
|
||||
it.appendText(
|
||||
"""
|
||||
|
||||
def cacheRedirectorFile = "${'$'}rootDir/gradle/cacheRedirector.gradle.kts"
|
||||
if (new File(cacheRedirectorFile).exists()) {
|
||||
apply(from: cacheRedirectorFile)
|
||||
}
|
||||
|
||||
""".trimIndent()
|
||||
)
|
||||
}
|
||||
|
||||
"build.gradle.kts" -> {
|
||||
it.appendText(
|
||||
"""
|
||||
|
||||
val cacheRedirectorFile = "${'$'}rootDir/gradle/cacheRedirector.gradle.kts"
|
||||
if (File(cacheRedirectorFile).exists()) {
|
||||
apply(from = cacheRedirectorFile)
|
||||
}
|
||||
|
||||
""".trimIndent()
|
||||
)
|
||||
}
|
||||
val settingsGradle = resolve("settings.gradle")
|
||||
val settingsGradleKts = resolve("settings.gradle.kts")
|
||||
when {
|
||||
Files.exists(settingsGradle) -> settingsGradle.modify {
|
||||
"""
|
||||
|${it.substringBefore("pluginManagement {")}
|
||||
|pluginManagement {
|
||||
| apply from: 'gradle/cache-redirector.settings.gradle.kts'
|
||||
|${it.substringAfter("pluginManagement {")}
|
||||
""".trimMargin()
|
||||
}
|
||||
Files.exists(settingsGradleKts) -> settingsGradleKts.modify {
|
||||
"""
|
||||
|${it.substringBefore("pluginManagement {")}
|
||||
|pluginManagement {
|
||||
| apply(from = "gradle/cache-redirector.settings.gradle.kts")
|
||||
|${it.substringAfter("pluginManagement {")}
|
||||
""".trimMargin()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalPathApi::class)
|
||||
private fun Path.addHeapDumpOptions() {
|
||||
val propertiesFile = resolve("gradle.properties")
|
||||
if (!propertiesFile.exists()) propertiesFile.createFile()
|
||||
|
||||
Reference in New Issue
Block a user