*/*: Depend on media-libs/mesa[X(+)]
[gentoo.git] / sci-geosciences / mapserver / mapserver-7.0.5.ebuild
1 # Copyright 1999-2019 Gentoo Authors
2 # Distributed under the terms of the GNU General Public License v2
3
4 EAPI=6
5
6 MY_P="${PN}-${PV/_/-}"
7
8 PHP_EXT_OPTIONAL_USE="php"
9 PHP_EXT_NAME="php_mapscript"
10 PHP_EXT_S="${WORKDIR}/${MY_P}/mapscript/php/"
11 PHP_EXT_SKIP_PHPIZE="no"
12 USE_PHP="php5-6"
13
14 PYTHON_COMPAT=( python2_7 )
15
16 #USE_RUBY="ruby18 ruby19"
17 #RUBY_OPTIONAL="yes"
18
19 WEBAPP_MANUAL_SLOT=yes
20
21 inherit eutils depend.apache webapp distutils-r1 flag-o-matic perl-module php-ext-source-r3 multilib cmake-utils # ruby-ng
22
23 DESCRIPTION="Development environment for building spatially enabled webapps"
24 HOMEPAGE="https://mapserver.org/"
25 SRC_URI="https://download.osgeo.org/mapserver/${MY_P}.tar.gz"
26
27 LICENSE="MIT"
28 KEYWORDS="~amd64 ~x86"
29 SLOT="0"
30 IUSE="bidi cairo gdal geos mysql opengl perl php postgis proj python threads tiff xml xslt" # ruby php tcl
31
32 REQUIRED_USE="
33         php? ( php_targets_php5-6 )
34         xslt? ( xml )"
35
36 RDEPEND="
37         dev-libs/expat
38         dev-libs/fcgi
39         >=media-libs/gd-2.0.12[truetype,jpeg,png,zlib]
40         media-libs/giflib
41         net-misc/curl
42         virtual/jpeg:=
43         virtual/libiconv
44         x11-libs/agg
45         bidi? ( dev-libs/fribidi
46                 media-libs/harfbuzz )
47         cairo? ( x11-libs/cairo )
48         gdal? ( >=sci-libs/gdal-1.8.0 )
49         geos? ( sci-libs/geos )
50         mysql? ( virtual/mysql )
51         opengl? (
52                 media-libs/ftgl
53                 media-libs/mesa[X(+)]
54         )
55         perl? ( dev-lang/perl:= )
56         postgis? ( dev-db/postgis )
57         proj? ( sci-libs/proj net-misc/curl )
58         tiff? (
59                 media-libs/tiff:=
60                 sci-libs/libgeotiff
61         )
62         xml? ( dev-libs/libxml2:2 )
63         xslt? ( dev-libs/libxslt[crypt] )
64 "
65 DEPEND="${RDEPEND}
66         perl? ( >=dev-lang/swig-2.0 )
67         python? ( >=dev-lang/swig-2.0 )"
68
69 need_apache2
70
71 PATCHES=(
72         "${FILESDIR}/${PN}-7.0.0-sec-format.patch"  # see https://github.com/mapserver/mapserver/pull/5248
73         "${FILESDIR}/${PN}-7.0.0-no-applicable-code.patch"
74         "${FILESDIR}/${P}-missing-macro.patch"
75 )
76
77 S=${WORKDIR}/${MY_P}
78
79 pkg_setup() {
80         webapp_pkg_setup
81         use perl && perl_set_version
82         #use ruby && ruby-ng_pkg_setup
83 }
84
85 src_unpack() {
86         default
87         # HACK: Make symlinks for php targets
88         local slot
89         for slot in $(php_get_slots); do
90                 ln -s "${PHP_EXT_S}" "${WORKDIR}/${slot}" || die
91         done
92 }
93
94 src_prepare() {
95         local glibdir="${EPREFIX}/usr/include/glib-2.0"
96         local usrglibdir="${EPREFIX}/usr/$(get_libdir)/glib-2.0/include"
97
98         sed -e "s:^include_directories(:&${glibdir})\ninclude_directories(:" \
99                 -i "${S}/CMakeLists.txt" || die
100         sed -e "s:include_directories(:&${usrglibdir})\ninclude_directories(:" \
101                 -i "${S}/CMakeLists.txt" || die
102
103         cmake-utils_src_prepare
104 }
105
106 src_configure() {
107         local mycmakeargs=(
108                 "-DCMAKE_SKIP_RPATH=ON"
109                 "-DWITH_ORACLESPATIAL=OFF"
110                 "-DWITH_SDE=OFF"
111                 "-DWITH_APACHE_MODULE=ON"
112                 "-DWITH_ICONV=ON"
113                 "-DWITH_GD=ON"
114                 "-DWITH_GIF=ON"
115                 "-DWITH_CURL=ON"
116                 "-DWITH_FCGI=ON"
117                 "-DINSTALL_LIB_DIR=${ROOT}usr/$(get_libdir)"
118                 "-DWITH_PROJ=$(usex proj ON OFF)"
119                 "-DWITH_WMS=$(usex proj ON OFF)"
120                 "-DWITH_KML=$(usex xml ON OFF)"
121                 "-DWITH_GEOS=$(usex geos ON OFF)"
122                 "-DWITH_GDAL=$(usex gdal ON OFF)"
123                 "-DWITH_OGR=$(usex gdal ON OFF)"
124                 "-DWITH_POSTGIS=$(usex postgis ON OFF)"
125                 "-DWITH_MYSQL=$(usex mysql ON OFF)"
126                 "-DWITH_LIBXML2=$(usex xml ON OFF)"
127                 "-DWITH_XMLMAPFILE=$(usex xslt ON OFF)"
128                 "-DWITH_FRIBIDI=$(usex bidi ON OFF)"
129                 "-DWITH_HARFBUZZ=$(usex bidi ON OFF)"
130                 "-DWITH_CAIRO=$(usex cairo ON OFF)"
131                 "-DWITH_PHP=$(usex php ON OFF)"
132                 "-DWITH_PYTHON=$(usex python ON OFF)"
133                 "-DWITH_PERL=$(usex perl ON OFF)"
134         )
135
136         if use gdal && use proj ; then
137                 mycmakeargs+=( "-DWITH_WFS=ON"
138                                 "-DWITH_WCS=ON"
139                                 "-DWITH_CLIENT_WMS=ON"
140                                 "-DWITH_CLIENT_WFS=ON"
141                                 "-DWITH_SOS=$(usex xml ON OFF)"
142                         )
143         else
144                 mycmakeargs+=( "-DWITH_WFS=OFF"
145                         "-DWITH_WCS=OFF"
146                         "-DWITH_CLIENT_WMS=OFF"
147                         "-DWITH_CLIENT_WFS=OFF"
148                         "-DWITH_SOS=OFF"
149                 )
150         fi
151
152         if use php ; then
153                 local slot
154                 for slot in $(php_get_slots); do
155                         local php_config="${EPREFIX}/usr/$(get_libdir)/${slot}/bin/php-config"
156                         [[ -x ${php_config} ]] \
157                                 || die "php-config '${php_config}' not valid or not executable"
158
159                         local php_include_dir=$(${php_config} --include-dir)
160                         [[ -d ${php_include_dir} ]] || die "PHP Include dir not found or not valid"
161
162                         mycmakeargs+=(
163                                 -DPHP5_CONFIG_EXECUTABLE="${php_config}"
164                                 -DPHP5_INCLUDES="${php_include_dir}"
165                         )
166                 done
167         fi
168
169         cmake-utils_src_configure
170 }
171
172 src_compile() {
173         cmake-utils_src_compile
174 }
175
176 src_install() {
177         cmake-utils_src_install
178
179         if use php ; then
180                 php-ext-source-r3_createinifiles
181         fi
182         webapp_src_preinst
183         exeinto "${MY_CGIBINDIR}"
184         doexe "${S}_build/mapserv"
185         webapp_src_install
186 }
187
188 pkg_postinst() {
189         webapp_pkg_postinst
190 }
191
192 pkg_prerm() {
193         webapp_pkg_prerm
194 }