Files
haikuports/sci-libs/opencascade/opencascade-7.7.2.recipe
Joachim Mairböck 43a13784b1 opencascade: switch ffmpeg requirements to use >= (#9116)
Also, remove the version constraints from the lib: requirements. They should be picked up automatically by haikuporter because of the devel: requirements and the dependency of ffmpeg_devel on ffmpeg.
2023-07-31 20:29:15 +02:00

420 lines
17 KiB
Bash

SUMMARY="A C++ 3D modeling library"
DESCRIPTION="Open CASCADE Technology (OCCT) is an object-oriented C++ class \
library designed for rapid production of sophisticated domain-specific \
CAD/CAM/CAE applications."
HOMEPAGE="https://www.opencascade.com/open-cascade-technology/"
COPYRIGHT="1993-1999 Matra Datavision
1999-2020 OPEN CASCADE SAS"
LICENSE="GNU LGPL v2.1
Open CASCADE exception v1.0"
REVISION="3"
SOURCE_URI="https://git.dev.opencascade.org/gitweb/?p=occt.git;a=snapshot;h=refs/tags/V${portVersion//./_};sf=tgz"
CHECKSUM_SHA256="2fb23c8d67a7b72061b4f7a6875861e17d412d524527b2a96151ead1d9cfa2c1"
SOURCE_DIR="occt-V${portVersion//./_}"
PATCHES="opencascade-$portVersion.patchset"
ARCHITECTURES="all !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"
commandSuffix=$secondaryArchSuffix
commandBinDir=$binDir
relativeCommandBinDir=$relativeBinDir
if [ "$targetArchitecture" = x86_gcc2 ]; then
commandSuffix=
commandBinDir=$prefix/bin
relativeCommandBinDir=bin
fi
libVersion="$portVersion"
libVersionCompat="$libVersion compat >= ${libVersion%.*}"
case "$targetArchitecture" in
*64*)
scriptBitness=64
;;
*)
scriptBitness=32
;;
esac
PROVIDES="
opencascade$secondaryArchSuffix = $portVersion
lib:libTKBin$secondaryArchSuffix = $libVersionCompat
lib:libTKBinL$secondaryArchSuffix = $libVersionCompat
lib:libTKBinTObj$secondaryArchSuffix = $libVersionCompat
lib:libTKBinXCAF$secondaryArchSuffix = $libVersionCompat
lib:libTKBO$secondaryArchSuffix = $libVersionCompat
lib:libTKBool$secondaryArchSuffix = $libVersionCompat
lib:libTKBRep$secondaryArchSuffix = $libVersionCompat
lib:libTKCAF$secondaryArchSuffix = $libVersionCompat
lib:libTKCDF$secondaryArchSuffix = $libVersionCompat
lib:libTKernel$secondaryArchSuffix = $libVersionCompat
lib:libTKFeat$secondaryArchSuffix = $libVersionCompat
lib:libTKFillet$secondaryArchSuffix = $libVersionCompat
lib:libTKG2d$secondaryArchSuffix = $libVersionCompat
lib:libTKG3d$secondaryArchSuffix = $libVersionCompat
lib:libTKGeomAlgo$secondaryArchSuffix = $libVersionCompat
lib:libTKGeomBase$secondaryArchSuffix = $libVersionCompat
lib:libTKHLR$secondaryArchSuffix = $libVersionCompat
lib:libTKIGES$secondaryArchSuffix = $libVersionCompat
lib:libTKLCAF$secondaryArchSuffix = $libVersionCompat
lib:libTKMath$secondaryArchSuffix = $libVersionCompat
lib:libTKMesh$secondaryArchSuffix = $libVersionCompat
lib:libTKMeshVS$secondaryArchSuffix = $libVersionCompat
lib:libTKOffset$secondaryArchSuffix = $libVersionCompat
# lib:libTKOpenGl$secondaryArchSuffix = $libVersionCompat
lib:libTKPrim$secondaryArchSuffix = $libVersionCompat
lib:libTKRWMesh$secondaryArchSuffix = $libVersionCompat
lib:libTKService$secondaryArchSuffix = $libVersionCompat
lib:libTKShHealing$secondaryArchSuffix = $libVersionCompat
lib:libTKStd$secondaryArchSuffix = $libVersionCompat
lib:libTKStdL$secondaryArchSuffix = $libVersionCompat
lib:libTKSTEP$secondaryArchSuffix = $libVersionCompat
lib:libTKSTEP209$secondaryArchSuffix = $libVersionCompat
lib:libTKSTEPAttr$secondaryArchSuffix = $libVersionCompat
lib:libTKSTEPBase$secondaryArchSuffix = $libVersionCompat
lib:libTKSTL$secondaryArchSuffix = $libVersionCompat
lib:libTKTObj$secondaryArchSuffix = $libVersionCompat
lib:libTKTopAlgo$secondaryArchSuffix = $libVersionCompat
lib:libTKV3d$secondaryArchSuffix = $libVersionCompat
lib:libTKVCAF$secondaryArchSuffix = $libVersionCompat
lib:libTKVRML$secondaryArchSuffix = $libVersionCompat
lib:libTKXCAF$secondaryArchSuffix = $libVersionCompat
lib:libTKXDE$secondaryArchSuffix = $libVersionCompat
lib:libTKXDECascade$secondaryArchSuffix = $libVersionCompat
lib:libTKXDEIGES$secondaryArchSuffix = $libVersionCompat
lib:libTKXDESTEP$secondaryArchSuffix = $libVersionCompat
lib:libTKXMesh$secondaryArchSuffix = $libVersionCompat
lib:libTKXml$secondaryArchSuffix = $libVersionCompat
lib:libTKXmlL$secondaryArchSuffix = $libVersionCompat
lib:libTKXmlTObj$secondaryArchSuffix = $libVersionCompat
lib:libTKXmlXCAF$secondaryArchSuffix = $libVersionCompat
lib:libTKXSBase$secondaryArchSuffix = $libVersionCompat
"
REQUIRES="
haiku$secondaryArchSuffix
lib:libavcodec$secondaryArchSuffix
lib:libavformat$secondaryArchSuffix
lib:libavutil$secondaryArchSuffix
# lib:libEGL$secondaryArchSuffix
lib:libexecinfo$secondaryArchSuffix
lib:libfontconfig$secondaryArchSuffix
lib:libfreeimage$secondaryArchSuffix
lib:libfreetype$secondaryArchSuffix
# lib:libGL$secondaryArchSuffix
lib:libswscale$secondaryArchSuffix
# lib:libtbb$secondaryArchSuffix
lib:libX11$secondaryArchSuffix
"
PROVIDES_devel="
opencascade${secondaryArchSuffix}_devel = $portVersion
devel:libTKBin$secondaryArchSuffix = $libVersionCompat
devel:libTKBinL$secondaryArchSuffix = $libVersionCompat
devel:libTKBinTObj$secondaryArchSuffix = $libVersionCompat
devel:libTKBinXCAF$secondaryArchSuffix = $libVersionCompat
devel:libTKBO$secondaryArchSuffix = $libVersionCompat
devel:libTKBool$secondaryArchSuffix = $libVersionCompat
devel:libTKBRep$secondaryArchSuffix = $libVersionCompat
devel:libTKCAF$secondaryArchSuffix = $libVersionCompat
devel:libTKCDF$secondaryArchSuffix = $libVersionCompat
devel:libTKDCAF$secondaryArchSuffix = $libVersionCompat
devel:libTKDFBrowser$secondaryArchSuffix = $libVersionCompat
devel:libTKDraw$secondaryArchSuffix = $libVersionCompat
devel:libTKernel$secondaryArchSuffix = $libVersionCompat
devel:libTKExpress$secondaryArchSuffix = $libVersionCompat
devel:libTKFeat$secondaryArchSuffix = $libVersionCompat
devel:libTKFillet$secondaryArchSuffix = $libVersionCompat
devel:libTKG2d$secondaryArchSuffix = $libVersionCompat
devel:libTKG3d$secondaryArchSuffix = $libVersionCompat
devel:libTKGeomAlgo$secondaryArchSuffix = $libVersionCompat
devel:libTKGeomBase$secondaryArchSuffix = $libVersionCompat
devel:libTKHLR$secondaryArchSuffix = $libVersionCompat
devel:libTKIGES$secondaryArchSuffix = $libVersionCompat
devel:libTKLCAF$secondaryArchSuffix = $libVersionCompat
devel:libTKMath$secondaryArchSuffix = $libVersionCompat
devel:libTKMesh$secondaryArchSuffix = $libVersionCompat
devel:libTKMeshVS$secondaryArchSuffix = $libVersionCompat
devel:libTKMessageModel$secondaryArchSuffix = $libVersionCompat
devel:libTKMessageView$secondaryArchSuffix = $libVersionCompat
devel:libTKOffset$secondaryArchSuffix = $libVersionCompat
# devel:libTKOpenGl$secondaryArchSuffix = $libVersionCompat
# devel:libTKOpenGlTest$secondaryArchSuffix = $libVersionCompat
devel:libTKPrim$secondaryArchSuffix = $libVersionCompat
devel:libTKQADraw$secondaryArchSuffix = $libVersionCompat
devel:libTKRWMesh$secondaryArchSuffix = $libVersionCompat
devel:libTKService$secondaryArchSuffix = $libVersionCompat
devel:libTKShapeView$secondaryArchSuffix = $libVersionCompat
devel:libTKShHealing$secondaryArchSuffix = $libVersionCompat
devel:libTKStd$secondaryArchSuffix = $libVersionCompat
devel:libTKStdL$secondaryArchSuffix = $libVersionCompat
devel:libTKSTEP$secondaryArchSuffix = $libVersionCompat
devel:libTKSTEP209$secondaryArchSuffix = $libVersionCompat
devel:libTKSTEPAttr$secondaryArchSuffix = $libVersionCompat
devel:libTKSTEPBase$secondaryArchSuffix = $libVersionCompat
devel:libTKSTL$secondaryArchSuffix = $libVersionCompat
devel:libTKTInspector$secondaryArchSuffix = $libVersionCompat
devel:libTKTInspectorAPI$secondaryArchSuffix = $libVersionCompat
devel:libTKTObj$secondaryArchSuffix = $libVersionCompat
devel:libTKTObjDRAW$secondaryArchSuffix = $libVersionCompat
devel:libTKToolsDraw$secondaryArchSuffix = $libVersionCompat
devel:libTKTopAlgo$secondaryArchSuffix = $libVersionCompat
devel:libTKTopTest$secondaryArchSuffix = $libVersionCompat
devel:libTKTreeModel$secondaryArchSuffix = $libVersionCompat
devel:libTKV3d$secondaryArchSuffix = $libVersionCompat
devel:libTKVCAF$secondaryArchSuffix = $libVersionCompat
devel:libTKVInspector$secondaryArchSuffix = $libVersionCompat
devel:libTKVRML$secondaryArchSuffix = $libVersionCompat
devel:libTKView$secondaryArchSuffix = $libVersionCompat
devel:libTKViewerTest$secondaryArchSuffix = $libVersionCompat
devel:libTKXCAF$secondaryArchSuffix = $libVersionCompat
devel:libTKXDE$secondaryArchSuffix = $libVersionCompat
devel:libTKXDECascade$secondaryArchSuffix = $libVersionCompat
devel:libTKXDEDRAW$secondaryArchSuffix = $libVersionCompat
devel:libTKXDEIGES$secondaryArchSuffix = $libVersionCompat
devel:libTKXDESTEP$secondaryArchSuffix = $libVersionCompat
devel:libTKXMesh$secondaryArchSuffix = $libVersionCompat
devel:libTKXml$secondaryArchSuffix = $libVersionCompat
devel:libTKXmlL$secondaryArchSuffix = $libVersionCompat
devel:libTKXmlTObj$secondaryArchSuffix = $libVersionCompat
devel:libTKXmlXCAF$secondaryArchSuffix = $libVersionCompat
devel:libTKXSBase$secondaryArchSuffix = $libVersionCompat
devel:libTKXSDRAW$secondaryArchSuffix = $libVersionCompat
"
REQUIRES_devel="
opencascade$secondaryArchSuffix == $portVersion base
opencascade${secondaryArchSuffix}_tools == $portVersion
"
PROVIDES_doc="
opencascade${secondaryArchSuffix}_doc = $portVersion
"
REQUIRES_doc="
opencascade$secondaryArchSuffix == $portVersion base
"
PROVIDES_samples="
opencascade${secondaryArchSuffix}_samples = $portVersion
cmd:FuncDemo$commandSuffix = $portVersion
cmd:FuncDemo_$portVersion$commandSuffix = $portVersion
cmd:IESample$commandSuffix = $portVersion
cmd:IESample_$portVersion$commandSuffix = $portVersion
cmd:OCCTOverview$commandSuffix = $portVersion
cmd:OCCTOverview_$portVersion$commandSuffix = $portVersion
cmd:Tutorial$commandSuffix = $portVersion
cmd:Tutorial_$portVersion$commandSuffix = $portVersion
cmd:sample.sh
"
REQUIRES_samples="
opencascade$secondaryArchSuffix == $portVersion base
opencascade${secondaryArchSuffix}_tools == $portVersion
haiku$secondaryArchSuffix
lib:libavcodec$secondaryArchSuffix
lib:libavformat$secondaryArchSuffix
lib:libavutil$secondaryArchSuffix
# lib:libEGL$secondaryArchSuffix
lib:libexecinfo$secondaryArchSuffix
lib:libfontconfig$secondaryArchSuffix
lib:libfreeimage$secondaryArchSuffix
lib:libfreetype$secondaryArchSuffix
# lib:libGL$secondaryArchSuffix
lib:libQt5Core$secondaryArchSuffix
lib:libQt5Gui$secondaryArchSuffix
lib:libQt5Qml$secondaryArchSuffix
lib:libQt5QmlModels$secondaryArchSuffix
lib:libQt5Quick$secondaryArchSuffix
lib:libQt5Widgets$secondaryArchSuffix
lib:libQt5Xml$secondaryArchSuffix
lib:libswscale$secondaryArchSuffix
# lib:libtbb$secondaryArchSuffix
lib:libX11$secondaryArchSuffix
"
SUMMARY_tools="C++ 3D modeling tools (DRAW, Inspector and ExpToCas)"
PROVIDES_tools="
opencascade${secondaryArchSuffix}_tools = $portVersion
cmd:DRAWEXE$commandSuffix = $portVersion
cmd:DRAWEXE_$portVersion$commandSuffix = $portVersion
cmd:ExpToCasExe$commandSuffix = $portVersion
cmd:ExpToCasExe_$portVersion$commandSuffix = $portVersion
cmd:TInspectorEXE$commandSuffix = $portVersion
cmd:TInspectorEXE_$portVersion$commandSuffix = $portVersion
cmd:custom.sh
cmd:custom_gcc_$scriptBitness.sh
cmd:draw.sh
cmd:env.sh
cmd:inspector.sh
lib:libTKDCAF$secondaryArchSuffix = $libVersionCompat
lib:libTKDFBrowser$secondaryArchSuffix = $libVersionCompat
lib:libTKDraw$secondaryArchSuffix = $libVersionCompat
lib:libTKExpress$secondaryArchSuffix = $libVersionCompat
lib:libTKMessageModel$secondaryArchSuffix = $libVersionCompat
lib:libTKMessageView$secondaryArchSuffix = $libVersionCompat
# lib:libTKOpenGlTest$secondaryArchSuffix = $libVersionCompat
lib:libTKQADraw$secondaryArchSuffix = $libVersionCompat
lib:libTKShapeView$secondaryArchSuffix = $libVersionCompat
lib:libTKTInspector$secondaryArchSuffix = $libVersionCompat
lib:libTKTInspectorAPI$secondaryArchSuffix = $libVersionCompat
lib:libTKTObjDRAW$secondaryArchSuffix = $libVersionCompat
lib:libTKToolsDraw$secondaryArchSuffix = $libVersionCompat
lib:libTKTopTest$secondaryArchSuffix = $libVersionCompat
lib:libTKTreeModel$secondaryArchSuffix = $libVersionCompat
lib:libTKVInspector$secondaryArchSuffix = $libVersionCompat
lib:libTKView$secondaryArchSuffix = $libVersionCompat
lib:libTKViewerTest$secondaryArchSuffix = $libVersionCompat
lib:libTKXDEDRAW$secondaryArchSuffix = $libVersionCompat
lib:libTKXSDRAW$secondaryArchSuffix = $libVersionCompat
"
REQUIRES_tools="
opencascade$secondaryArchSuffix == $portVersion base
haiku$secondaryArchSuffix
lib:libavcodec$secondaryArchSuffix
lib:libavformat$secondaryArchSuffix
lib:libavutil$secondaryArchSuffix
# lib:libEGL$secondaryArchSuffix
lib:libexecinfo$secondaryArchSuffix
lib:libfontconfig$secondaryArchSuffix
lib:libfreeimage$secondaryArchSuffix
lib:libfreetype$secondaryArchSuffix
# lib:libGL$secondaryArchSuffix
lib:libQt5Gui$secondaryArchSuffix
lib:libQt5Qml$secondaryArchSuffix
lib:libQt5QmlModels$secondaryArchSuffix
lib:libQt5Quick$secondaryArchSuffix
lib:libQt5Widgets$secondaryArchSuffix
lib:libQt5Xml$secondaryArchSuffix
lib:libswscale$secondaryArchSuffix
# lib:libtbb$secondaryArchSuffix
lib:libtcl8.6$secondaryArchSuffix
# lib:libtk8.6$secondaryArchSuffix
lib:libX11$secondaryArchSuffix
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
cmd:dot
cmd:doxygen >= 1.8.4
cmd:lrelease$secondaryArchSuffix
cmd:tclsh
devel:libavcodec$secondaryArchSuffix >= 58
devel:libavformat$secondaryArchSuffix >= 58
devel:libavutil$secondaryArchSuffix >= 56
devel:libexecinfo$secondaryArchSuffix
# devel:libEGL$secondaryArchSuffix
devel:libfontconfig$secondaryArchSuffix
devel:libfreeimage$secondaryArchSuffix
devel:libfreetype$secondaryArchSuffix
# devel:libGL$secondaryArchSuffix
devel:libQt5Gui$secondaryArchSuffix
devel:libQt5Qml$secondaryArchSuffix
devel:libQt5QmlModels$secondaryArchSuffix
devel:libQt5Quick$secondaryArchSuffix
devel:libQt5Widgets$secondaryArchSuffix
devel:libQt5Xml$secondaryArchSuffix
devel:librapidjson$secondaryArchSuffix
devel:libswscale$secondaryArchSuffix >= 5
# devel:libtbb$secondaryArchSuffix
devel:libtclstub8.6$secondaryArchSuffix
# devel:libtk8.6$secondaryArchSuffix
devel:libX11$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:cmake
cmd:g++$secondaryArchSuffix
cmd:make
cmd:pkg_config$secondaryArchSuffix
"
BUILD()
{
cmake -Bbuild -S. -DCMAKE_BUILD_TYPE=Release \
-D3RDPARTY_QT_DIR=$portPackageLinksDir/devel~libqt5 \
-D3RDPARTY_SKIP_DOT_EXECUTABLE=OFF \
-DBUILD_Inspector=ON \
-DBUILD_SAMPLES_QT=ON \
-DINSTALL_DIR=$prefix \
-DINSTALL_DIR_BIN=$relativeCommandBinDir \
-DINSTALL_DIR_CMAKE=$relativeDevelopLibDir/cmake/opencascade \
-DINSTALL_DIR_DATA=$relativeDataDir/opencascade/data \
-DINSTALL_DIR_DOC=$relativeDocDir \
-DINSTALL_DIR_INCLUDE=$relativeIncludeDir/opencascade \
-DINSTALL_DIR_LIB=$relativeLibDir \
-DINSTALL_DIR_RESOURCE=$relativeDataDir/opencascade/resources \
-DINSTALL_DIR_SAMPLES=$relativeDataDir/opencascade/samples \
-DINSTALL_DIR_SCRIPT=$relativeCommandBinDir \
-DINSTALL_DIR_TESTS=$relativeDataDir/opencascade/tests \
-DINSTALL_DOC_Overview=ON \
-DINSTALL_SAMPLES=ON \
-DINSTALL_TEST_CASES=OFF \
-DUSE_DRACO=OFF \
-DUSE_FFMPEG=ON \
-DUSE_FREEIMAGE=ON \
-DUSE_OPENGL=OFF \
-DUSE_OPENVR=OFF \
-DUSE_RAPIDJSON=ON \
-DUSE_TBB=OFF \
-DUSE_TK=OFF \
-DUSE_VTK=OFF \
-DUSE_XLIB=ON
# Draco, OpenVR and VTK are not available, TBB is too old, (SDL)Tk hangs on opening a
# window, OpenGL has no native implementation and EGL is broken
make -C build $jobArgs
}
INSTALL()
{
make -C build install
prepareInstalledDevelLibs libTKBin libTKBinL libTKBinTObj libTKBinXCAF libTKBO libTKBool \
libTKBRep libTKCAF libTKCDF libTKDCAF libTKDFBrowser libTKDraw libTKernel libTKExpress \
libTKFeat libTKFillet libTKG2d libTKG3d libTKGeomAlgo libTKGeomBase libTKHLR libTKIGES \
libTKLCAF libTKMath libTKMesh libTKMeshVS libTKMessageModel libTKMessageView libTKOffset \
libTKPrim libTKQADraw libTKRWMesh libTKService libTKShapeView \
libTKShHealing libTKStd libTKStdL libTKSTEP libTKSTEP209 libTKSTEPAttr libTKSTEPBase \
libTKSTL libTKTInspector libTKTInspectorAPI libTKTObj libTKTObjDRAW libTKToolsDraw \
libTKTopAlgo libTKTopTest libTKTreeModel libTKV3d libTKVCAF libTKView libTKViewerTest \
libTKVInspector libTKVRML libTKXCAF libTKXDE libTKXDECascade libTKXDEDRAW libTKXDEIGES \
libTKXDESTEP libTKXMesh libTKXml libTKXmlL libTKXmlTObj libTKXmlXCAF libTKXSBase \
libTKXSDRAW
packageEntries devel \
$developDir
packageEntries doc \
$documentationDir
packageEntries samples \
$commandBinDir/FuncDemo* \
$commandBinDir/IESample* \
$commandBinDir/OCCTOverview* \
$commandBinDir/Tutorial* \
$commandBinDir/sample.sh \
$dataDir/opencascade/samples \
$dataDir/opencascade/resources/samples
packageEntries tools \
$commandBinDir \
$libDir/libTKExpress.so* \
$libDir/libTKTInspector.so* \
$libDir/libTKTInspectorAPI.so* \
$dataDir/opencascade/resources/DrawResources
# for dynamic loading, version-less symlinks are needed for some libraries
toolsLibs="libTKDraw libTKTopTest libTKViewerTest libTKXSDRAW libTKDCAF \
libTKXDEDRAW libTKTObjDRAW libTKQADraw libTKShapeView libTKMessageModel libTKMessageView \
libTKView libTKVInspector libTKTreeModel libTKDFBrowser libTKToolsDraw"
for lib in $toolsLibs; do
ln -s $lib.so.$portVersion $libDir/$lib.so
packageEntries tools \
$libDir/$lib.so*
done
}
TEST()
{
cd build
source env.sh
lin??/gcc/bin/DRAWEXE -c testgrid
}