summaryrefslogtreecommitdiff
blob: b5e1449e7b107906cec0f9b7b15b49d48a891043 (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
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$

EAPI=4

PYTHON_DEPEND="python? 2"
MY_P="${PN}-v${PV}"

inherit eutils python scons-utils toolchain-funcs

DESCRIPTION="A Free Toolkit for developing mapping applications"
HOMEPAGE="http://www.mapnik.org/"
SRC_URI="https://github.com/downloads/${PN}/${PN}/${MY_P}.tar.bz2"

LICENSE="LGPL-3"
SLOT="0"
KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
IUSE="bidi cairo debug doc gdal geos postgres python sqlite"

RDEPEND="
	>=dev-libs/boost-1.48[python?]
	dev-libs/icu
	dev-libs/libxml2
	media-fonts/dejavu
	media-libs/freetype
	media-libs/libpng
	media-libs/tiff
	net-misc/curl
	sci-libs/proj
	sys-libs/zlib
	virtual/jpeg
	x11-libs/agg[truetype]
	bidi? ( dev-libs/fribidi )
	cairo? (
		x11-libs/cairo
		dev-cpp/cairomm
		python? ( dev-python/pycairo )
	)
	gdal? ( sci-libs/gdal )
	geos? ( sci-libs/geos )
	postgres? ( >=dev-db/postgresql-8.3 )
	sqlite? ( dev-db/sqlite:3 )
"

DEPEND="${RDEPEND}"

S="${WORKDIR}/${MY_P}"

pkg_setup() {
	if use python; then
		python_set_active_version 2
		python_pkg_setup
	fi
}

src_prepare() {
	epatch \
		"${FILESDIR}"/${PN}-2.0.1-scons.patch \
		"${FILESDIR}"/${PN}-2.0.1-configure-only-once.patch \
		"${FILESDIR}"/${PN}-2.0.1-destdir.patch \
		"${FILESDIR}"/${P}-boost_build.patch

	# do not version epidoc data
	sed -i \
		-e 's:-`mapnik-config --version`::g' \
		utils/epydoc_config/build_epydoc.sh || die
}

src_configure() {
	local PLUGINS=shape,raster,osm
	use gdal && PLUGINS+=,gdal,ogr
	use geos && PLUGINS+=,geos
	use postgres && PLUGINS+=,postgis
	use sqlite && PLUGINS+=,sqlite

	myesconsargs=(
		"CC=$(tc-getCC)"
		"CXX=$(tc-getCXX)"
		"INPUT_PLUGINS=${PLUGINS}"
		"PREFIX=/usr"
		"XMLPARSER=libxml2"
		"LINKING=shared"
		"RUNTIME_LINK=shared"
		"PROJ_INCLUDES=/usr/include"
		"PROJ_LIBS=/usr/$(get_libdir)"
		"SYSTEM_FONTS=/usr/share/fonts"
		$(use_scons python BINDINGS all none)
		$(use_scons python BOOST_PYTHON_LIB boost_python-${PYTHON_ABI})
		$(use_scons bidi BIDI)
		$(use_scons cairo CAIRO)
		$(use_scons debug DEBUG)
		$(use_scons debug XML_DEBUG)
		$(use_scons doc DEMO)
		$(use_scons doc SAMPLE_INPUT_PLUGINS)
		"CUSTOM_LDFLAGS=${LDFLAGS}"
		"CUSTOM_LDFLAGS+=-L${ED}/usr/$(get_libdir)"
	)

	# force user flags, optimization level
	sed -i -e "s:\-O%s:${CXXFLAGS}:" \
		-i -e "s:env\['OPTIMIZATION'\]\,::" \
		SConstruct || die "sed 3 failed"
	escons configure
}

src_compile() {
	escons
}

src_install() {
	escons install

	# even with all the mess it still installs into $S
	mv "${S}/usr" "${ED}" || die

	if use python ; then
		fperms 0644 "$(python_get_sitedir)"/${PN}/paths.py
		dobin utils/stats/mapdef_stats.py
	fi

	dodoc AUTHORS.md README.md
}

pkg_postinst() {
	elog ""
	elog "See the home page or wiki (http://trac.mapnik.org/) for more info"
	elog "or the installed examples for the default mapnik ogcserver config."
	elog ""

	use python && python_mod_optimize ${PN}
}

pkg_postrm() {
	use python && python_mod_cleanup ${PN}
}