* Add tasks to generate source jars for java executables * native source bundles * source bundles in separate plugin * Wire up sourceBundle task * Produce bundles on a per-variant basis (Java fat jar, each native variant) * Introduce `pklNativeSourceBundle` and `pklJvmSourceBundle` plugins for handling fat jar vs. GraalVM bits * Download compiled classes list, and exclude Java sources for executable stuff specifically * Include native sources when appropriate (GraalVM, JDK, zlib, musl, libpkl) --------- Co-authored-by: Jen Basch <jbasch@apple.com>
111 lines
2.5 KiB
Kotlin
111 lines
2.5 KiB
Kotlin
/*
|
|
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* https://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
rootProject.name = "pkl"
|
|
|
|
includeBuild("build-logic")
|
|
|
|
include("bench")
|
|
|
|
include("docs")
|
|
|
|
include("libpkl")
|
|
|
|
include("pkl-bom")
|
|
|
|
include("pkl-cli")
|
|
|
|
include("pkl-codegen-java")
|
|
|
|
include("pkl-codegen-kotlin")
|
|
|
|
include("pkl-commons")
|
|
|
|
include("pkl-commons-cli")
|
|
|
|
include("pkl-commons-test")
|
|
|
|
include("pkl-config-java")
|
|
|
|
include("pkl-config-kotlin")
|
|
|
|
include("pkl-core")
|
|
|
|
include("pkl-doc")
|
|
|
|
include("pkl-executor")
|
|
|
|
include("pkl-formatter")
|
|
|
|
include("pkl-gradle")
|
|
|
|
include("pkl-parser")
|
|
|
|
include("pkl-server")
|
|
|
|
include("pkl-tools")
|
|
|
|
include("stdlib")
|
|
|
|
pluginManagement {
|
|
repositories {
|
|
mavenCentral()
|
|
gradlePluginPortal()
|
|
}
|
|
}
|
|
|
|
plugins { id("org.gradle.toolchains.foojay-resolver-convention") version ("1.0.0") }
|
|
|
|
@Suppress("UnstableApiUsage")
|
|
dependencyResolutionManagement {
|
|
repositories {
|
|
mavenCentral()
|
|
// Source archives of tagged GitHub releases (used to bundle sources of native executables).
|
|
exclusiveContent {
|
|
forRepository {
|
|
ivy {
|
|
name = "GitHub tag archives"
|
|
url = uri("https://github.com/")
|
|
patternLayout { artifact("[organisation]/[module]/archive/refs/tags/[revision].tar.gz") }
|
|
metadataSources { artifact() }
|
|
}
|
|
}
|
|
filter {
|
|
includeGroup("madler")
|
|
includeGroup("openjdk")
|
|
includeGroup("oracle")
|
|
}
|
|
}
|
|
// musl's release tarballs (used to bundle sources of statically linked musl executables).
|
|
exclusiveContent {
|
|
forRepository {
|
|
ivy {
|
|
name = "musl releases"
|
|
url = uri("https://musl.libc.org/releases/")
|
|
patternLayout { artifact("[module]-[revision].tar.gz") }
|
|
metadataSources { artifact() }
|
|
}
|
|
}
|
|
filter { includeGroup("musl") }
|
|
}
|
|
}
|
|
}
|
|
|
|
for (prj in rootProject.children) {
|
|
prj.buildFileName = "${prj.name}.gradle.kts"
|
|
}
|
|
|
|
enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS")
|