Update graphics/cimg to version 1.7.5,3
[dports.git] / graphics / qgis / Makefile
1 # Created by: Laurent Courty
2 # $FreeBSD$
3
4 PORTNAME=       qgis
5 DISTVERSIONPREFIX=      final-
6 DISTVERSION=    2_14_3
7 CATEGORIES=     graphics geography
8
9 MAINTAINER=     rhurlin@gwdg.de
10 COMMENT=        Geographical Information System (GIS) data viewer
11
12 LICENSE=        GPLv2
13
14 BUILD_DEPENDS=  txt2tags:textproc/txt2tags
15 LIB_DEPENDS=    libexpat.so:textproc/expat2 \
16                 libgdal.so:graphics/gdal \
17                 libgeos.so:graphics/geos \
18                 libgsl.so:math/gsl \
19                 libproj.so:graphics/proj \
20                 libqca.so:devel/qca \
21                 libqscintilla2.so:devel/qscintilla2 \
22                 libqwt.so:x11-toolkits/qwt5 \
23                 libspatialindex.so:devel/spatialindex \
24                 libspatialite.so:databases/spatialite
25
26 USE_GITHUB=     yes
27 GH_PROJECT=     ${PORTNAME:tu}
28
29 USES=           bison cmake cpe desktop-file-utils execinfo fortran \
30                 gmake python:2 sqlite
31 USE_QT4=        corelib designer gui linguist_build moc_build network \
32                 qmake_build rcc_build script sql svg testlib uic_build xml \
33                 webkit
34
35 USE_LDCONFIG=   yes
36 ICON_SIZES=     8 16 22 24 32 36 42 48 64 72 80 96 128 192 256 512
37
38 OPTIONS_DEFINE=         PYTHON POSTGIS GRASS SERVER
39 OPTIONS_GROUP=          DEVELOPER
40 OPTIONS_GROUP_DEVELOPER=        CUSTOMWIDGETS ASTYLE DEBUG
41 OPTIONS_DEFAULT=        PYTHON POSTGIS
42 OPTIONS_SUB=            yes
43 NO_OPTIONS_SORT=        yes
44 ASTYLE_DESC=            Enable AStyle for QGis
45 CUSTOMWIDGETS_DESC=     Enable QT4/QGis Custom Widgets
46 DEBUG_DESC=             Write Debugging Output to Console
47 SERVER_DESC=            Enable QGIS server
48
49 CMAKE_ARGS+=    -DWITH_ORACLE:BOOL=FALSE
50
51 .if !defined(MAINTAINER_MODE)
52 CMAKE_ARGS+=    -Wno-dev
53 .endif
54
55 ASTYLE_RUN_DEPENDS=     astyle:devel/astyle
56 ASTYLE_CMAKE_ON=        -DWITH_ASTYLE:BOOL=TRUE
57 ASTYLE_CMAKE_OFF=       -DWITH_ASTYLE:BOOL=FALSE
58
59 CUSTOMWIDGETS_CMAKE_ON= -DWITH_CUSTOM_WIDGETS:BOOL=TRUE
60 CUSTOMWIDGETS_CMAKE_OFF=        -DWITH_CUSTOM_WIDGETS:BOOL=FALSE
61
62 DEBUG_CMAKE_ON=         -DCMAKE_BUILD_TYPE=Debug
63 DEBUG_CMAKE_OFF=        -DCMAKE_BUILD_TYPE=Release
64
65 GRASS_BUILD_DEPENDS=    grass64:databases/grass
66 GRASS_RUN_DEPENDS=      grass64:databases/grass
67 GRASS_CMAKE_ON=         -DWITH_GRASS:BOOL=TRUE -DGRASS_PREFIX=${LOCALBASE}/grass-6.4.5
68 GRASS_CMAKE_OFF=        -DWITH_GRASS:BOOL=FALSE
69 GRASS_FORCE_MAKE_JOBS=  NO
70
71 POSTGIS_USES=           pgsql
72 POSTGIS_LIB_DEPENDS=    liblwgeom.so:databases/postgis21
73 POSTGIS_CMAKE_ON=       -DWITH_POSTGRESQL:BOOL=TRUE
74 POSTGIS_CMAKE_OFF=      -DWITH_POSTGRESQL:BOOL=FALSE
75
76 PYTHON_BUILD_DEPENDS=   ${PYTHON_PKGNAMEPREFIX}future>=0.14.3:devel/py-future \
77                         ${PYTHON_PKGNAMEPREFIX}matplotlib>=1.4.3:math/py-matplotlib \
78                         ${PYTHON_PKGNAMEPREFIX}mock>=1.3.0:devel/py-mock \
79                         ${PYTHON_PKGNAMEPREFIX}pip>=8.0.2:devel/py-pip \
80                         ${PYTHON_PKGNAMEPREFIX}qt4-core>=4.8.5:devel/py-qt4-core \
81                         ${PYTHON_PKGNAMEPREFIX}qt4-gui>=4.8.5:x11-toolkits/py-qt4-gui \
82                         ${PYTHON_PKGNAMEPREFIX}qt4-network>=4.8.5:net/py-qt4-network \
83                         ${PYTHON_PKGNAMEPREFIX}qt4-qscintilla2>=2.8.3:devel/py-qt4-qscintilla2 \
84                         ${PYTHON_PKGNAMEPREFIX}qt4-sql>=4.11.3:databases/py-qt4-sql \
85                         ${PYTHON_PKGNAMEPREFIX}qt4-svg>=4.8.5:graphics/py-qt4-svg \
86                         ${PYTHON_PKGNAMEPREFIX}qt4-xml>=4.5.4:textproc/py-qt4-xml \
87                         ${PYTHON_PKGNAMEPREFIX}sip>=4.14.6:devel/py-sip \
88                         ${PYTHON_PKGNAMEPREFIX}sqlite3>=2.7.6:databases/py-sqlite3 \
89                         ${PYTHON_PKGNAMEPREFIX}yaml>=3.11:devel/py-yaml
90 PYTHON_RUN_DEPENDS=     ${PYTHON_PKGNAMEPREFIX}future>=0.14.3:devel/py-future \
91                         ${PYTHON_PKGNAMEPREFIX}gdal>=2.0.1:graphics/py-gdal \
92                         ${PYTHON_PKGNAMEPREFIX}matplotlib>=1.4.3:math/py-matplotlib \
93                         ${PYTHON_PKGNAMEPREFIX}mock>=1.3.0:devel/py-mock \
94                         ${PYTHON_PKGNAMEPREFIX}numpy>=1.9.1:math/py-numpy \
95                         ${PYTHON_PKGNAMEPREFIX}pip>=8.0.2:devel/py-pip \
96                         ${PYTHON_PKGNAMEPREFIX}psycopg2>=2.5.3:databases/py-psycopg2 \
97                         ${PYTHON_PKGNAMEPREFIX}pyspatialite>=3.0.1:databases/pyspatialite \
98                         ${PYTHON_PKGNAMEPREFIX}qt4-core>=4.8.5:devel/py-qt4-core \
99                         ${PYTHON_PKGNAMEPREFIX}qt4-gui>=4.8.5:x11-toolkits/py-qt4-gui \
100                         ${PYTHON_PKGNAMEPREFIX}qt4-network>=4.8.5:net/py-qt4-network \
101                         ${PYTHON_PKGNAMEPREFIX}qt4-qscintilla2>=2.8.3:devel/py-qt4-qscintilla2 \
102                         ${PYTHON_PKGNAMEPREFIX}qt4-sql>=4.11.3:databases/py-qt4-sql \
103                         ${PYTHON_PKGNAMEPREFIX}qt4-svg>=4.8.5:graphics/py-qt4-svg \
104                         ${PYTHON_PKGNAMEPREFIX}qt4-webkit>=4.11.1:www/py-qt4-webkit \
105                         ${PYTHON_PKGNAMEPREFIX}qt4-xml>=4.5.4:textproc/py-qt4-xml \
106                         ${PYTHON_PKGNAMEPREFIX}sqlite3>=2.7.6:databases/py-sqlite3 \
107                         ${PYTHON_PKGNAMEPREFIX}yaml>=3.11:devel/py-yaml
108 PYTHON_CMAKE_ON=        -DWITH_BINDINGS:BOOL=TRUE
109 PYTHON_CMAKE_OFF=       -DWITH_BINDINGS:BOOL=FALSE
110
111 SERVER_LIB_DEPENDS=     libfcgi.so:www/fcgi
112 SERVER_CMAKE_ON=        -DWITH_SERVER:BOOL=TRUE
113 SERVER_CMAKE_OFF=       -DWITH_SERVER:BOOL=FALSE
114
115 INSTALLS_ICONS=         yes
116
117 .include <bsd.port.options.mk>
118
119 .if ${OPSYS} == FreeBSD && ${OSVERSION} >= 1000033
120 USES+=          compiler:features
121 .else
122 USES+=          compiler:gcc-c++11-lib
123 BUILD_DEPENDS+= flex>=2.5.39:textproc/flex
124 CMAKE_ARGS+=    -DFLEX_EXECUTABLE:STRING=${LOCALBASE}/bin/flex
125 CXXFLAGS+=      -I${LOCALBASE}/include/flex
126 .endif
127
128 pre-patch:
129         @${REINPLACE_CMD} -e 's|tr( "QGIS code revision" ) + QString( "</td><td><a href=\\"https://github.com/qgis/QGIS/commit/%1\\">%1</a></td>" ).arg( QGis::QGIS_DEV_VERSION )|tr( "QGIS code revision" ) + "</td><td>" + tr( "${GH_TAGNAME}" ) + "</td>"|g' \
130                 ${WRKSRC}/src/app/qgisapp.cpp
131 .if ${OPSYS} == FreeBSD && ${OSVERSION} >= 1000033
132 # [Ugly workaround!] Because of GitHub #76aa035 from 2015-05-23
133 # 'Hide shared library symbols by default on GCC and Clang',
134 # some layer properties are not visible on FreeBSD > 9.x
135         @${REINPLACE_CMD} -e 's|SET(CMAKE_CXX_FLAGS "$${CMAKE_CXX_FLAGS} -fvisibility=hidden -fvisibility-inlines-hidden")|#SET(CMAKE_CXX_FLAGS "$${CMAKE_CXX_FLAGS} -fvisibility=hidden -fvisibility-inlines-hidden")|g' \
136                 ${WRKSRC}/src/analysis/CMakeLists.txt \
137                 ${WRKSRC}/src/app/CMakeLists.txt \
138                 ${WRKSRC}/src/core/CMakeLists.txt \
139                 ${WRKSRC}/src/customwidgets/CMakeLists.txt \
140                 ${WRKSRC}/src/gui/CMakeLists.txt \
141                 ${WRKSRC}/src/plugins/CMakeLists.txt \
142                 ${WRKSRC}/src/python/CMakeLists.txt \
143                 ${WRKSRC}/src/server/CMakeLists.txt
144 .endif
145
146 post-patch:
147         @${REINPLACE_CMD} -e 's|/usr/bin/qgis|${LOCALBASE}/bin/qgis|g' \
148                 ${WRKSRC}/debian/${PORTNAME}.desktop
149         @${REINPLACE_CMD} -e 's|Icon=qgis|Icon=qgis-icon|' \
150                 ${WRKSRC}/debian/${PORTNAME}.desktop
151         @${REINPLACE_CMD} -e 's|env python|env ${PYTHON_VERSION}|g' \
152                 ${WRKSRC}/python/ext-libs/pygments/util.py \
153                 ${WRKSRC}/python/ext-libs/pytz/tzfile.py \
154                 ${WRKSRC}/scripts/generate_test_mask_image.py \
155                 ${WRKSRC}/scripts/random_vector.py \
156                 ${WRKSRC}/scripts/widgets_tree.py \
157                 ${WRKSRC}/src/plugins/grass/qgis_grass_test.py \
158                 ${WRKSRC}/src/plugins/grass/scripts/qgis.v.kernel.rast.py \
159                 ${WRKSRC}/src/plugins/grass/scripts/v.out.ogr.pg.py \
160                 ${WRKSRC}/src/plugins/grass/scripts/qgis.v.upgrade.py \
161                 ${WRKSRC}/src/plugins/grass/scripts/r.external.all.py \
162                 ${WRKSRC}/src/plugins/grass/scripts/db.connect-login.pg.py
163
164 post-install:
165         ${RM} ${STAGEDIR}${DATADIR}/python/pygments/util.py.bak
166         ${RM} ${STAGEDIR}${DATADIR}/python/pytz/tzfile.py.bak
167         @${MKDIR} ${STAGEDIR}${PREFIX}/share/applications
168         ${INSTALL_DATA} ${WRKSRC}/debian/${PORTNAME}.desktop \
169                 ${STAGEDIR}${PREFIX}/share/applications/
170         @${MKDIR} ${STAGEDIR}${PREFIX}/share/icons
171         @${MKDIR} ${STAGEDIR}${PREFIX}/share/icons/hicolor
172 .for SZ in ${ICON_SIZES}
173         @${MKDIR} ${STAGEDIR}${PREFIX}/share/icons/hicolor/${SZ}x${SZ}
174         @${MKDIR} ${STAGEDIR}${PREFIX}/share/icons/hicolor/${SZ}x${SZ}/apps
175         ${INSTALL_DATA} ${WRKSRC}/debian/${PORTNAME}-icon${SZ}x${SZ}.png \
176                 ${STAGEDIR}${PREFIX}/share/icons/hicolor/${SZ}x${SZ}/apps/${PORTNAME}.png
177 .endfor
178
179 .include <bsd.port.mk>