# -*- 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: Portfile 146464 2016-03-09 09:58:53Z vince@macports.org $ PortSystem 1.0 PortGroup cmake 1.0 name qgis version 2.14.1 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 rmd160 23e7ab26210319d3708e7c27d92d76e116a4df6e \ sha256 52b5128911666faf9ef913bd22e777d308489fef52f8cb8868be51b609a0418a patchfiles patch-app_info_plist_in.diff \ patch-PyQtMacros.diff \ patch-sip.diff worksrcdir ${name}-${version} depends_lib-append port:libiconv \ port:expat \ path:lib/libssl.dylib:openssl \ port:proj \ port:geos \ port:gdal \ port:sqlite3 \ port:gsl \ port:fcgi \ port:spatialindex \ port:postgis2 \ port:python27 \ port:py27-gdal \ port:qca \ port:qca-ossl depends_build-append \ port:bison \ port:ld64 \ port:py27-sip depends_run-append port:py27-psycopg2 \ port:py27-spatialite post-extract { system -W ${worksrcpath} "mkdir build" } post-patch { reinplace -E "s|@@@|${prefix}|g" \ ${worksrcpath}/mac/app.info.plist.in # reinplace -E "s|Clang|AppleClang|" ${worksrcpath}/CMakeLists.txt # Handle legacy OS/XCode if {[vercmp $xcodeversion 4.6.3] <= 0} { configure.compiler llvm-gcc-4.2 } } # Overrides default if {![variant_isset qt4] && ![variant_isset qt5]} { default_variants +qt4 } # Python related stuff set Py_FRM ${frameworks_dir}/Python.framework/Versions/2.7 configure.args-append "-DPYTHON_EXECUTABLE=${prefix}/bin/python2.7" configure.args-append "-DWITH_GRASS=OFF" configure.args-append "-DWITH_GRASS7=OFF" configure.args-append "-DWITH_QWTPOLAR=FALSE" configure.args-append "-DGIT_MARKER=NOTFOUND" #configure.args-append "-DPYUIC_PROGRAM=${prefix}/bin/pyuic4-2.7" #configure.args-append "-DPYRCC_PROGRAM=${prefix}/bin/pyuic4-2.7" pre-configure { reinplace -E "s|Versions/Current|Versions/2.7|" \ ${worksrcpath}/cmake/FindPythonLibrary.cmake } variant qt5 conflicts qt4 description "Build with Qt5" { PortGroup qt5 1.0 #patchfiles-append patch-CMakeLists_txt.diff #post-patch { # reinplace "s|ZZZ|${prefix}|" ${worksrcpath}/CMakeLists.txt #} configure.ldflags "-Wl,-rpath,${prefix}/libexec/qt5/lib" configure.args-append "-DENABLE_QT5=ON" configure.args-append "-DWITH_BINDINGS=FALSE" configure.args-append "-DQCA_INCLUDE_DIR=${prefix}/lib/qca.framework/Headers" configure.args-append "-DQCA_LIBRARY=${prefix}/lib/qca.framework/qca" configure.args-append "-DQSCINTILLA_INCLUDE_DIR=${prefix}/libexec/qt5/include" configure.args-append "-DQSCINTILLA_LIBRARY=${prefix}/libexec/qt5/lib/libqscintilla2.dylib" configure.args-append "-DQWT_LIBRARY=${prefix}/libexec/qt5/lib/libqwt.dylib" depends_lib-append port:py27-pyqt5 \ port:qt5-qtscript } variant qt4 conflicts qt5 description "Build with Qt4" { PortGroup qt4 1.0 configure.args-append "-DENABLE_QT5=OFF" configure.args-append "-DPYTHON_CUSTOM_FRAMEWORK=${Py_FRM}" configure.args-append "-DSIP_BINARY_PATH=${prefix}/bin/sip-2.7" configure.args-append "-DPYUIC4_PROGRAM=${prefix}/bin/pyuic4-2.7" configure.args-append "-DPYRCC4_PROGRAM=${prefix}/bin/pyrcc4-2.7" configure.args-append "-DWITH_SERVER=TRUE" configure.args-append "-DWITH_SERVER_PLUGINS=TRUE" depends_lib-append port:py27-pyqt4 \ port:py27-qscintilla \ port:qwt61 } # Database variants (from the GDAL port) set postgresql_suffixes {93 94 95} set portsgresql_variants {} foreach s ${postgresql_suffixes} { lappend portsgresql_variants postgresql${s} } foreach s ${postgresql_suffixes} { set p postgresql${s} set v [string index ${s} 0].[string index ${s} 1] set i [lsearch -exact ${portsgresql_variants} ${p}] set c [lreplace ${portsgresql_variants} ${i} ${i}] eval [subst { variant ${p} description "Enable PostgreSQL ${v} support" conflicts ${c} { depends_lib-append port:${p} configure.args-append \ "-DPOSTGRES_CONFIG=${prefix}/lib/${p}/bin/pg_config" } }] } # postgresql default set pgd "if {" foreach s ${postgresql_suffixes} { set pgd "${pgd}!\[variant_isset postgresql${s}\] && " } set pgd [string range ${pgd} 0 end-4] set pgd "${pgd}} { default_variants +postgresql94 }" eval ${pgd} variant grass description "Build Grass 7 plugin" { #depends_lib-append port:grass configure.args-delete "-DWITH_GRASS7=OFF" configure.args-append "-DWITH_GRASS7=ON" configure.args-append \ "-DGRASS_PREFIX7=${prefix}/share/grass-7.0.2" } 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 "-DQGIS_MACAPP_BUNDLE=0" 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" 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 \ "-DSPATIALINDEX_LIBRARY=${prefix}/lib/libspatialindex.dylib" configure.args-append "-DCMAKE_BUILD_TYPE=Release" use_parallel_build yes build.dir ${worksrcpath}/build destroot.target install