summaryrefslogtreecommitdiff
path: root/recipes/swt/swt-gtk.inc
blob: 98565ad446f15e20f3f578c55cf853d01ed9c753 (plain)
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
DESCRIPTION = "SWT is an open source widget toolkit for Java designed to provide efficient, portable access to the user-interface facilities"
LICENSE = "CPL MPL LGPL"

inherit java-library

# classpath provides jni.h which is needed herein
DEPENDS = "fastjar-native cairo gtk+ atk libxtst classpath"

S = "${WORKDIR}/swt-source"

# A number which is used by SWT to mark the shared libraries. It can be found
# in the version.txt file inside the source directory.
SWT_API_VERSION = ${@bb.fatal('SWT_API_VERSION is not defined in this swt-gtk recipe!')}

# From SWT 3.6 on the link flags can be given via a Makefile parameter.
EXTRA_OEMAKE = 'SWT_LFLAGS="${LDFLAGS}"'

do_unpackpost() {
  if [ ! -d ${S} ]; then
    mkdir ${S}
    cd ${S}
  fi

  unzip -o ../src.zip
  cp ../Makefile .

  # Sets version numbers for native libraries.
  sed -i -e "s|RELEASE=OE_SWT_RELEASE|RELEASE=${PV}|" Makefile
  sed -i -e "s|SONAME_VERSION=OE_SWT_API_VERSION|SONAME_VERSION=${SWT_API_VERSION}|" Makefile

  # Properly applies OE's LDFLAGS to linking step (only effective for < SWT 3.6)
  sed -i -e "s|LIBS = -shared -fPIC|LIBS = -shared ${LDFLAGS}|" make_linux.mak
}

addtask unpackpost after do_unpack before do_patch

do_compile() {
  oe_runmake NATIVE_STATS="-I${STAGING_INCDIR}/classpath"
}

do_install() {
  local swtversion=`cat version.txt | tr -d "version. "`

  oe_jarinstall swt-gtk-${PV}.jar swt-gtk.jar swt.jar

  oe_libinstall -so libswt-atk-gtk-$swtversion ${D}/${libdir_jni}
  oe_libinstall -so libswt-cairo-gtk-$swtversion ${D}/${libdir_jni}  
  oe_libinstall -so libswt-pi-gtk-$swtversion ${D}/${libdir_jni}
  oe_libinstall -so libswt-gtk-$swtversion ${D}/${libdir_jni}
}

PACKAGES += "lib${PN}-jni"

FILES_lib${PN}-jni = "${libdir_jni}/lib*.so*"

RDEPENDS_${JPN} = "lib${PN}-jni"
RPROVIDES_${JPN} = "libswt${SWT_API_VERSION}-gtk-java"