You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
95 lines
2.9 KiB
95 lines
2.9 KiB
pluginManagement { |
|
val COMPOSE_CORE_VERSION = extra["compose.version"] as String |
|
println("[build] compose core version: $COMPOSE_CORE_VERSION") |
|
|
|
// pluginManagement section won't see outer scope, hence the FQ names |
|
fun properties(path: String): java.util.Properties? { |
|
val localPropertiesFile = File(path) |
|
if (!localPropertiesFile.exists()) { |
|
return null |
|
} |
|
return java.io.FileInputStream(localPropertiesFile).use() { inputStream -> |
|
val props = java.util.Properties() |
|
props.load(inputStream) |
|
props |
|
} |
|
} |
|
|
|
val localProperties: java.util.Properties? = properties("local.properties") |
|
|
|
|
|
val repos = (localProperties?.getProperty("compose.web.repos"))?.split(File.pathSeparator) |
|
|
|
repositories { |
|
gradlePluginPortal() |
|
mavenCentral() |
|
repos?.forEach { urlPath -> |
|
maven { |
|
url = uri(urlPath) |
|
} |
|
} |
|
mavenLocal() |
|
maven { |
|
url = uri("https://maven.pkg.jetbrains.space/public/p/compose/dev") |
|
} |
|
maven { |
|
url = uri("https://packages.jetbrains.team/maven/p/ui/dev") |
|
} |
|
|
|
google() |
|
} |
|
|
|
resolutionStrategy { |
|
eachPlugin { |
|
if (requested.id.id == "org.jetbrains.compose") { |
|
useModule("org.jetbrains.compose:org.jetbrains.compose.gradle.plugin:$COMPOSE_CORE_VERSION") |
|
} |
|
} |
|
} |
|
} |
|
|
|
dependencyResolutionManagement { |
|
repositories { |
|
google() |
|
mavenCentral() |
|
maven { |
|
url = uri("https://maven.pkg.jetbrains.space/public/p/compose/dev") |
|
} |
|
} |
|
versionCatalogs { |
|
create("libs") { |
|
library("kotlinx-coroutines-core", "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.0-RC") |
|
} |
|
} |
|
} |
|
|
|
fun module(name: String, path: String) { |
|
include(name) |
|
val projectDir = rootDir.resolve(path).normalize().absoluteFile |
|
if (!projectDir.exists()) { |
|
throw AssertionError("file $projectDir does not exist") |
|
} |
|
project(name).projectDir = projectDir |
|
} |
|
|
|
|
|
module(":html-core", "core") |
|
module(":html-svg", "svg") |
|
module(":html-integration-core", "integration-core") |
|
module(":compose-compiler-integration", "compose-compiler-integration") |
|
module(":compose-compiler-integration-lib", "compose-compiler-integration/lib") |
|
module(":internal-html-core-runtime", "internal-html-core-runtime") |
|
module(":html-test-utils", "test-utils") |
|
|
|
if (extra["compose.web.tests.skip.benchmarks"]!!.toString().toBoolean() != true) { |
|
module(":html-benchmark-core", "benchmark-core") |
|
} else { |
|
println("skipping benchmarks") |
|
} |
|
|
|
if (extra["compose.web.buildSamples"]!!.toString().toBoolean() == true) { |
|
println("building with examples") |
|
module(":examples:compose-web-lp", "../examples/web-landing") |
|
module(":examples:web-compose-bird", "../examples/web-compose-bird") |
|
module(":examples:web-with-react", "../examples/web-with-react") |
|
}
|
|
|