mirrored from https://www.bouncycastle.org/repositories/bc-java
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
/
build.gradle
118 lines (96 loc) · 3.33 KB
/
build.gradle
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
plugins {
id "biz.aQute.bnd.builder" version "7.0.0"
}
jar.archiveBaseName = "bcjmail-$vmrange"
sourceSets {
main {
java {
srcDirs = ['build/src/main/java']
}
}
java9 {
java {
srcDirs = ['src/main/jdk1.9']
}
}
}
dependencies {
implementation project(':prov')
implementation project(':util')
implementation project(':pkix')
implementation group: 'jakarta.mail', name: 'jakarta.mail-api', version: '2.0.1'
implementation group: 'jakarta.activation', name: 'jakarta.activation-api', version: '2.0.0'
implementation files("$bc_prov")
implementation files("$bc_util")
implementation files("$bc_pkix")
implementation project(path: ':core')
java9Implementation files("$bc_prov")
java9Implementation files("$bc_util")
java9Implementation files("$bc_pkix")
java9Implementation files(sourceSets.main.output.classesDirs) {
builtBy compileJava
}
}
task copyTask(type: Copy) {
duplicatesStrategy = 'include'
from '../mail/src/main/java'
from 'src/main/java'
into 'build/src/main/java'
filter { String line -> (line.contains('javax.mail') || line.contains('javax.activation')) ? line.replace('javax.mail', 'jakarta.mail').replace('javax.activation', 'jakarta.activation') : line }
}
compileJava.dependsOn(copyTask)
compileJava {
javaCompiler = javaToolchains.compilerFor {
languageVersion = JavaLanguageVersion.of(17)
}
targetCompatibility = 1.8;
sourceCompatibility = 1.8;
}
compileJava9Java {
javaCompiler = javaToolchains.compilerFor {
languageVersion = JavaLanguageVersion.of(17)
}
sourceCompatibility = 9
targetCompatibility = 9
options.compilerArgs += [
'--module-path', "$bc_prov${File.pathSeparator}$bc_util${File.pathSeparator}$bc_pkix${File.pathSeparator}${rootProject.projectDir}/libs/jakarta.mail-2.0.1.jar${File.pathSeparator}${rootProject.projectDir}/libs/jakarta.activation-api-2.0.0.jar"
]
options.sourcepath = files(['build/src/main/java', 'src/main/jdk1.9'])
}
jar {
from sourceSets.main.output
into('META-INF/versions/9') {
from sourceSets.java9.output
}
String v = "${rootProject.extensions.ext.bundle_version}"
manifest.attributes('Multi-Release': 'true')
manifest.attributes('Bundle-Name': 'bcjmail')
manifest.attributes('Bundle-SymbolicName': 'bcjmail')
manifest.attributes('Bundle-RequiredExecutionEnvironment': 'JavaSE-1.8')
manifest.attributes('Export-Package': "org.bouncycastle.mail.*;version=${v}")
manifest.attributes('Import-Package': "java.*;resolution:=optional,javax.*;resolution:=optional,jakarta.*;resolution:=optional,!org.bouncycastle.mail.*,org.bouncycastle.*;version=\"[${v},${maxVersion})\"")
manifest.attributes('Bundle-Version': "${v}")
}
task sourcesJar(type: Jar) {
archiveBaseName = jar.archiveBaseName
archiveClassifier = 'sources'
from sourceSets.main.allSource
into('META-INF/versions/9') {
from sourceSets.java9.allSource
}
}
sourcesJar.dependsOn(copyTask)
task javadocJar(type: Jar, dependsOn: javadoc) {
archiveBaseName = jar.archiveBaseName
archiveClassifier = 'javadoc'
from javadoc.destinationDir
}
artifacts {
archives jar
archives javadocJar
archives sourcesJar
}
test {
forkEvery = 1;
maxParallelForks = 8;
}