source: trunk/dports/gis/mapnik/Portfile @ 102865

Last change on this file since 102865 was 102865, checked in by jeremyhu@…, 7 years ago

tiff: Update to version 4.0.3 and revbump dependents

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 7.5 KB
Line 
1# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
2# $Id: Portfile 102865 2013-02-09 19:16:59Z jeremyhu@macports.org $
3
4PortSystem          1.0
5
6name                mapnik
7version             2.1.0
8revision            3
9categories          gis devel
10license             LGPL-2.1
11platforms           darwin
12supported_archs     i386 x86_64
13
14maintainers         panulla.com:macports stromnov openmaintainer
15
16description         Open Source C++/Python mapping toolkit.
17
18long_description    Mapnik is a Free Toolkit for developing mapping \
19                    applications. It is written in modern C++ and has Python \
20                    bindings that support fast-paced agile development. It \
21                    can comfortably be used for both desktop map design and \
22                    web development. \
23                    \
24                    Mapnik is about making beautiful maps. It uses the AGG \
25                    graphics library, which offers world-class anti-aliasing \
26                    rendering with subpixel accuracy for geographic data.
27
28homepage            http://mapnik.org
29master_sites        https://github.com/mapnik/mapnik/downloads
30
31conflicts           py26-mapnik
32
33distname            mapnik-v${version}
34
35use_bzip2           yes
36
37checksums           rmd160  6188b68c6c89272c153cbb36bf34981ffd8545d9 \
38                    sha256  d5fcbaaea00359613b707eacaaa2109a0b5696e2baa35c02e4436e8a823b7160
39
40depends_lib-append  port:boost \
41                    port:icu \
42                    port:libpng \
43                    port:jpeg \
44                    port:tiff \
45                    port:zlib \
46                    port:freetype \
47                    port:libxml2 \
48                    port:proj
49
50set python_suffixes {26 27}
51set python_ports {}
52foreach s ${python_suffixes} {
53    lappend python_ports python${s}
54}
55foreach s ${python_suffixes} {
56    set p python${s}
57    set v [string index ${s} 0].[string index ${s} 1]
58    set i [lsearch -exact ${python_ports} ${p}]
59    set c [lreplace ${python_ports} ${i} ${i}]
60    eval [subst {
61        variant ${p} conflicts ${c} description {Build Python bindings} {
62            depends_lib-append      port:${p}
63            configure.args-delete   BINDINGS=none
64            configure.args-append   BINDINGS=python
65            configure.args-append   PYTHON=${prefix}/bin/python${v}
66        }
67    }]
68}
69
70proc python_branch {} {
71    global python_suffixes
72    foreach s ${python_suffixes} {
73        if {[variant_isset python${s}]} { return ${s} }
74    }
75    error "Python support not enabled."
76}
77
78set input_plugins {shape geojson raster csv}
79
80variant cairo description {Enable Cairo support for PDF, PostScript, and SVG} {
81    configure.args-delete   CAIRO=False
82    configure.args-append   CAIRO=True
83    depends_build-append    port:pkgconfig
84    depends_lib-append      path:lib/pkgconfig/cairomm-1.0.pc:cairomm
85    if {![catch {set s [python_branch]}]} {
86        set pf Python.framework/Versions/[string index ${s} 0].[string index ${s} 1]
87        depends_lib-append  port:py${s}-cairo
88        configure.args-append PKG_CONFIG_PATH=${frameworks_dir}/${pf}/lib/pkgconfig
89        lappend input_plugins python
90    }
91}
92
93variant geos description {Build GEOS plugin} {
94    depends_lib-append      port:geos
95    configure.args-append   GEOS_CONFIG=${prefix}/bin/geos-config
96    lappend input_plugins geos
97}
98
99variant gdal description {Build GDAL/OGR plugin} {
100    depends_lib-append      port:gdal
101    configure.args-append   GDAL_CONFIG=${prefix}/bin/gdal-config
102    lappend input_plugins gdal ogr
103}
104
105variant osm description {Build OpenStreetMap plugin} {
106    depends_lib-append      port:curl
107    lappend input_plugins osm
108}
109
110variant postgis description {Build PostGIS plugin} {
111    depends_lib-append      path:lib/libpq.dylib:postgresql92
112    if {![file exists ${prefix}/lib/libpq.dylib]} {
113        configure.args-append   PG_CONFIG=${prefix}/lib/postgresql92/bin/pg_config
114    }
115    lappend input_plugins postgis
116}
117
118variant sqlite description {Build SQLite plugin} {
119    depends_lib-append      port:sqlite3
120    lappend input_plugins sqlite
121}
122
123default_variants    +python27
124universal_variant   no
125
126configure.pkg_config ${prefix}/bin/pkg-config
127
128if {[variant_isset python26]} {
129    configure.python    ${prefix}/bin/python2.6
130} elseif {[variant_isset python27]} {
131    configure.python    ${prefix}/bin/python2.7
132} else {
133    configure.python    /usr/bin/python
134}
135
136build.cmd           ${configure.python} scons/scons.py
137build.pre_args
138use_parallel_build  yes
139
140configure.cmd       ${build.cmd}
141configure.pre_args  configure
142configure.args      CXX=${configure.cxx} \
143                    CC=${configure.cc} \
144                    CUSTOM_CXXFLAGS=${configure.cxxflags} \
145                    CUSTOM_CFLAGS=${configure.cflags} \
146                    CUSTOM_LDFLAGS=${configure.ldflags} \
147                    PREFIX=${prefix} \
148                    DESTDIR=${destroot} \
149                    CAIRO=False \
150                    FRAMEWORK_PYTHON=False \
151                    BINDINGS=none \
152                    JOBS=${build.jobs} \
153                    FREETYPE_CONFIG=${prefix}/bin/freetype-config \
154                    XML2_CONFIG=${prefix}/bin/xml2-config
155foreach lib {BOOST ICU PNG JPEG TIFF PROJ CAIRO SQLITE} {
156    configure.args-append   ${lib}_INCLUDES=${prefix}/include
157    configure.args-append   ${lib}_LIBS=${prefix}/lib
158}
159
160destroot.destdir
161
162pre-configure {
163    # Hack to check for correct boost variant
164    if {![catch {set pys [python_branch]}]} {
165        set boost_py ${prefix}/lib/libboost_python-mt.dylib
166        if {![file exists ${boost_py}]} {
167            ui_error "
168****
169**** Your current boost does not have Python support. Please reinstall
170**** boost before trying ${name} +python${pys} again:
171****
172****     sudo port install boost +python${pys}
173****
174"
175            return -code error "Boost.Python missing"
176        }
177        regexp {Python\.framework/Versions/([[:digit:]]\.[[:digit:]])} \
178          [exec /usr/bin/otool -L ${boost_py}] foo bpv
179        if {[set bps [string replace ${bpv} 1 1]] != ${pys}} {
180            if {${bps} ni ${python_suffixes}} {
181                ui_error "
182****
183**** Your current boost is incompatible with ${name} +python${pys}.
184**** Please install the boost variant that matches ${name}:
185****
186****     sudo port install boost +python${pys}
187****
188"
189                return -code error "Incompatible Boost.Python"
190            }
191            ui_error "
192****
193**** ${name} +python${pys} is incompatible with your current boost.
194**** Please install the ${name} variant that matches boost +python${bps}:
195****
196****     sudo port install ${name} +python${bps}
197****
198**** or install the boost variant that matches ${name} +python${pys}:
199****
200****     sudo port install boost +python${pys}
201****
202"
203            return -code error "Incompatible Boost.Python"
204        }
205    }
206
207    # Must be evaluated after the variants
208    configure.args-append   INPUT_PLUGINS=[join ${input_plugins} ","]
209
210    if {[variant_isset postgis] && [variant_isset sqlite]} {
211        configure.args-append   PGSQL2SQLITE=True
212    }
213}
214
215post-destroot {
216    xinstall -d -m 755 ${destroot}${prefix}/share/doc/${name}
217    eval xinstall -m 640 [glob ${worksrcpath}/docs/*] \
218        ${destroot}${prefix}/share/doc/${name}
219    xinstall -m 644 -W ${worksrcpath} AUTHORS.md CHANGELOG.md COPYING README.md \
220        ${destroot}${prefix}/share/doc/${name}
221    xinstall -d -m 755 ${destroot}${prefix}/share/${name}
222    copy ${worksrcpath}/demo ${destroot}${prefix}/share/${name}
223}
224
225livecheck.type      regex
226livecheck.url       ${master_sites}
227livecheck.regex     "mapnik-v?(\\d+(?:\\.\\d+)*)${extract.suffix}"
Note: See TracBrowser for help on using the repository browser.