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

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

update openssl to 1.0.0a and rev bump dependents (#25114, maintainer timeout)

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