aboutsummaryrefslogtreecommitdiffstats
path: root/z3/buildSrc/src/main/kotlin/tools/refinery/z3/gradle/java-library.gradle.kts
diff options
context:
space:
mode:
Diffstat (limited to 'z3/buildSrc/src/main/kotlin/tools/refinery/z3/gradle/java-library.gradle.kts')
-rw-r--r--z3/buildSrc/src/main/kotlin/tools/refinery/z3/gradle/java-library.gradle.kts75
1 files changed, 75 insertions, 0 deletions
diff --git a/z3/buildSrc/src/main/kotlin/tools/refinery/z3/gradle/java-library.gradle.kts b/z3/buildSrc/src/main/kotlin/tools/refinery/z3/gradle/java-library.gradle.kts
new file mode 100644
index 00000000..75d64a6f
--- /dev/null
+++ b/z3/buildSrc/src/main/kotlin/tools/refinery/z3/gradle/java-library.gradle.kts
@@ -0,0 +1,75 @@
1/*
2 * SPDX-FileCopyrightText: 2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6package tools.refinery.z3.gradle
7
8plugins {
9 `java-library`
10 `maven-publish`
11}
12
13java {
14 toolchain {
15 languageVersion.set(JavaLanguageVersion.of(21))
16 }
17}
18
19repositories {
20 mavenCentral()
21
22 // Configuration based on https://stackoverflow.com/a/34327202 to pretend that GitHub is an Ivy repository
23 // in order to take advantage of Gradle dependency caching.
24 val github = ivy {
25 setUrl("https://github.com")
26 patternLayout {
27 artifact("/[organisation]/[module]/releases/download/[module]-[revision]/[classifier].[ext]")
28 artifact("/[organisation]/[module]/archive/refs/tags/[module]-[revision].[ext]")
29 }
30 metadataSources {
31 artifact()
32 }
33 }
34
35 exclusiveContent {
36 forRepositories(github)
37 filter {
38 includeGroup("Z3Prover")
39 }
40 }
41}
42
43val z3: Provider<Configuration> by configurations.registering {
44 isCanBeConsumed = false
45 isCanBeResolved = true
46}
47
48tasks {
49 jar {
50 manifest {
51 attributes(
52 "Bundle-SymbolicName" to "${project.group}.${project.name}",
53 "Bundle-Version" to project.version
54 )
55 }
56 }
57}
58
59publishing.publications {
60 register<MavenPublication>("mavenJava") {
61 from(components["java"])
62 pom {
63 licenses {
64 license {
65 name = "MIT License"
66 url = "https://raw.githubusercontent.com/Z3Prover/z3/master/LICENSE.txt"
67 }
68 license {
69 name = "The Apache License, Version 2.0"
70 url = "http://www.apache.org/licenses/LICENSE-2.0.txt"
71 }
72 }
73 }
74 }
75}