source: trunk/dports/gis/qgis/Portfile @ 91416

Last change on this file since 91416 was 91416, checked in by vince@…, 8 years ago

Fixes some issues:

  1. Makes default variant conditional (as per #33851);
  2. Removes python31 variant which is incompatible with current QGis version (#32713);
  3. Add an explicit build dependency to pyXX-sip.
  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 6.4 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 91416 2012-04-01 08:23:23Z vince@macports.org $
3
4PortSystem                      1.0
5PortGroup                       cmake   1.0
6PortGroup           qt4     1.0
7
8name                            qgis
9version                         1.7.4
10categories                      gis
11maintainers                     vince
12description                     QGIS is a user-friendly GIS based on Qt 4
13long_description        QGIS is a GIS. It can visualize, inject data into \
14                                        PostGres/PostGIS, or serve as a Qt front-end to Grass. \
15                                        Extended with Python plugins, it can become a quite \
16                                        powerful GIS on its own.
17
18platforms                       darwin
19license                         GPL
20
21use_parallel_build      no
22homepage                        http://www.qgis.org/
23
24distname                        ${name}-${version}
25master_sites            http://qgis.org/downloads/
26use_bzip2                       yes
27
28checksums           md5     ad6e2bd8c5eb0c486939c420af5d8c44 \
29                    sha1    0dae5cb933d1ce621e5fe30c1937887d813a2098 \
30                    rmd160  dae51556b09a57ce9537ca4ed75830f15e3be5a4
31
32worksrcdir                      ${name}-${version}
33
34patchfiles                      patch-spatialite_c.diff \
35                                        patch-conversions_sip.diff \
36                                        patch-CMakeLists_txt.diff \
37                                        patch-src_core_spatialindex_include_tools_h.diff
38
39depends_lib-append      port:libiconv \
40                                        port:expat \
41                                        port:openssl \
42                                        port:proj \
43                                        port:geos \
44                                        port:gdal \
45                                        port:sqlite3 \
46                                        port:gsl \
47                                        port:qwt52 \
48                                        port:fcgi
49
50post-extract {
51        system "cd ${worksrcpath} && mkdir build && mkdir Python.framework"
52}
53
54set Py_own_FRM  ${worksrcpath}/Python.framework
55
56# Python related stuff
57
58variant python25        conflicts universal python26 python27 \
59                                        description use Python 2.5 {   
60
61        depends_lib-append              port:py25-pyqt4
62        depends_build-append    port:py25-sip
63       
64        configure.args-append "-DPYTHON_EXECUTABLE=${prefix}/bin/python2.5"
65        configure.args-append "-DPYUIC4_PROGRAM=${prefix}/bin/pyuic4-2.5"
66        configure.args-append "-DPYRCC4_PROGRAM=${prefix}/bin/pyrcc4-2.5"
67        configure.args-append \
68                                "-DSIP_BINARY_PATH=${Py_own_FRM}/Versions/2.5/bin/sip"
69}
70
71variant python26        conflicts python25 python27 \
72                                        description use Python 2.6 {
73       
74        depends_lib-append              port:py26-pyqt4
75        depends_build-append    port:py26-sip
76       
77        configure.args-append "-DPYTHON_EXECUTABLE=${prefix}/bin/python2.6"
78        configure.args-append "-DPYUIC4_PROGRAM=${prefix}/bin/pyuic4-2.6"
79        configure.args-append "-DPYRCC4_PROGRAM=${prefix}/bin/pyrcc4-2.6"
80        configure.args-append \
81                                "-DSIP_BINARY_PATH=${Py_own_FRM}/Versions/2.6/bin/sip"
82
83}
84
85variant python27        conflicts python25 python26 \
86                                        description use Python 2.7 {
87                                       
88        depends_lib-append              port:py27-pyqt4
89        depends_build-append    port:py27-sip
90       
91        configure.args-append "-DPYTHON_EXECUTABLE=${prefix}/bin/python2.7"
92        configure.args-append "-DPYUIC4_PROGRAM=${prefix}/bin/pyuic4-2.7"
93        configure.args-append "-DPYRCC4_PROGRAM=${prefix}/bin/pyrcc4-2.7"
94        configure.args-append \
95                                "-DSIP_BINARY_PATH=${Py_own_FRM}/Versions/2.7/bin/sip"
96
97}
98
99variant postgresql90    conflicts postgresql91 \
100                                                description "Use postgresql 9.0" {
101                                               
102        depends_lib-append              port:postgresql90
103        set PGSQL_DIR                   ${prefix}/lib/postgresql90
104        configure.args-append   "-DPOSTGRES_CONFIG=${PGSQL_DIR}/bin/pg_config"
105}
106
107variant postgresql91    conflicts postgresql90 \
108                                                description "Use postgresql 9.1" {
109                                               
110        depends_lib-append              port:postgresql91
111        set PGSQL_DIR                   ${prefix}/lib/postgresql91
112        configure.args-append   "-DPOSTGRES_CONFIG=${PGSQL_DIR}/bin/pg_config"
113}
114
115variant postgis                 description "Build postgis support" {
116       
117        depends_lib-append              port:postgis
118       
119        if {![variant_isset postgresql90] &&
120                ![variant_isset postgresql91] } {
121                return -code error "Please select a postgresql variant"
122        }
123}
124
125variant grass                           description "Build the grass (6.4) plugin" {
126
127        depends_lib-append              port:grass
128        configure.args-append   "-DGRASS_PREFIX=${prefix}/share/grass-6.4.0"
129}
130
131# Overrides default
132
133default_variants                        +postgis
134
135if {![variant_isset python25] && ![variant_isset python26] &&
136        ![variant_isset python27]} {
137       
138        default_variants                +python27
139}
140
141if {[variant_isset postgis] && ![variant_isset postgresql90] &&
142        ![variant_isset postgresql91]} {
143       
144        default_variants                +postgresql91
145}
146
147configure.dir                           ${worksrcpath}/build                                                                   
148configure.cmd                           cmake ..
149
150configure.args-append           "-DCMAKE_CXX_COMPILER=${configure.cxx}"
151configure.args-append           "-DCMAKE_C_COMPILER=${configure.cc}"
152configure.args-append           "-DEXPAT_INCLUDE_DIR=${prefix}/include"
153configure.args-append           "-DEXPAT_LIBRARY=${prefix}/lib/libexpat.dylib"
154configure.args-append           "-DCMAKE_INSTALL_PREFIX=${applications_dir}"
155configure.args-append           "-DGDAL_CONFIG=${prefix}/bin/gdal-config"
156configure.args-append           "-DGDAL_INCLUDE_DIR=${prefix}/include"
157configure.args-append           "-DGDAL_LIBRARY=${prefix}/lib/libgdal.dylib"
158configure.args-append           "-DGEOS_CONFIG=${prefix}/bin/geos-config"
159configure.args-append           "-DGEOS_INCLUDE_DIR=${prefix}/include/geos"
160configure.args-append           "-DGEOS_LIBRARY=${prefix}/lib/libgeos_c.dylib"
161configure.args-append           "-DGSL_CONFIG=${prefix}/bin/gsl-config"
162configure.args-append           "-DPROJ_INCLUDE_DIR=${prefix}/include"
163configure.args-append           "-DPROJ_LIBRARY=${prefix}/lib/libproj.dylib"
164configure.args-append           "-DWITH_SPATIALITE:BOOL=NO"
165configure.args-append           "-DPYTHON_INCLUDE_PATH=${Py_own_FRM}/Headers"
166configure.args-append           "-DSIP_INCLUDE_DIR=${Py_own_FRM}/Headers"
167configure.args-append           "-DCMAKE_BUILD_TYPE=Release"
168       
169# This is a fake but don't ask me why it is needed
170configure.args-append           "-DSVN_MARKER=/usr/bin/svnversion"
171
172
173# Patch for proper linking of our own Python framework
174post-configure {
175        reinplace -E "s|(^\[^ \]*)|\\1 -F${worksrcpath}|" \
176                ${worksrcpath}/build/src/python/CMakeFiles/qgispython.dir/link.txt
177
178
179        # Setup Python stuff in order to gracefully link
180        # against -framework Python
181
182        set variantlist [split ${portvariants} "+"]
183        set Pyversion   [string replace [lindex ${variantlist} \
184                                                [lsearch $variantlist "python*"]] 0 5]
185        set Pyverpath   [join [split ${Pyversion} ""] .]
186
187        # Set up a fake framework in ${worksrcpath}/Python.framework
188        set Py_sys_FRM  "${frameworks_dir}/Python.framework/Versions/${Pyverpath}"
189
190        system \
191                "cd ${worksrcpath}/build/python/CMakeFiles ; \
192                 cd python_module_qgis_core.dir ; \
193                 cp ${filespath}/ed-build.make . ; \
194                 sed -i '' \"s|WRK|${worksrcpath}|\" ed-build.make ; \
195                 sed -i '' \"s|FLS|${filespath}|\" ed-build.make; \
196                 ed build.make < ed-build.make"
197                       
198        system \
199                "cd ${Py_own_FRM} ; \
200                 rm -f Headers Python Resources ; \
201                 ln -s ${Py_sys_FRM}/include/python${Pyverpath} Headers ; \
202                 ln -s ${Py_sys_FRM}/Python . ; \
203                 ln -s ${Py_sys_FRM}/Resources . ;"
204}
205
206use_parallel_build                      yes
207build.dir                                       ${worksrcpath}/build
208destroot.target                         install
Note: See TracBrowser for help on using the repository browser.