summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 239eacaac74aa441466fe764d00c171bf89a2b0f (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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# Maintainer: Jens Staal <staal1978@gmail.com>
pkgname=qtjambi
pkgver=6.4.1
_pkg2="$(echo ${pkgver} | cut -d. -f-2)" 
_pkg1="$(echo ${pkgver} | cut -d. -f1)"
##change these variables if needed##
_qtver=qt6
_javaver=19
####################################
pkgrel=2
pkgdesc="QtJambi is Qt bindings for the Java programming language originally developed by Trolltech"
arch=(x86_64)
url="https://github.com/OmixVisualization/qtjambi"
license=('LGPL' 'GPL')
depends=('chrpath' 'jdk-openjdk' "${_qtver}-base" "${_qtver}-remoteobjects")
makedepends=('ant' 'apache-ant-contrib')
source=(https://github.com/OmixVisualization/qtjambi/archive/refs/tags/v${pkgver}.tar.gz)
sha256sums=(280e9f49b11cfbe3fb5461e5a21f2c52aedd903596ea97ac312e1b3eeca4e90b) 

prepare() {
	cd "${srcdir}/${pkgname}-${pkgver}"
    #generate fake qtdir. 
    #Build expects directory structure from QT installer.
    rm -rf qtdir #clean up from older build
    mkdir -p qtdir/include
    for i in {bin,qml,plugins,mkspecs}; do
        ln -s "/usr/lib/${_qtver}/$i" qtdir/$i
    done
    #Hack: qtdir/include need to contain qt6 dir from /usr/include/qt6
    # and the content of /usr/include/qt6 because weird cpp issues
        cp -r /usr/include/${_qtver} qtdir/include/${_qtver}
        cp -r /usr/include/${_qtver}/* qtdir/include/
    #end hack
    ln -s qtdir/bin qtdir/libexec
    ln -s /usr/lib qtdir/lib
    ln -s "/usr/share/${_qtver}/modules" qtdir/modules
    #this should enable use of system qt

}

build() {
	cd "${srcdir}/${pkgname}-${pkgver}"
    export QTDIR="${srcdir}/${pkgname}-${pkgver}/qtdir"
    export JAVA_HOME_TARGET="/usr/lib/jvm/java-${_javaver}-openjdk"
	ant all
}

package() {
	cd "${srcdir}/${pkgname}-${pkgver}"
    mkdir -p ${pkgdir}/usr/share/java/qtjambi
    install ${pkgver}/deployment/*.jar ${pkgdir}/usr/share/java/qtjambi/
    install ${pkgver}/deployment/native/linux-x64/release/plugins/sqldrivers/*.jar ${pkgdir}/usr/share/java/qtjambi/
    mkdir -p ${pkgdir}/usr/{lib,bin}
    install ${pkgver}/deployment/native/linux-x64/release/utilities/*.so ${pkgdir}/usr/lib/
    install ${pkgver}/deployment/native/linux-x64/release/lib/* ${pkgdir}/usr/lib/
    install ${pkgver}/deployment/native/linux-x64/release/plugins/sqldrivers/*.so ${pkgdir}/usr/lib/
    install ${pkgver}/deployment/native/linux-x64/release/utilities/QtJambiLauncher ${pkgdir}/usr/bin/
    mkdir -p ${pkgdir}/usr/share/licenses/qtjambi
    cp LICENSE.* ${pkgdir}/usr/share/licenses/qtjambi/

    #libraries get installed as copies instead of as symlinks. Fix up
    cd ${pkgdir}/usr/lib
    for i in {libQtJambi{,3D{Animation,Core,Extras,Input,Logic,Quick{,Extras,Scene2D},Render},Bluetooth,Charts,\
        Concurrent,Core,DBus,DataVisualization,Designer,Gui,Help,HttpServer,Multimedia{,Widgets},Network{,Auth},\
        Nfc,OpenGL,{,Widgets},Pdf{,Widgets},Positioning,PrintSupport,Qml,Quick{,3D,Controls2,Test,Widgets},\
        RemoteObjects,Scxml,Sensors,Serial{Bus,Port},SpatialAudio,Sql,StateMachine,Svg{,Widgets},Test,TextToSpeech,\
        UIC,UiTools,VirtualKeyboard,Web{Channel,Engine{Core,Quick,Widgets},Sockets,View},Widgets,Xml}; do
        for j in {${_pkg2},${_pkg1}}; do
            rm ${i}.so.${j}
            ln -s ${i}.so.${pkgver} ${i}.so.${j}
        done
    done
    #Hopefully will this ugly hack only be temporary...
}