summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: eef20dd74e1ece0a4e78830f7b513a0f4629c518 (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
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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
# Maintainer: qs9rx <qs9rx.aur@enjoys.it>

# Previous Maintainers: scimmia, XavierCLL, SaultDon, Lantald, Thomas
#     Dziedzic, dibblethewrecker, Gerardo Exequiel Pozzi, Eric Forgeot,
#     Fincer, gaelic

pkgname=qgis-git
_pkgname=qgis
pkgver=3.99_master.r83167.f4f9432232a
_pkgver=3.99_master  # fake pkgver prefix for the name
pkgrel=1
pkgdesc='Geographic Information System (GIS) that supports vector, raster & database formats - Development master'
url='http://qgis.org/'
license=('GPL')
arch=('x86_64')
depends=(
  'proj' 'geos' 'sqlite' 'qwtpolar' 'expat' 'spatialindex' 'gsl' 'libzip' 'exiv2' 'ocl-icd' 'protobuf' 'pdal-git'
  'qt5-tools' 'qt5-script' 'qtkeychain' 'sip' 'qca-qt5' 'qt5-webkit' 'qt5-3d' 'qt5-serialport' 'qt5-xmlpatterns'
  'python-gdal' 'python-owslib' 'python-future' 'python-psycopg2' 'python-yaml' 'python-numpy' 'python-jinja' 'python-pygments'
  'python-pyqt5' 'python-qscintilla-qt5'
)
makedepends=(git cmake ninja pyqt-builder opencl-clhpp fcgi qt5-tools sip)
optdepends=('grass: for GRASS providers and plugin (6 or 7)'
#            'gsl: for georeferencer'
            'postgresql: for postgis and SPIT support'
            'gpsbabel: for gps plugin'
            'ocilib: oracle provider')

source=("${_pkgname}::git+https://github.com/qgis/QGIS.git")
sha256sums=('SKIP')
provides=('qgis')

pkgver(){
  cd "$_pkgname"
  printf "%s.r%s" "$_pkgver" "$(git rev-list --count HEAD).$(git rev-parse --short HEAD)"
}

prepare() {
  cd $_pkgname

  # Fix desktop file for /usr/bin/qgis-github
#   sed -e 's/\/usr\/bin\/qgis/\/usr\/bin\/qgis-git/g' \
   sed -e 's/Exec=qgis/Exec=qgis-git/g' \
  		-e 's/Icon=qgis/Icon=qgis-git/g' \
  		-i linux/org.qgis.qgis.desktop.in
#   cp linux/org.qgis.qgis.desktop.in linux/org.qgis.qgis-git.desktop

  # Remove mime types already defined by freedesktop.org
  sed -e '/type="image\/tiff"/,/<\/mime-type>/d' \
      -e '/type="image\/jpeg"/,/<\/mime-type>/d' \
      -e '/type="image\/jp2"/,/<\/mime-type>/d' \
      -e '/type="application\/x-adobe-mif"/,/<\/mime-type>/d' \
      -i debian/qgis.xml

  [[ -d build ]] || mkdir build
}

build() {
  cd $_pkgname/build

  cmake -G "Ninja" ../ \
    -DCMAKE_INSTALL_PREFIX=/opt/$pkgname \
    -DCMAKE_BUILD_TYPE=RelWithDebInfo \
    -DQGIS_MANUAL_SUBDIR=share/man \
    -DWITH_3D=TRUE \
    -DWITH_QUICK=TRUE \
    -DWITH_SERVER=TRUE \
    -DBINDINGS_GLOBAL_INSTALL=FALSE \
    -DWITH_QTWEBKIT=FALSE \
    -DWITH_QWTPOLAR=TRUE \
    -DQWTPOLAR_LIBRARY=/usr/lib/libqwt.so \
    -DQWTPOLAR_INCLUDE_DIR=/usr/include/qwt \
    -DCMAKE_CXX_FLAGS="${CXXFLAGS} -DQWT_POLAR_VERSION=0x060200" \
    -DWITH_INTERNAL_QWTPOLAR=FALSE \
    -DWITH_PDAL=TRUE \
    -DHAS_KDE_QT5_PDF_TRANSFORM_FIX=TRUE \
    -DHAS_KDE_QT5_SMALL_CAPS_FIX=TRUE \
    -DHAS_KDE_QT5_FONT_STRETCH_FIX=TRUE
    # https://github.com/qgis/QGIS/issues/48374
    #-DWITH_INTERNAL_LAZPERF=FALSE \
    # https://github.com/qgis/QGIS/issues/35440
    #-DWITH_PY_COMPILE=TRUE \

  ninja
}

package() {
  cd $_pkgname/build

  # Add optional deps based on selected or autodetected options
  [[ -n "$(sed -n '/^GRASS_PREFIX:/ s/.*=//p' CMakeCache.txt)" ]] && optdepends+=('grass6: GRASS6 plugin')
  [[ -n "$(sed -n '/^GRASS_PREFIX7:/ s/.*=//p' CMakeCache.txt)" ]] && optdepends+=('grass: GRASS7 plugin')
  [[ "$(sed -n '/^WITH_SERVER:/ s/.*=//p' CMakeCache.txt)" == "TRUE" ]] && optdepends+=('fcgi: Map Server')

  DESTDIR="$pkgdir" cmake --install .

  cd "$srcdir/$_pkgname"
  
  install -d -m755 $pkgdir/usr/bin
  ln -s /opt/$pkgname/bin/qgis "$pkgdir/usr/bin/qgis-git"
  
  # install desktop files and icons
  install -Dm644 build/org.qgis.qgis.desktop "$pkgdir/usr/share/applications/org.qgis.qgis-git.desktop"
  for resolution in `ls /usr/share/icons/hicolor/|egrep '[0-9]'`; do
  	if [ -e debian/icons/qgis-icon{$resolution}.png ]
  	then
	  	install -Dm644 debian/icons/qgis-icon${resolution}.png "$pkgdir/usr/share/icons/hicolor/${resolution}/apps/$pkgname.png"
	  fi 
  done
	install -Dm644 images/icons/qgis_icon.svg "$pkgdir/usr/share/icons/hicolor/scalable/apps/$pkgname.svg"
	
  # install mime information and icon
  install -Dm644 debian/qgis.xml "$pkgdir/usr/share/mime/packages/qgis-git.xml"
  for resolution in `ls /usr/share/icons/hicolor/|egrep '[0-9]'`; do
  	if [ -e debian/icons/qgis-mime-icon{$resolution}.png ]
  	then
	  	install -Dm644 debian/icons/qgis-mime-icon${resolution}.png "$pkgdir/usr/share/icons/hicolor/${resolution}/mimetypes/qgis-git-mime.png"
	  fi
	done
	install -Dm644 images/icons/qgis_mime_icon.svg "$pkgdir/usr/share/icons/hicolor/scalable/mimetypes/qgis-git-mime.svg"
	  
	for type in qgs qlr qml qpt; do
		for resolution in `ls /usr/share/icons/hicolor/|egrep '[0-9]'`; do
			if [ -e debian/icons/qgis-${type}${resolution}.png ]
  		then
	  		install -Dm644 debian/icons/qgis-${type}${resolution}.png "$pkgdir/usr/share/icons/hicolor/${resolution}/mimetypes/qgis-git-$type.png"
	  	fi
		done
	done
	for type in asc ddf dem dt0 dxf gml img mime mldata qgs qlr qml qpt shp sqlite; do
    install -Dm644 images/icons/qgis_${type}_icon.svg "$pkgdir/usr/share/icons/hicolor/scalable/mimetypes/qgis-git-$type.svg"
  done

  # compile python files, since the cmake option doesn't seem to account for DESTDIR
  python -m compileall -q "$pkgdir"
  
  # link libraries
  install -d -m755 "${pkgdir}"/etc/ld.so.conf.d/
  echo '/opt/qgis-git/lib' > "${pkgdir}"/etc/ld.so.conf.d/qgis-git.conf
}