blob: 44390148d1654693f9d0951c06b9b323761c62ef (
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
138
139
140
141
142
143
144
145
146
|
PORTNAME= FreeCAD
DISTVERSION= r${GIT_SRC_DATE}
PORTREVISION= 1
#PORTREVISION= 1
CATEGORIES= cad
PKGNAMESUFFIX= -devel
MAINTAINER= mr@FreeBSD.org
COMMENT= General purpose 3D CAD modeller
WWW= https://www.freecadweb.org/
LICENSE= LGPL20+
LICENSE_FILE= ${WRKSRC}/LICENSE
CONFLICTS_INSTALL= freecad # bin/FreeCAD
BUILD_DEPENDS= doxygen:devel/doxygen \
pybind11-config:devel/py-pybind11@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pyside6-tools>0:devel/pyside6-tools@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pivy>0:graphics/py-pivy@${PY_FLAVOR} \
${PYTHON_SITELIBDIR}/matplotlib/__init__.py:math/py-matplotlib@${PY_FLAVOR} \
swig:devel/swig
LIB_DEPENDS= libexpat.so:textproc/expat2 \
libyaml-cpp.so:devel/yaml-cpp \
libfreetype.so:print/freetype2 \
libtbb.so:devel/onetbb \
${PY_BOOST} \
libpyside6.abi3.so:devel/pyside6 \
libCoin.so:graphics/Coin \
libfmt.so:devel/libfmt \
libpng.so:graphics/png \
libtiff.so:graphics/tiff \
libvtksys-${VTK_VER}.so:math/vtk${VTK_VER:R} \
libTKernel.so:cad/opencascade \
libxerces-c.so:textproc/xerces-c3 \
libboost_thread.so:devel/boost-libs \
libfontconfig.so:x11-fonts/fontconfig \
libfreeimage.so:graphics/freeimage \
libavutil.so.58:multimedia/ffmpeg \
libavformat.so.58:multimedia/ffmpeg4 \
libmed.so:french/med \
libshiboken6.abi3.so:devel/shiboken6@${PY_FLAVOR} \
libhdf5.so:science/hdf5
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pivy>0:graphics/py-pivy@${PY_FLAVOR} \
${PYTHON_SITELIBDIR}/matplotlib/__init__.py:math/py-matplotlib@${PY_FLAVOR}
USES= dos2unix compiler:c++20-lang cmake cpe gl eigen:3 fortran gmake jpeg \
localbase:ldflags mpi:openmpi pkgconfig python localbase qt:6 xorg \
desktop-file-utils shared-mime-info shebangfix
USE_GITHUB= yes
GH_ACCOUNT= FreeCAD:ondsel google:gtest microsoft:gsl FreeCAD:addonmgr
GH_PROJECT= OndselSolver:ondsel googletest:gtest GSL:gsl AddonManager:addonmgr
GH_TAGNAME= ${GIT_SRC_HASH} ${GIT_ONDSEL_HASH}:ondsel ${GIT_GTEST_HASH}:gtest ${GIT_GSL_HASH}:gsl ${GIT_ADDONMGR_HASH}:addonmgr
GH_SUBDIR= src/3rdParty/OndselSolver:ondsel tests/lib:gtest src/3rdParty/GSL:gsl src/Mod/AddonManager:addonmgr
USE_XORG= ice sm x11 xext xt
USE_GL= gl glu
USE_QT= base svg tools
#USE_QT= buildtools concurrent core declarative designer gui \
# linguisttools location network opengl printsupport \
# qmake:build svg webchannel widgets xml xmlpatterns
USE_LDCONFIG= yes
CPE_VENDOR= freecad_project
VTK_VER= 9.5
DOS2UNIX_GLOB= *.txt *.h *.cpp *.py *.qss *.csv *.pov *.stp *.ui *.wrl *.WRL
SHEBANG_FILES= src/Tools/freecad-thumbnailer.in
# our HDF5/CMake integration is messy, so workarounds are required below
CMAKE_ARGS+= -DOCC_INCLUDE_DIR="${LOCALBASE}/include/OpenCASCADE" \
-DOPENMPI_INCLUDE_DIRS="${LOCALBASE}/mpi/openmpi/include" \
-DFREECAD_QT_VERSION=6 \
-DBUILD_QT5="OFF" \
-DBUILD_QT6="ON" \
-DPYTHON_LIBRARY="${PYTHONBASE}/lib/libpython${PYTHON_VER}${PYTHON_ABIVER}.so" \
-DPYTHON_INCLUDE_DIR="${PYTHON_INCLUDEDIR}" \
-DPYTHON_PACKAGES_PATH="${PYTHON_SITELIBDIR}" \
-DPYTHON_EXECUTABLE="${PYTHON_CMD}" \
-DBUILD_ASSEMBLY="ON" \
-DBUILD_DESIGNER_PLUGIN="ON" \
-DBUILD_FLAT_MESH="ON" \
-DBUILD_VR="OFF" \
-DFREECAD_USE_EXTERNAL_FMT="ON" \
-DFREECAD_CREATE_MAC_APP="OFF" \
-DFREECAD_FREECAD_LIBPACK_USE="OFF" \
-DFREECAD_USE_EXTERNAL_KDL="OFF" \
-DFREECAD_USE_EXTERNAL_SMESH="OFF" \
-DFREECAD_USE_FREETYPE="ON" \
-DFREECAD_USE_PYBIND11="ON" \
-DFREECAD_USE_PCL="OFF" \
-Dpybind11_DIR="${PYTHON_SITELIBDIR}/pybind11/share/cmake/pybind11" \
-DHDF5_CFLAGS="-I${LOCALBASE}/include" \
-DHDF5_FOUND=TRUE \
-DHDF5_VERSION="1.12.2" \
-DHDF5_INCLUDE_DIRS="${LOCALBASE}/include/hdf5" \
-DHDF5_LIBRARIES="-L${LOCALBASE}/lib -lhdf5" \
-DHDF5_LIBRARY_DIRS="${LOCALBASE}/lib" \
-DPYSIDE2RCCBINARY="${RCC}" \
-DPYSIDE2UICBINARY="${UIC}" \
-DBUILD_ENABLE_CXX_STD=C++20
CMAKE_INSTALL_PREFIX= ${PREFIX}/${PORTNAME}
# Install XDG icons and files to the standard path
CMAKE_ARGS+= -DXDG_DATADIR="${PREFIX}/share"
OPTIONS_DEFINE= COLLADA SPNAV
COLLADA_DESC= Install pycollada for Collada files import
COLLADA_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pycollada>0:graphics/py-pycollada@${PY_FLAVOR}
OPTIONS_DEFINE= COLLADA SPNAV
SPNAV_DESC= Enable libspnav (SpaceMouse) support
SPNAV_CMAKE_BOOL= FREECAD_SPNAV_SUPPORT
SPNAV_LIB_DEPENDS= libspnav.so:misc/libspnav
.include <bsd.port.options.mk>
.if ${ARCH} == aarch64 || ${ARCH} == amd64 || ${ARCH} == i386
PLIST_SUB= WEBENGINE=""
USE_QT+= webengine
.else
CMAKE_ARGS+= -DBUILD_WEB:BOOL=OFF
PLIST_SUB= WEBENGINE="@comment "
.endif
.include "Makefile.git_rev"
pre-configure:
@${REINPLACE_CMD} -e '/self\.rev/s/Unknown/${DISTVERSION:C/.*-//}/' \
${WRKSRC}/src/Tools/SubWCRev.py
# Install XDG icons and files to the standard path
@${REINPLACE_CMD} -e 's/CMAKE_INSTALL_DATAROOTDIR/XDG_DATADIR/g' \
${WRKSRC}/src/XDGData/CMakeLists.txt \
${WRKSRC}/src/Gui/CMakeLists.txt
post-install:
${LN} -sf ../${PORTNAME}/bin/FreeCAD ${STAGEDIR}${LOCALBASE}/bin/FreeCAD
${LN} -sf ../${PORTNAME}/bin/FreeCADCmd ${STAGEDIR}${LOCALBASE}/bin/FreeCADCmd
# ${INSTALL_SCRIPT} ${WRKSRC}/src/Tools/freecad-thumbnailer \
# ${STAGEDIR}${PREFIX}/bin/freecad-thumbnailer
.include <bsd.port.mk>
|