blob: d522b495599443cd1b133d955c303a75d707a52f (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
|
# Created by: Pedro Giffuni <giffunip@asme.org>
# $FreeBSD$
PORTNAME= gmsh
PORTVERSION= 2.12.0
CATEGORIES= cad
MASTER_SITES= http://www.geuz.org/gmsh/src/ \
http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/
DISTNAME= ${PORTNAME}-${PORTVERSION}-source
DISTFILES= ${DISTNAME}${EXTRACT_SUFX}
DIST_SUBDIR= gmsh
EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX}
MAINTAINER= stephen@FreeBSD.org
COMMENT= Automatic 3D finite element mesh generator
LIB_DEPENDS= libfltk.so:x11-toolkits/fltk \
libpng.so:graphics/png \
liblapack.so:math/lapack
RUN_DEPENDS= getdp:science/getdp
BROKEN_powerpc64= Does not build on powerpc64
WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION}-source
SLAVEDIRS= cad/gmsh-occ
USES= cmake fortran gmake jpeg tar:tgz
USE_GL= yes
ALL_TARGET= all
MAKE_JOBS_UNSAFE= yes
CMAKE_ARGS+= -DCMAKE_SKIP_RPATH:BOOL=YES
OPTIONS_DEFINE= STATIC_LIB SHARED_LIB TETGEN METIS TAUCS MED CGNS GMM OCC
OPTIONS_DEFAULT= STATIC_LIB SHARED_LIB TETGEN METIS MED CGNS GMM
STATIC_LIB_DESC= Build static library
SHARED_LIB_DESC= Build shared library
TETGEN_LIB_DESC= Enable tetgen as an alternative 3D mesh generator
METIS_LIB_DESC= Enable metis as an alternative 3D mesh generator
TAUCS_LIB_DESC= Enable the Taucs linear algebra solver
MED_LIB_DESC= Enable MED support
CGNS_LIB_DESC= Enable CGNS support
GMM_LIB_DESC= Enable gmm++ support
OCC_LIB_DESC= Enable STEP, IGES and BREP support
OPTIONS_SUB= yes
STATIC_LIB_CMAKE_ON= -DENABLE_BUILD_LIB=ON
STATIC_LIB_ALL_TARGET= lib
SHARED_LIB_CMAKE_ON= -DENABLE_BUILD_SHARED=ON
SHARED_LIB_ALL_TARGET= shared
SHARED_LIB_VARS= use_ldconfig=yes
PLIST_SUB+= SHARED_LIB="" VER=${PORTVERSION} VE=${PORTVERSION:R}
DOCS_CMAKE_OFF= -DINSTALL_DOCS=OFF
TETGEN_CMAKE_ON= -DENABLE_TETGEN=ON
TETGEN_CMAKE_OFF= -DENABLE_TETGEN=OFF
TETGEN_VARS= "no_cdrom=Contact appropriate authors for commercial purposes if including Tetgen or Metis"
METIS_CMAKE_ON= -DENABLE_METIS=ON
METIS_CMAKE_OFF= -DENABLE_METIS=OFF
METIS_VARS= "no_cdrom=Contact appropriate authors for commercial purposes if including Tetgen or Metis"
METIS_VARS= distfiles+=manual.pdf
TAUCS_LIB_DEPENDS= libtaucs.so:math/taucs
TAUCS_CMAKE_ON= -DENABLE_TAUCS=ON
TAUCS_CMAKE_OFF= -DENABLE_TAUCS=OFF
MED_LIB_DEPENDS= libmed.so:french/med
MED_CMAKE_ON= -DENABLE_MED=ON
MED_CMAKE_OFF= -DENABLE_MED=OFF
CGNS_LIB_DEPENDS= libcgns.so:science/cgnslib
CGNS_CMAKE_ON= -DENABLE_CGNS=ON
CGNS_CMAKE_OFF= -DENABLE_CGNS=OFF
GMM_CMAKE_OFF= -DENABLE_GMM=OFF
OCC_LIB_DEPENDS= libTKernel.so:cad/opencascade
OCC_CMAKE_ON= -DENABLE_OCC=ON -DOCC_INC=${LOCALBASE}/include/OpenCASCADE
OCC_CFLAGS= -DHAVE_CONFIG_H -DHAVE_WOK_CONFIG_H -DFREEBSD
OCC_CONFLICTS= gmsh-2.*
OCC_CMAKE_OFF= -DENABLE_OCC=OFF
OCC_CONFLICTS_OFF= gmsh-occ-2.*
.include <bsd.port.options.mk>
# Even though the taucs port pulls in the metis port, we will still need
# METIS set when TAUCS is set, otherwise the linker does not find the
# libraries installed by the metis port.
.if ${PORT_OPTIONS:MTAUCS} && !${PORT_OPTIONS:MMETIS}
IGNORE= METIS must be set if TAUCS is set
.endif
.if !${PORT_OPTIONS:MMETIS} && ${PORT_OPTIONS:MDOCS}
IGNORE= the license for Metis requires that its documentation is included
.endif
# TODO
# Dependencies against PythonLibs, swig and petsc are found and registered if installed
# => add knobs to handle them.
PKGMESSAGE= ${WRKDIR}/pkg-message
.include <bsd.port.pre.mk>
post-extract:
${CP} ${DISTDIR}/${DIST_SUBDIR}/manual.pdf ${WRKDIR}
${TOUCH} ${PKGMESSAGE}
.if ${PORT_OPTIONS:MTETGEN}
@${ECHO} >> ${PKGMESSAGE}
@${ECHO} "The FreeBSD project has been granted redistribution rights" >> ${PKGMESSAGE}
@${ECHO} "but anyone attempting to redistribute Gmsh with Tetgen" >> ${PKGMESSAGE}
@${ECHO} "for strict commercial purposes must still contact the author" >> ${PKGMESSAGE}
@${ECHO} "(Hang Si) and license the code." >> ${PKGMESSAGE}
.endif
.if ${PORT_OPTIONS:MMETIS}
@${ECHO} >> ${PKGMESSAGE}
@${ECHO} "The FreeBSD project has been granted redistribution rights" >> ${PKGMESSAGE}
@${ECHO} "but anyone attempting to redistribute Gmsh with Metis" >> ${PKGMESSAGE}
@${ECHO} "must still contact the author" >> ${PKGMESSAGE}
@${ECHO} "http://glaros.dtc.umn.edu/gkhome/metis/metis/faq?q=metis/metis/faq#distribute" >> ${PKGMESSAGE}
@${ECHO} "\"A Fast and Highly Quality Multilevel Scheme for Partitioning Irregular Graphs\". George Karypis and Vipin Kumar. SIAM Journal on Scientific Computing, Vol. 20, No. 1, pp. 359-392, 1999." >> ${PKGMESSAGE}
.endif
.if ${PORT_OPTIONS:MTAUCS}
@${ECHO} >> ${PKGMESSAGE}
@${ECHO} "There might be licensing issues with using Taucs with Gmsh" >> ${PKGMESSAGE}
@${ECHO} "because Taucs requires Metis." >> ${PKGMESSAGE}
.endif
pre-configure:
${REINPLACE_CMD} -e s+share/doc/gmsh+${DOCSDIR_REL}+ \
-e s+share/man/man1+man/man1+ ${WRKSRC}/CMakeLists.txt
post-install:
.if ${PORT_OPTIONS:MMETIS}
${MKDIR} ${STAGEDIR}${DOCSDIR}/metis
${INSTALL_DATA} ${WRKDIR}/manual.pdf ${STAGEDIR}${DOCSDIR}/metis
.endif
.include <bsd.port.post.mk>
|