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

Last change on this file since 60452 was 60452, checked in by ryandesign@…, 9 years ago

Set svn:eol-style to native per current guidelines

  • Property svn:eol-style set to native
File size: 7.0 KB
Line 
1# -*- coding: utf-8; mode: tcl; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=2:ts=2:sts=2
2
3PortSystem                                                      1.0
4
5name                                                                            qgis
6version                                                                 1.3.0
7categories                                                      gis
8maintainers                                                     vince
9description                                                     QGIS is a user-friendly GIS based on Qt 4
10long_description                                QGIS is a GIS. It can visualize, inject data into \
11                                                                                                PostGres/PostGIS, or serve as a Qt front-end to Grass. \
12                                                                                                Extended with Python plugins, it can become a quite \
13                                                                                                powerful GIS on its own.
14
15platforms                                                               darwin
16license                                                                 GPL
17
18homepage                                                                http://www.qgis.org/
19
20distname                                                                ${name}_${version}
21master_sites                                            http://download.osgeo.org/qgis/src/
22
23checksums                                                               md5     c75d0912011fe41a4e4a316ea323f73a \
24                                                                                                sha1    6c2f4cf5db8d5b513306465bfd160bdfa9a727af \
25                                                                                                rmd160  c2ffd90468b7f9cd49d2ba878a6572e8f19e137a
26
27worksrcdir                                                      ${name}-${version}
28
29post-extract    {
30        system                                                          "cd ${worksrcpath} && mkdir build"
31}
32
33patchfiles                                                      patch-spatialite_c.diff
34
35depends_build                                           port:cmake
36                                                                       
37depends_lib                                                     port:libiconv \
38                                                                                                port:expat \
39                                                                                                port:openssl \
40                                                                                                port:proj \
41                                                                                                port:geos \
42                                                                                                port:gdal \
43                                                                                                port:sqlite3 \
44                                                                                                port:gsl
45
46# Python related stuff
47# Checks if Python framework is not buggy
48set Python_FRM                                  "${frameworks_dir}/Python.framework"
49        if {! [file exists ${Python_FRM}]} {
50                ui_error                                                "Qgis requires python" 
51        }
52
53set Pyver                                                       [exec python -V |& awk "{print \$2}"]
54# Eliminates minor (could also be done with strsed)
55set Pyversion                                           [join [lrange [split ${Pyver} "."] 0 1] ""]
56set Pyverpath                                           [join [lrange [split ${Pyver}   "."] 0 1] "."]
57               
58depends_lib-append                      port:py${Pyversion}-pyqt4
59
60
61configure.dir                                           ${worksrcpath}/build                                                                   
62configure.cmd                                           cmake ..
63
64# Start with no configure arguments: override defaults
65configure.pre_args
66configure.args
67configure.universal_args
68
69
70variant postgis                                 description "Build postgis support" {
71        depends_lib-append              port:postgis
72       
73        # Always choose latest installed postgresql version
74
75        set     PGSQL_DIR                                       \
76                                                                                [lindex [lsort -dec [glob -d ${prefix}/lib postgresql*]] 0]
77        configure.args-append "-DPOSTGRESQL_PREFIX=${PGSQL_DIR}"
78        configure.args-append   "-DPOSTGRES_CONFIG=${PGSQL_DIR}/bin/pg_config"
79}
80
81
82variant grass63                                 description "Build the grass (6.3) plugin" {
83
84        depends_lib-append              port:grass
85       
86        if {[file exists ${applications_dir}/GRASS-6.3.app]} {
87                configure.args-append \
88                        "-DGRASS_PREFIX=${applications_dir}/GRASS-6.3.app/Contents/MacOS"
89        } else {
90                configure.args-append   "-DGRASS_PREFIX=${prefix}"
91        }
92}
93
94
95variant grass64                                 description "Build the grass (6.4) plugin" {
96
97        depends_lib-append              port:grass64
98       
99        if {[file exists ${applications_dir}/GRASS-6.4.app]} {
100                configure.args-append \
101                        "-DGRASS_PREFIX=${applications_dir}/GRASS-6.4.app/Contents/MacOS"
102        } else {
103                configure.args-append   "-DGRASS_PREFIX=${prefix}"
104        }
105}
106
107
108variant universal                               description "Builds universal app" {
109                set archs                                       "-DCMAKE_OSX_ARCHITECTURES=\""
110
111                foreach arch ${configure.universal_archs} {
112                        append archs ${arch} ";"
113                }
114                configure.args-append "${archs}\""
115                set sysroot                                             [lindex [exec ls /Developer/SDKs] end]
116                configure.args-append "-DCMAKE_OSX_SYSROOT=/Developer/SDKs/${sysroot}"
117}
118
119# LLVM cannot be used (Seg. faults in spatialite.c)
120
121if {[string first llvm ${configure.cc}] != -1 || \
122                [string first llvm ${configure.cxx}] != -1} {
123
124        ui_msg "Warning: Qgis cannot be compiled with LLVM, switching to GCC\n"
125        set configure.cc                gcc
126        set configure.cxx               g++
127}
128
129configure.args-append           "-DCMAKE_CXX_COMPILER=${configure.cxx}"
130configure.args-append           "-DCMAKE_C_COMPILER=${configure.cc}"
131configure.args-append           "-DEXPAT_INCLUDE_DIR=${prefix}/include"
132configure.args-append           "-DEXPAT_LIBRARY=${prefix}/lib/libexpat.dylib"
133configure.args-append           "-DCMAKE_INSTALL_PREFIX=${applications_dir}"
134configure.args-append           "-DGDAL_CONFIG=${prefix}/bin/gdal-config"
135configure.args-append           "-DGDAL_INCLUDE_DIR=${prefix}/include"
136configure.args-append           "-DGDAL_LIBRARY=${prefix}/lib/libgdal.dylib"
137configure.args-append           "-DGEOS_CONFIG=${prefix}/bin/geos-config"
138configure.args-append           "-DGEOS_INCLUDE_DIR=${prefix}/include"
139configure.args-append           "-DGEOS_LIBRARY=${prefix}/lib/libgeos_c.dylib"
140configure.args-append           "-DGEOS_LIB_NAME_WITH_PREFIX=-lgeos_c"
141configure.args-append           "-DGSL_CONFIG=${prefix}/bin/gsl-config"
142configure.args-append           "-DICONV_INCLUDE_DIR=${prefix}/include"
143configure.args-append           "-DICONV_LIBRARY=${prefix}/lib/libiconv.dylib"
144configure.args-append           "-DPROJ_INCLUDE_DIR=${prefix}/include"
145configure.args-append           "-DPROJ_LIBRARY=${prefix}/lib/libproj.dylib"
146configure.args-append           "-DOPENSSL_INCLUDE_DIR=${prefix}/include"
147configure.args-append           "-DOPENSSL_LIBRARIES=${prefix}/lib/libssl.dylib"
148configure.args-append           "-DPYTHON_INCLUDE_PATH=${Python_FRM}/Headers"
149configure.args-append           "-DPYUIC4_PROGRAM=${prefix}/bin/pyuic4-${Pyverpath}"
150configure.args-append           "-DPYRCC4_PROGRAM=${prefix}/bin/pyrcc4-${Pyverpath}"
151configure.args-append           \
152                                                        "-DSIP_BINARY_PATH=${Python_FRM}/Versions/${Pyverpath}/bin/sip"
153configure.args-append           "-DSIP_INCLUDE_DIR=${Python_FRM}/Headers"
154configure.args-append           "-DQT_QMAKE_EXECUTABLE=${prefix}/bin/qmake-mac"
155configure.args-append           "-DCMAKE_BUILD_TYPE=Release"
156       
157# This is a fake but don't ask me why it is needed
158configure.args-append           "-DSVN_MARKER=/usr/bin/svnversion"
159
160# Patch for proper linking of our own Python framework
161post-configure {
162        reinplace -E "s|g\\+\\+|g\\+\\+ -F${frameworks_dir}|" \
163                ${worksrcpath}/build/src/python/CMakeFiles/qgispython.dir/link.txt
164               
165# Adapts for new Sip 4.6
166        reinplace -E \
167                "s|sipClass(_\[^,\]+)|(sipWrapperType *) sipTypeAsPyTypeObject\
168                (sipType\\1)|" \
169                ${worksrcpath}/python/core/conversions.sip
170}
171
172# Setup Python stuff in order to gracefully link against -framework Python
173pre-build {
174        if {! [file exists ${Python_FRM}/Headers]} {
175                ui_msg                                                  "Patching (temporarily) the Python framework\
176                                                                                                 (See http://trac.macports.org/ticket/21614)"
177               
178                if {[variant_isset universal] && ${Pyversion} < 26} {
179                        ui_error                                        "Universal build requires Python > 2.5"
180                }
181                                                                                                 
182                system                                                  "cd ${Python_FRM} ; \
183                                                                                                        ln -s Versions/${Pyverpath}/include/python${Pyverpath} Headers ; \
184                                                                                                        ln -s Versions/${Pyverpath}/Python . ; \
185                                                                                                        ln -s Versions/${Pyverpath}/Resources . ; \
186                                                                                                        touch /private/tmp/qgis_pypatch"
187        } else {
188                # Checks for inconsistencies and set dependencies accordingly
189       
190                if {${Pyver} !=                 [exec cat ${Python_FRM}/Headers/patchlevel.h | \
191                                                                                                 grep "PY_VERSION " | awk "{print \$3}" | \
192                                                                                                 sed "s/\\\"//g"]} {   
193                        ui_error                                        "Inconsistent Python framework installation."
194                }
195        }
196       
197}
198
199use_parallel_build                      yes
200build.dir                                                               ${worksrcpath}/build
201
202post-destroot {
203        if {[file exists /private/tmp/qgis_pypatch]} {
204                ui_msg                                                  "Removing patched Framework"
205                system                                                  "cd ${Python_FRM} ; \
206                                                                                                        rm -f Headers Python Resources ; \
207                                                                                                        rm -f /private/tmp/qgis_pypatch"
208        }
209}
210
211destroot.target                                 install
Note: See TracBrowser for help on using the repository browser.