forked from Fazecast/jSerialComm
-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.gradle
116 lines (101 loc) · 3.02 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
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'maven'
apply plugin: 'osgi'
group = 'com.fazecast'
archivesBaseName = 'jSerialComm'
version = '2.5.2'
ext.moduleName = 'com.fazecast.jSerialComm'
assert hasProperty('java6Home'): "Set the property 'java6Home' in your gradle.properties file pointing to a Java 6 JDK installation"
assert hasProperty('java9Home'): "Set the property 'java9Home' in your gradle.properties file pointing to a Java 9 JDK installation"
sourceCompatibility = 1.6
targetCompatibility = 1.6
javadoc.options.links("https://docs.oracle.com/javase/9/docs/api/")
javadoc.options.addBooleanOption('html4', true)
def java6ExecutablesPath = new File(java6Home, 'bin')
def java9ExecutablesPath = new File(java9Home, 'bin')
def java6Executables = [:].withDefault { execName ->
def executable = new File(java6ExecutablesPath, execName)
executable
}
def java9Executables = [:].withDefault { execName ->
def executable = new File(java9ExecutablesPath, execName)
executable
}
tasks.withType(JavaCompile) {
options.with {
fork = true
forkOptions.javaHome = file(java6Home)
}
}
tasks.withType(Javadoc) {
executable = java9Executables.javadoc
}
tasks.withType(Test) {
executable = java6Executables.java
}
tasks.withType(JavaExec) {
executable = java6Executables.java
}
sourceSets {
main {
java {
srcDirs = ['src/main/java']
}
}
moduleInfo {
java {
srcDirs = ['src/moduleInfo/java']
}
}
}
compileModuleInfoJava {
sourceCompatibility = 9
targetCompatibility = 9
inputs.property("moduleName", moduleName)
doFirst {
classpath = files()
options.fork = true
options.forkOptions.javaHome = file(java9Home)
options.sourcepath = files(sourceSets.moduleInfo.java.srcDirs)
options.compilerArgs = [
'--module-path', classpath.asPath,
'-d', sourceSets.main.output.classesDirs.asPath
]
}
}
jar {
from sourceSets.main.output
from sourceSets.moduleInfo.output
manifest {
instruction 'Bundle-Description', 'Java Serial Communications Library'
instruction 'Bundle-Vendor', 'Fazecast, Inc.'
instruction 'Require-Capability', 'osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=1.6))"'
attributes 'Implementation-Title': 'jSerialComm: Java Serial Communications Library',
'Implementation-Version': version,
'Implementation-Vendor': 'Fazecast, Inc.',
'Sealed': 'true'
}
}
task testJar(type: Jar) {
classifier = 'test'
from sourceSets.test.output, sourceSets.main.output
manifest {
attributes 'Main-Class': 'com.fazecast.jSerialComm.SerialPortTest',
'Implementation-Title': 'jSerialComm: Java Serial Communications Library',
'Implementation-Version': version,
'Implementation-Vendor': 'Fazecast, Inc.',
'Sealed': 'true'
}
}
task javadocJar(type: Jar) {
classifier = 'javadoc'
from javadoc
}
task sourcesJar(type: Jar) {
classifier = 'sources'
from sourceSets.main.allSource
}
artifacts {
archives jar, javadocJar, sourcesJar, testJar
}