# -*- 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 # $Id$ PortSystem 1.0 PortGroup cmake 1.0 PortGroup qt4 1.0 name qgis version 1.7.4 categories gis maintainers vince description QGIS is a user-friendly GIS based on Qt 4 long_description QGIS is a GIS. It can visualize, inject data into \ PostGres/PostGIS, or serve as a Qt front-end to Grass. \ Extended with Python plugins, it can become a quite \ powerful GIS on its own. platforms darwin license GPL use_parallel_build no homepage http://www.qgis.org/ distname ${name}-${version} master_sites http://qgis.org/downloads/ use_bzip2 yes checksums md5 ad6e2bd8c5eb0c486939c420af5d8c44 \ sha1 0dae5cb933d1ce621e5fe30c1937887d813a2098 \ rmd160 dae51556b09a57ce9537ca4ed75830f15e3be5a4 worksrcdir ${name}-${version} patchfiles patch-spatialite_c.diff \ patch-conversions_sip.diff \ patch-CMakeLists_txt.diff \ patch-src_core_spatialindex_include_tools_h.diff depends_lib-append port:libiconv \ port:expat \ port:openssl \ port:proj \ port:geos \ port:gdal \ port:sqlite3 \ port:gsl \ port:qwt52 \ port:fcgi post-extract { system "cd ${worksrcpath} && mkdir build && mkdir Python.framework" } set Py_own_FRM ${worksrcpath}/Python.framework # Python related stuff variant python25 conflicts universal python26 python27 \ description use Python 2.5 { depends_lib-append port:py25-pyqt4 depends_build-append port:py25-sip configure.args-append "-DPYTHON_EXECUTABLE=${prefix}/bin/python2.5" configure.args-append "-DPYUIC4_PROGRAM=${prefix}/bin/pyuic4-2.5" configure.args-append "-DPYRCC4_PROGRAM=${prefix}/bin/pyrcc4-2.5" configure.args-append \ "-DSIP_BINARY_PATH=${Py_own_FRM}/Versions/2.5/bin/sip" } variant python26 conflicts python25 python27 \ description use Python 2.6 { depends_lib-append port:py26-pyqt4 depends_build-append port:py26-sip configure.args-append "-DPYTHON_EXECUTABLE=${prefix}/bin/python2.6" configure.args-append "-DPYUIC4_PROGRAM=${prefix}/bin/pyuic4-2.6" configure.args-append "-DPYRCC4_PROGRAM=${prefix}/bin/pyrcc4-2.6" configure.args-append \ "-DSIP_BINARY_PATH=${Py_own_FRM}/Versions/2.6/bin/sip" } variant python27 conflicts python25 python26 \ description use Python 2.7 { depends_lib-append port:py27-pyqt4 depends_build-append port:py27-sip configure.args-append "-DPYTHON_EXECUTABLE=${prefix}/bin/python2.7" configure.args-append "-DPYUIC4_PROGRAM=${prefix}/bin/pyuic4-2.7" configure.args-append "-DPYRCC4_PROGRAM=${prefix}/bin/pyrcc4-2.7" configure.args-append \ "-DSIP_BINARY_PATH=${Py_own_FRM}/Versions/2.7/bin/sip" } variant postgresql90 conflicts postgresql91 \ description "Use postgresql 9.0" { depends_lib-append port:postgresql90 set PGSQL_DIR ${prefix}/lib/postgresql90 configure.args-append "-DPOSTGRES_CONFIG=${PGSQL_DIR}/bin/pg_config" } variant postgresql91 conflicts postgresql90 \ description "Use postgresql 9.1" { depends_lib-append port:postgresql91 set PGSQL_DIR ${prefix}/lib/postgresql91 configure.args-append "-DPOSTGRES_CONFIG=${PGSQL_DIR}/bin/pg_config" } variant postgis description "Build postgis 1.x support" \ conflicts postgis2 { depends_lib-append port:postgis if {![variant_isset postgresql90] && ![variant_isset postgresql91] } { return -code error "Please also select a postgresql variant" } } variant postgis2 description "Build postgis 2.x support" \ conflicts postgis { depends_lib-append port:postgis2 if {![variant_isset postgresql90] && ![variant_isset postgresql91] } { return -code error "Please also select a postgresql variant" } } variant grass description "Build the grass (6.4) plugin" { depends_lib-append port:grass configure.args-append "-DGRASS_PREFIX=${prefix}/share/grass-6.4.0" } # Overrides default default_variants +postgis if {![variant_isset python25] && ![variant_isset python26] && ![variant_isset python27]} { default_variants +python27 } if {[variant_isset postgis] && ![variant_isset postgresql90] && ![variant_isset postgresql91]} { default_variants +postgresql91 } configure.dir ${worksrcpath}/build configure.cmd cmake .. configure.args-append "-DCMAKE_CXX_COMPILER=${configure.cxx}" configure.args-append "-DCMAKE_C_COMPILER=${configure.cc}" configure.args-append "-DEXPAT_INCLUDE_DIR=${prefix}/include" configure.args-append "-DEXPAT_LIBRARY=${prefix}/lib/libexpat.dylib" configure.args-append "-DCMAKE_INSTALL_PREFIX=${applications_dir}" configure.args-append "-DGDAL_CONFIG=${prefix}/bin/gdal-config" configure.args-append "-DGDAL_INCLUDE_DIR=${prefix}/include" configure.args-append "-DGDAL_LIBRARY=${prefix}/lib/libgdal.dylib" configure.args-append "-DGEOS_CONFIG=${prefix}/bin/geos-config" configure.args-append "-DGEOS_INCLUDE_DIR=${prefix}/include/geos" configure.args-append "-DGEOS_LIBRARY=${prefix}/lib/libgeos_c.dylib" configure.args-append "-DGSL_CONFIG=${prefix}/bin/gsl-config" configure.args-append "-DPROJ_INCLUDE_DIR=${prefix}/include" configure.args-append "-DPROJ_LIBRARY=${prefix}/lib/libproj.dylib" configure.args-append "-DWITH_SPATIALITE:BOOL=NO" configure.args-append "-DPYTHON_INCLUDE_PATH=${Py_own_FRM}/Headers" configure.args-append "-DSIP_INCLUDE_DIR=${Py_own_FRM}/Headers" configure.args-append "-DCMAKE_BUILD_TYPE=Release" # This is a fake but don't ask me why it is needed configure.args-append "-DSVN_MARKER=/usr/bin/svnversion" # Patch for proper linking of our own Python framework post-configure { reinplace -E "s|(^\[^ \]*)|\\1 -F${worksrcpath}|" \ ${worksrcpath}/build/src/python/CMakeFiles/qgispython.dir/link.txt # Setup Python stuff in order to gracefully link # against -framework Python set variantlist [split ${portvariants} "+"] set Pyversion [string replace [lindex ${variantlist} \ [lsearch $variantlist "python*"]] 0 5] set Pyverpath [join [split ${Pyversion} ""] .] # Set up a fake framework in ${worksrcpath}/Python.framework set Py_sys_FRM "${frameworks_dir}/Python.framework/Versions/${Pyverpath}" system \ "cd ${worksrcpath}/build/python/CMakeFiles ; \ cd python_module_qgis_core.dir ; \ cp ${filespath}/ed-build.make . ; \ sed -i '' \"s|WRK|${worksrcpath}|\" ed-build.make ; \ sed -i '' \"s|FLS|${filespath}|\" ed-build.make; \ ed build.make < ed-build.make" system \ "cd ${Py_own_FRM} ; \ rm -f Headers Python Resources ; \ ln -s ${Py_sys_FRM}/include/python${Pyverpath} Headers ; \ ln -s ${Py_sys_FRM}/Python . ; \ ln -s ${Py_sys_FRM}/Resources . ;" } use_parallel_build yes build.dir ${worksrcpath}/build destroot.target install