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

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

Makes the port compile without any variant by defaulting to postgresql91

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 6.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 91397 2012-03-31 17:17:54Z 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 python31 \
59                                        description use Python 2.5 {   
60
61        depends_lib-append      port:py25-pyqt4
62       
63        configure.args-append "-DPYTHON_EXECUTABLE=${prefix}/bin/python2.5"
64        configure.args-append "-DPYUIC4_PROGRAM=${prefix}/bin/pyuic4-2.5"
65        configure.args-append "-DPYRCC4_PROGRAM=${prefix}/bin/pyrcc4-2.5"
66        configure.args-append \
67                                "-DSIP_BINARY_PATH=${Py_own_FRM}/Versions/2.5/bin/sip"
68}
69
70variant python26        conflicts python25 python27 python31 \
71                                        description use Python 2.6 {
72       
73        depends_lib-append      port:py26-pyqt4
74       
75        configure.args-append "-DPYTHON_EXECUTABLE=${prefix}/bin/python2.6"
76        configure.args-append "-DPYUIC4_PROGRAM=${prefix}/bin/pyuic4-2.6"
77        configure.args-append "-DPYRCC4_PROGRAM=${prefix}/bin/pyrcc4-2.6"
78        configure.args-append \
79                                "-DSIP_BINARY_PATH=${Py_own_FRM}/Versions/2.6/bin/sip"
80
81}
82
83variant python27        conflicts python25 python26 python31 \
84                                        description use Python 2.7 {
85                                       
86        depends_lib-append      port:py27-pyqt4
87       
88        configure.args-append "-DPYTHON_EXECUTABLE=${prefix}/bin/python2.7"
89        configure.args-append "-DPYUIC4_PROGRAM=${prefix}/bin/pyuic4-2.7"
90        configure.args-append "-DPYRCC4_PROGRAM=${prefix}/bin/pyrcc4-2.7"
91        configure.args-append \
92                                "-DSIP_BINARY_PATH=${Py_own_FRM}/Versions/2.7/bin/sip"
93
94}
95
96variant python31        conflicts python25 python26 python27 \
97                                        description use Python 3.1 {
98                                       
99        depends_lib-append      port:py31-pyqt4
100       
101        configure.args-append "-DPYTHON_EXECUTABLE=${prefix}/bin/python3.1"
102        configure.args-append "-DPYUIC4_PROGRAM=${prefix}/bin/pyuic4-3.1"
103        configure.args-append "-DPYRCC4_PROGRAM=${prefix}/bin/pyrcc4-3.1"
104        configure.args-append \
105                                "-DSIP_BINARY_PATH=${Py_own_FRM}/Versions/3.1/bin/sip"
106
107}
108
109variant postgresql90    conflicts postgresql91 \
110                                                description "Use postgresql 9.0" {
111                                               
112        depends_lib-append              port:postgresql90
113        set PGSQL_DIR                   ${prefix}/lib/postgresql90
114        configure.args-append   "-DPOSTGRES_CONFIG=${PGSQL_DIR}/bin/pg_config"
115}
116
117variant postgresql91    conflicts postgresql90 \
118                                                description "Use postgresql 9.1" {
119                                               
120        depends_lib-append              port:postgresql91
121        set PGSQL_DIR                   ${prefix}/lib/postgresql91
122        configure.args-append   "-DPOSTGRES_CONFIG=${PGSQL_DIR}/bin/pg_config"
123}
124
125variant postgis                 description "Build postgis support" {
126       
127        depends_lib-append              port:postgis
128       
129        if {![variant_isset postgresql90] &&
130                ![variant_isset postgresql91] } {
131                return -code error "Please select a postgresql variant"
132        }
133}
134
135variant grass                           description "Build the grass (6.4) plugin" {
136
137        depends_lib-append              port:grass
138        configure.args-append   "-DGRASS_PREFIX=${prefix}/share/grass-6.4.0"
139}
140
141# Overrides default
142
143default_variants        +python27 +postgis +postgresql91
144configure.dir           ${worksrcpath}/build                                                                   
145configure.cmd           cmake ..
146
147configure.args-append           "-DCMAKE_CXX_COMPILER=${configure.cxx}"
148configure.args-append           "-DCMAKE_C_COMPILER=${configure.cc}"
149configure.args-append           "-DEXPAT_INCLUDE_DIR=${prefix}/include"
150configure.args-append           "-DEXPAT_LIBRARY=${prefix}/lib/libexpat.dylib"
151configure.args-append           "-DCMAKE_INSTALL_PREFIX=${applications_dir}"
152configure.args-append           "-DGDAL_CONFIG=${prefix}/bin/gdal-config"
153configure.args-append           "-DGDAL_INCLUDE_DIR=${prefix}/include"
154configure.args-append           "-DGDAL_LIBRARY=${prefix}/lib/libgdal.dylib"
155configure.args-append           "-DGEOS_CONFIG=${prefix}/bin/geos-config"
156configure.args-append           "-DGEOS_INCLUDE_DIR=${prefix}/include/geos"
157configure.args-append           "-DGEOS_LIBRARY=${prefix}/lib/libgeos_c.dylib"
158configure.args-append           "-DGSL_CONFIG=${prefix}/bin/gsl-config"
159configure.args-append           "-DPROJ_INCLUDE_DIR=${prefix}/include"
160configure.args-append           "-DPROJ_LIBRARY=${prefix}/lib/libproj.dylib"
161configure.args-append           "-DWITH_SPATIALITE:BOOL=NO"
162configure.args-append           "-DPYTHON_INCLUDE_PATH=${Py_own_FRM}/Headers"
163configure.args-append           "-DSIP_INCLUDE_DIR=${Py_own_FRM}/Headers"
164configure.args-append           "-DCMAKE_BUILD_TYPE=Release"
165       
166# This is a fake but don't ask me why it is needed
167configure.args-append           "-DSVN_MARKER=/usr/bin/svnversion"
168
169
170# Patch for proper linking of our own Python framework
171post-configure {
172        reinplace -E "s|(^\[^ \]*)|\\1 -F${worksrcpath}|" \
173                ${worksrcpath}/build/src/python/CMakeFiles/qgispython.dir/link.txt
174
175
176        # Setup Python stuff in order to gracefully link
177        # against -framework Python
178
179        set variantlist [split ${portvariants} "+"]
180        set Pyversion   [string replace [lindex ${variantlist} \
181                                                [lsearch $variantlist "python*"]] 0 5]
182        set Pyverpath   [join [split ${Pyversion} ""] .]
183
184        # Set up a fake framework in ${worksrcpath}/Python.framework
185        set Py_sys_FRM  "${frameworks_dir}/Python.framework/Versions/${Pyverpath}"
186
187        system \
188                "cd ${worksrcpath}/build/python/CMakeFiles ; \
189                 cd python_module_qgis_core.dir ; \
190                 cp ${filespath}/ed-build.make . ; \
191                 sed -i '' \"s|WRK|${worksrcpath}|\" ed-build.make ; \
192                 sed -i '' \"s|FLS|${filespath}|\" ed-build.make; \
193                 ed build.make < ed-build.make"
194                       
195        system \
196                "cd ${Py_own_FRM} ; \
197                 rm -f Headers Python Resources ; \
198                 ln -s ${Py_sys_FRM}/include/python${Pyverpath} Headers ; \
199                 ln -s ${Py_sys_FRM}/Python . ; \
200                 ln -s ${Py_sys_FRM}/Resources . ;"
201}
202
203use_parallel_build                      yes
204build.dir                                       ${worksrcpath}/build
205destroot.target                         install
Note: See TracBrowser for help on using the repository browser.