oe-buglabs: fix default osgi bundle directory in java-osgi.bbclass.
[leafcutter:leafcutter-oe.git] / classes / java-osgi.bbclass
1 inherit java-library
2
3 # use java_stage for native packages
4 JAVA_NATIVE_STAGE_INSTALL = "1"
5
6 datadir_osgi ?= ${datadir}/osgi/bundle
7
8 def osgi_package_name(d):
9   import bb;
10
11   pre=""
12   post=""
13
14   pn = bb.data.getVar('PN', d, 1)
15   if not pn.startswith("lib"):
16     pre='lib'
17
18   if not pn.endswith("-osgi"):
19     post='-osgi'
20
21   return pre + pn + post
22
23 JPN ?= "${@osgi_package_name(d)}"
24
25 DEPENDS_prepend = "virtual/javac-native fastjar-native ant-native bnd-native "
26
27 PACKAGES = "${JPN}"
28
29 PACKAGE_ARCH_${JPN} = "all"
30
31 FILES_${JPN} = "${datadir_osgi}"
32
33 # File name of the libraries' main Jar file
34 JARFILENAME = "${BP}.jar"
35
36 # Space-separated list of alternative file names.
37 ALTJARFILENAMES = "${BPN}.jar"
38
39 do_install_append() {
40         bnd wrap -output ${BP}-osgi.jar ${BP}.jar
41         oe_osgijarinstall ${BP}-osgi.jar
42 }
43
44 oe_osgijarinstall() {
45   # Purpose: Install a jar file and create all the given symlinks to it.
46   # Example:
47   # oe_osgijarinstall foo-1.3.jar foo.jar
48   # Installs foo-1.3.jar and creates symlink foo.jar.
49   #
50   # oe_osgijarinstall -s foo-1.3.jar foo.jar
51   # Installs foo-1.3.jar to staging and creates symlink foo.jar.
52   #
53   # oe_osgijarinstall -r foo-1.3.jar foo_1_3.jar foo.jar
54   # Installs foo_1_3.jar as foo-1.3.jar and creates a symlink to this.
55   #
56   dir=${D}${datadir_osgi}
57   destname=""
58   while [ "$#" -gt 0 ]; do
59     case "$1" in
60     -s)
61                         # put jar files to native staging if this is a -native recipe
62                         if [ ${PACKAGE_ARCH} = ${BUILD_ARCH} ]; then
63               dir=${STAGING_DATADIR_JAVA_NATIVE}
64                         else
65               dir=${STAGING_DATADIR_JAVA}
66                         fi
67       ;;
68     -r)
69       shift
70       destname=$1
71       ;;
72     -*)
73       oefatal "oe_osgijarinstall: unknown option: $1"
74       ;;
75     *)
76       break;
77       ;;
78     esac
79     shift
80   done
81
82   jarname=$1
83   destname=${destname:-`basename $jarname`}
84   shift
85
86   install -d $dir
87   install -m 0644 $jarname $dir/$destname
88
89   # Creates symlinks out of the remaining arguments.
90   while [ "$#" -gt 0 ]; do
91     if [ -e $dir/$1 -o -h $dir/$1 ]; then
92       oewarn "file was in the way. removing:" $dir/$1
93       rm $dir/$1
94     fi
95     ln -s $destname $dir/$1
96     shift
97   done
98 }