summaryrefslogtreecommitdiff
blob: a243e54b5cb182ff99bfed19cb40e296155c61e7 (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
142
143
144
145
146
147
148
149
150
151
152
153
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$

EAPI=5

PYTHON_COMPAT=( python2_7 )
PYTHON_REQ_USE="sqlite"

inherit eutils multilib gnome2-utils cmake-utils python-single-r1

DESCRIPTION="User friendly Geographic Information System"
HOMEPAGE="http://www.qgis.org/"
SRC_URI="
	http://qgis.org/downloads/qgis-${PV}.tar.bz2
	examples? ( http://download.osgeo.org/qgis/data/qgis_sample_data.tar.gz )"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="examples grass gsl mapserver postgres python test"

REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )
		mapserver? ( python )"

RDEPEND="
	${PYTHON_DEPS}
	dev-libs/expat
	sci-geosciences/gpsbabel
	>=sci-libs/gdal-1.6.1[geos,python?,${PYTHON_USEDEP}]
	sci-libs/geos
	gsl? ( sci-libs/gsl )
	sci-libs/libspatialindex
	sci-libs/proj
	dev-qt/qtcore:4
	dev-qt/qtgui:4
	dev-qt/qtsvg:4
	dev-qt/qtsql:4
	dev-qt/qtwebkit:4
	dev-qt/designer:4
	x11-libs/qscintilla:=[qt4(-)]
	|| (
		( || ( <x11-libs/qwt-6.1.2:6[svg] >=x11-libs/qwt-6.1.2:6[svg,qt4] ) >=x11-libs/qwtpolar-1 )
		( x11-libs/qwt:5[svg] <x11-libs/qwtpolar-1 )
	)
	grass? ( || ( >=sci-geosciences/grass-7.0.0 ) )
	mapserver? ( dev-libs/fcgi )
	postgres? ( dev-db/postgresql:* )
	python? (
		dev-python/PyQt4[X,sql,svg,webkit,${PYTHON_USEDEP}]
		dev-python/sip[${PYTHON_USEDEP}]
		dev-python/qscintilla-python[${PYTHON_USEDEP}]
		postgres? ( dev-python/psycopg:2[${PYTHON_USEDEP}] )
		${PYTHON_DEPS}
	)
	dev-db/sqlite:3
	dev-db/spatialite
	app-crypt/qca:2[qt4,ssl]
"

DEPEND="${RDEPEND}
	sys-devel/bison
	sys-devel/flex"

pkg_setup() {
	python-single-r1_pkg_setup
}

src_configure() {
	local mycmakeargs=(
		"-DQGIS_MANUAL_SUBDIR=/share/man/"
		"-DBUILD_SHARED_LIBS=ON"
		"-DQGIS_LIB_SUBDIR=$(get_libdir)"
		"-DQGIS_PLUGIN_SUBDIR=$(get_libdir)/qgis"
		"-DWITH_INTERNAL_QWTPOLAR=OFF"
		"-DPEDANTIC=OFF"
		"-DWITH_APIDOC=OFF"
		"-DWITH_SPATIALITE=ON"
		"-DWITH_INTERNAL_SPATIALITE=OFF"
		$(cmake-utils_use_with postgres POSTGRESQL)
		$(cmake-utils_use_with grass GRASS)
		$(cmake-utils_use_with mapserver SERVER)
		$(cmake-utils_use_with python BINDINGS)
		$(cmake-utils_use python BINDINGS_GLOBAL_INSTALL)
		$(cmake-utils_use_with python PYSPATIALITE)
		$(cmake-utils_use_with gsl GSL)
		$(cmake-utils_use_enable test TESTS)
		$(usex grass "-DGRASS_PREFIX=/usr/" "")
	)

	if has_version '>=x11-libs/qwtpolar-1' &&  has_version 'x11-libs/qwt:5' ; then
		elog "Both >=x11-libs/qwtpolar-1 and x11-libs/qwt:5 installed. Force build with qwt6"
		if has_version '>=x11-libs/qwt-6.1.2' ; then
			mycmakeargs+=(
				"-DQWT_INCLUDE_DIR=/usr/include/qwt6"
				"-DQWT_LIBRARY=/usr/$(get_libdir)/libqwt6-qt4.so"
			)
		else
			mycmakeargs+=(
				"-DQWT_INCLUDE_DIR=/usr/include/qwt6"
				"-DQWT_LIBRARY=/usr/$(get_libdir)/libqwt6.so"
			)
		fi
	fi

	cmake-utils_src_configure
}

src_install() {
	cmake-utils_src_install
	dodoc BUGS ChangeLog CODING

	newicon -s 128 images/icons/qgis-icon.png qgis.png
	make_desktop_entry qgis "QGIS " qgis

	if use examples; then
		insinto /usr/share/doc/${PF}/examples
		doins -r "${WORKDIR}"/qgis_sample_data/*
	fi

	python_optimize "${D}"/usr/share/qgis/python/plugins \
		"${D}"/$(python_get_sitedir)/qgis

	if use grass; then
		python_fix_shebang "${D}"/usr/share/qgis/grass/scripts
		python_optimize "${D}"/usr/share/qgis/grass/scripts
	fi
}

pkg_preinst() {
	gnome2_icon_savelist
}

pkg_postinst() {
	if use postgres; then
		elog "If you don't intend to use an external PostGIS server"
		elog "you should install:"
		elog "   dev-db/postgis"
	else
		if use python ; then
			elog "Support of PostgreSQL is disabled."
			elog "But some installed python-plugins needs import psycopg2 module."
			elog "If you do not need this modules just disable them in main menu."
			elog "Or you need to set USE=postgres"
		fi
	fi

	gnome2_icon_cache_update
}

pkg_postrm() {
	gnome2_icon_cache_update
}