-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuildfile
64 lines (49 loc) · 2.14 KB
/
buildfile
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
# Generated by Buildr 1.4.6, change to your liking
# Version number for this release
VERSION_NUMBER = "0.0.1"
# Group identifier for your projects
GROUP = "SonosControl"
COPYRIGHT = "Klas Kalass"
LIB_GUAVA='com.google.guava:guava:jar:11.0'
LIB_SLF4J_API='org.slf4j:slf4j-api:jar:1.6.4'
LIB_JSR305='com.google.code.findbugs:jsr305:jar:1.3.9'
LIB_CLING_CORE='org.fourthline.cling:cling-core:jar:2.0-SNAPSHOT'
LIB_TELEAL_COMMON='org.seamless:seamless-util:jar:1.0-SNAPSHOT','org.seamless:seamless-http:jar:1.0-SNAPSHOT'
LIB_SLF4J_IMPL='org.slf4j:slf4j-jdk14:jar:1.6.4'
LIB_FREEMARKER='org.freemarker:freemarker:jar:2.3.18'
# Specify Maven 2.0 remote repositories here, like this:
repositories.remote << "http://repo1.maven.org/maven2"
repositories.remote << "http://4thline.org/m2"
def add_dependencies(pkg)
tempfile = pkg.to_s.sub(/.jar$/, "-without-dependencies.jar")
mv pkg.to_s, tempfile
dependencies = compile.dependencies.map { |d| "-c #{d}"}.join(" ")
sh "java -jar tools/autojar.jar -baev -m etc/META-INF/MANIFEST.MF -o #{pkg} #{dependencies} #{tempfile}"
end
desc "The Sonoscontrol project"
define "sonos-control" do
project.version = VERSION_NUMBER
project.group = GROUP
manifest["Implementation-Vendor"] = COPYRIGHT
test.using :testng
define 'api-generator', :base_dir => 'sonos-control-api-generator' do
test.using :testng
compile.with LIB_GUAVA,LIB_SLF4J_API,LIB_JSR305, LIB_FREEMARKER,LIB_CLING_CORE,LIB_TELEAL_COMMON
package(:jar)
end
define 'api', :base_dir => 'sonos-control-api' do
compile.with LIB_GUAVA,LIB_SLF4J_API,LIB_JSR305
package(:jar)
end
define 'api-clingimpl', :base_dir => 'sonos-control-api-clingimpl' do
test.using :testng
test.with LIB_SLF4J_IMPL
compile.with LIB_GUAVA,LIB_SLF4J_API,LIB_JSR305,LIB_CLING_CORE,LIB_TELEAL_COMMON,project('api')
package(:jar)
end
define 'cli', :base_dir => 'sonos-control-cli' do
compile.with LIB_GUAVA,LIB_SLF4J_API,LIB_JSR305,LIB_CLING_CORE,LIB_TELEAL_COMMON,LIB_SLF4J_IMPL,project('api'), project('api-clingimpl')
package(:jar)
package(:jar).enhance { |pkg| pkg.enhance { |pkg| add_dependencies(pkg) }}
end
end