Skip to content
Snippets Groups Projects
Commit 18da1ab5 authored by Yuri Victorovich's avatar Yuri Victorovich
Browse files

cad/opencascade740: Resurrect cad/opencascade @ version 7.4.0

This is needed for science/chrono.
parent f86c38d7
No related branches found
No related tags found
No related merge requests found
Showing
with 441 additions and 0 deletions
......@@ -85,6 +85,7 @@
SUBDIR += ngspice_rework
SUBDIR += nvc
SUBDIR += opencascade
SUBDIR += opencascade740
SUBDIR += openctm
SUBDIR += openfpgaloader
SUBDIR += openroad
......
# Created by: Thierry Thomas <thierry@pompo.net>
PORTNAME= opencascade
PORTVERSION= 7.4.0 # resurrected because science/chrono only builds with opencascade-7.4.0, see https://github.com/projectchrono/chrono/issues/359#issuecomment-1023478083
CATEGORIES= cad science
PKGNAMESUFFIX= 740
MAINTAINER= thierry@FreeBSD.org
COMMENT= Open CASCADE Technology, 3D modeling & numerical simulation
LICENSE= OCTPL
LICENSE_NAME= LGPL21 with exception
LICENSE_FILE= ${WRKSRC}/OCCT_LGPL_EXCEPTION.txt
LICENSE_PERMS= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept
BUILD_DEPENDS= ${LOCALBASE}/lib/qt5/bin/qmake:devel/qt5-qmake \
${LOCALBASE}/lib/qt5/bin/moc:devel/qt5-buildtools
LIB_DEPENDS= libfontconfig.so:x11-fonts/fontconfig \
libfreetype.so:print/freetype2 \
libtbb.so:devel/tbb
RUN_DEPENDS= bash:shells/bash
# Check ${WRKSRC}/dox/overview/overview.md
# and ${WRKSRC}/dox/dev_guides/building
USES= alias:10 cmake compiler:c++14-lang dos2unix \
gl python qt:5 shebangfix tk tar:tgz xorg
USE_XORG= ice sm x11 xext xi xmu xt
USE_GL= gl glu
DOS2UNIX_FILES= adm/templates/*
SHEBANG_FILES= adm/templates/*.sh \
adm/templates/*.sh.in \
adm/templates/*.sh.main \
adm/genconf.tcl \
adm/start.tcl \
gendoc
ENVSH= adm/templates/env.sh
OPTIONS_DEFINE= DOCS DOXYGEN FFMPEG VIS
VIS_DESC= Build Visualizazion module (requires OpenGL, freetype, ftgl and gl2ps)
OPTIONS_DEFAULT=FFMPEG VIS
OPTIONS_SUB= yes
REINPLACE_ARGS= -i ""
CFLAGS+= -I${LOCALBASE}/include
CMAKE_ARGS+= -DINSTALL_DIR=${OCCROOT} \
-DINSTALL_DIR_INCLUDE=${PREFIX}/include/OpenCASCADE \
-DINSTALL_DIR_LIB=${PREFIX}/lib \
-DINSTALL_DIR_CMAKE=${PREFIX}/lib/cmake \
-DINSTALL_DIR_DATA=${OCCROOT}/data \
-DINSTALL_DIR_RESOURCE=${OCCROOT}/resources \
-DINSTALL_DIR_SAMPLES=${OCCROOT}/samples \
-DINSTALL_DIR_TESTS=${OCCROOT}/tests \
-DINSTALL_TEST_CASES:BOOL=ON \
-DUSE_TBB:BOOL=ON \
-DUSE_VTK:BOOL=OFF
USE_LDCONFIG= yes
LOCCROOT= OpenCAS
OCCROOT= ${PREFIX}/${LOCCROOT}
PLIST_SUB= OCCROOT="${LOCCROOT}" BITS=${BITS} CC=${CHOSEN_COMPILER_TYPE} \
VE=${PORTVERSION:R:R} VER=${PORTVERSION}
FFMPEG_CMAKE_ON= -DUSE_FFMPEG:BOOL=ON
FFMPEG_CMAKE_OFF= -DUSE_FFMPEG:BOOL=OFF
FFMPEG_LIB_DEPENDS= libavcodec.so:multimedia/ffmpeg
VIS_CMAKE_ON= -DUSE_FREEIMAGE:BOOL=ON -DUSE_GL2PS:BOOL=ON \
-DUSE_FREETYPE:BOOL=ON -D3RDPARTY_FREETYPE_DIR=${LOCALBASE}
VIS_CMAKE_OFF= -DUSE_FREEIMAGE:BOOL=OFF -DUSE_GL2PS:BOOL=OFF \
-DUSE_FREETYPE:BOOL=OFF
VIS_LIB_DEPENDS= libftgl.so:graphics/ftgl \
libgl2ps.so:print/gl2ps \
libfreeimageplus.so:graphics/freeimage
DOXYGEN_IMPLIES= DOCS
DOXYGEN_USE= TEX=latex:build
DOXYGEN_BUILD_DEPENDS= bash:shells/bash \
doxygen:devel/doxygen \
dot:graphics/graphviz \
pdftex:print/tex-basic-engines \
inkscape:graphics/inkscape
DOXYGEN_RUN_DEPENDS= ${LOCALBASE}/www/MathJax/MathJax.js:www/mathjax
.include <bsd.port.options.mk>
.if ${ARCH} == "i386"
BITS= 32
.else
BITS= 64
.endif
pre-everything::
@${ECHO_MSG}
@${ECHO_MSG} "Warning: to build OpenCascade, you should have at least"
@${ECHO_MSG} "2.6 Gb of free disk space in build area!"
@${ECHO_MSG}
pre-configure:
${REINPLACE_CMD} -e 's|tclsh|${TCLSH}|' ${WRKSRC}/gendoc
${REINPLACE_CMD} -e 's|/usr/bin/|${LOCALBASE}/bin/|' ${WRKSRC}/adm/genconfdeps.tcl
${GREP} -rl x86_64 ${WRKSRC} | ${XARGS} ${REINPLACE_CMD} \
-e 's|x86_64|amd64|'
.for es in ${ENVSH}
${REINPLACE_CMD} -e 's|lin|bsd|' ${WRKSRC}/${es}
.endfor
pre-patch:
@${REINPLACE_CMD} 's|<malloc.h>|<stdlib.h>|' \
${WRKSRC}/src/OSD/OSD_MemInfo.cxx \
${WRKSRC}/src/StepFile/step.tab.c \
${WRKSRC}/src/StepFile/step.yacc
post-build-DOXYGEN-on:
(cd ${WRKSRC} && ./gendoc -overview)
post-install:
${MV} ${STAGEDIR}${OCCROOT}/bin/DRAWEXE-${PORTVERSION} ${STAGEDIR}${PREFIX}/bin/DRAWEXE
(cd ${STAGEDIR}${PREFIX}/bin && \
${LN} -sf DRAWEXE ${STAGEDIR}${OCCROOT}/bin/DRAWEXE)
# autoplist
@cd ${STAGEDIR}${PREFIX} && \
${FIND} * -type f -or -type l >> ${TMPPLIST}
post-install-DOXYGEN-on:
${MKDIR} ${STAGEDIR}${DOCSDIR}
(cd ${WRKSRC}/doc/overview && ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR})
${RM} -r ${STAGEDIR}${DOCSDIR}/latex
.if defined(MAINTAINER_MODE)
regression-test: install
${RM} -rf /tmp/testOCC
${MKDIR} /tmp/testOCC
bash -c "\
cd ${OCCROOT} && . ${OCCROOT}/bin/env.sh && \
CSF_TestScriptsPath=${OCCROOT}/tests \
CSF_TestDataPath=${OCCROOT}/data \
DRAWEXE -f ${FILESDIR}/regtest "
.endif
.include <bsd.port.mk>
TIMESTAMP = 1569992557
SHA256 (opencascade-7.4.0.tgz) = 1eace85115ea178f268e9d803ced994b66b72455b5484074b6ad7f643261f0a0
SIZE (opencascade-7.4.0.tgz) = 216650633
--- CMakeLists.txt.orig 2017-08-30 13:27:56 UTC
+++ CMakeLists.txt
@@ -847,7 +847,7 @@ if (${DRAWEXE_INDEX} GREATER -1)
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_WRITE GROUP_EXECUTE WORLD_READ WORLD_WRITE WORLD_EXECUTE)
else()
install (FILES "${CMAKE_SOURCE_DIR}/adm/templates/draw.${SCRIPT_EXT}" DESTINATION "${INSTALL_DIR_SCRIPT}"
- PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_WRITE GROUP_EXECUTE WORLD_READ WORLD_WRITE WORLD_EXECUTE)
+ PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
endif()
# copy draw script to CMake binary folder
@@ -1056,7 +1056,13 @@ foreach (OCCT_CONFIGURATION ${CMAKE_CONF
endforeach()
# install OpenCASCADE config file with compile definitions and C/C++ flags ONLY for current configuration
install (CODE "string (TOLOWER \"\${CMAKE_INSTALL_CONFIG_NAME}\" CMAKE_INSTALL_CONFIG_NAME_LOWER)")
-install (CODE "configure_file(\"${CMAKE_BINARY_DIR}/OpenCASCADECompileDefinitionsAndFlags-\${CMAKE_INSTALL_CONFIG_NAME_LOWER}.cmake\" \"${INSTALL_DIR}/${INSTALL_DIR_CMAKE}/OpenCASCADECompileDefinitionsAndFlags-\${CMAKE_INSTALL_CONFIG_NAME_LOWER}.cmake\" COPYONLY)")
+install(CODE "
+ configure_file(
+ \"${CMAKE_BINARY_DIR}/OpenCASCADECompileDefinitionsAndFlags-\${CMAKE_INSTALL_CONFIG_NAME_LOWER}.cmake\"
+ \"\$ENV{DESTDIR}/${INSTALL_DIR_CMAKE}/OpenCASCADECompileDefinitionsAndFlags-\${CMAKE_INSTALL_CONFIG_NAME_LOWER}.cmake\"
+ COPYONLY)
+")
+
foreach (OCCT_MODULE ${OCCT_MODULES})
if (BUILD_MODULE_${OCCT_MODULE})
--- adm/cmake/occt_csf.cmake.orig 2018-05-25 19:13:23 UTC
+++ adm/cmake/occt_csf.cmake
@@ -116,6 +116,5 @@ if (WIN32)
set (CSF_OpenGlLibs "GL")
endif()
set (CSF_XwLibs "X11 Xext Xmu Xi")
- set (CSF_dl "dl")
endif()
endif()
--- adm/cmake/occt_macros.cmake.orig 2018-05-25 19:13:23 UTC
+++ adm/cmake/occt_macros.cmake
@@ -53,7 +53,7 @@ macro (OCCT_MAKE_OS_WITH_BITNESS)
elseif(APPLE)
set (OS_WITH_BIT "mac${COMPILER_BITNESS}")
else()
- set (OS_WITH_BIT "lin${COMPILER_BITNESS}")
+ set (OS_WITH_BIT "bsd${COMPILER_BITNESS}")
endif()
endmacro()
@@ -337,7 +337,7 @@ macro (COLLECT_AND_INSTALL_OCCT_HEADER_F
configure_file ("${TEMPLATE_HEADER_PATH}" "${ROOT_TARGET_OCCT_DIR}/${OCCT_INSTALL_DIR_PREFIX}/${HEADER_FILE_NAME}" @ONLY)
endforeach()
- install (FILES ${OCCT_HEADER_FILES_COMPLETE} DESTINATION "${INSTALL_DIR}/${OCCT_INSTALL_DIR_PREFIX}")
+ install (FILES ${OCCT_HEADER_FILES_COMPLETE} DESTINATION "${INSTALL_DIR_INCLUDE}")
string(TIMESTAMP CURRENT_TIME "%H:%M:%S")
message (STATUS "Info: \(${CURRENT_TIME}\) Checking headers in inc folder...")
--- adm/templates/OpenCASCADEConfig.cmake.in.orig 2017-12-27 14:54:08 UTC
+++ adm/templates/OpenCASCADEConfig.cmake.in
@@ -31,11 +31,11 @@ if (OpenCASCADE_INSTALL_PREFIX MATCHES "
endif()
# Set OpenCASCADE paths to headers, binaries, libraries, resources, tests, samples, data
-set (OpenCASCADE_BINARY_DIR "${OpenCASCADE_INSTALL_PREFIX}/@INSTALL_DIR_BIN@")
-set (OpenCASCADE_LIBRARY_DIR "${OpenCASCADE_INSTALL_PREFIX}/@INSTALL_DIR_LIB@")
-set (OpenCASCADE_SCRIPT_DIR "${OpenCASCADE_INSTALL_PREFIX}/@INSTALL_DIR_SCRIPT@")
-set (OpenCASCADE_INCLUDE_DIR "${OpenCASCADE_INSTALL_PREFIX}/@INSTALL_DIR_INCLUDE@")
-set (OpenCASCADE_RESOURCE_DIR "${OpenCASCADE_INSTALL_PREFIX}/@INSTALL_DIR_RESOURCE@")
+set (OpenCASCADE_BINARY_DIR "@INSTALL_DIR_BIN@")
+set (OpenCASCADE_LIBRARY_DIR "@INSTALL_DIR_LIB@")
+set (OpenCASCADE_SCRIPT_DIR "@INSTALL_DIR_SCRIPT@")
+set (OpenCASCADE_INCLUDE_DIR "@INSTALL_DIR_INCLUDE@")
+set (OpenCASCADE_RESOURCE_DIR "@INSTALL_DIR_RESOURCE@")
# The C and C++ flags added by OpenCASCADE to the cmake-configured flags.
set (OpenCASCADE_C_FLAGS "@CMAKE_C_FLAGS@")
--- adm/templates/custom.install.sh.in.orig 2017-12-27 14:54:08 UTC
+++ adm/templates/custom.install.sh.in
@@ -21,14 +21,14 @@ if [ "$1" == "@BIN_LETTER@" ]; then
export TCL_VERSION_WITH_DOT="@3RDPARTY_TCL_LIBRARY_VERSION_WITH_DOT@"
export TK_VERSION_WITH_DOT="@3RDPARTY_TK_LIBRARY_VERSION_WITH_DOT@"
- export CSF_OCCTBinPath="${CASROOT}/@INSTALL_DIR_BIN@"
- export CSF_OCCTLibPath="${CASROOT}/@INSTALL_DIR_LIB@"
- export CSF_OCCTIncludePath="${CASROOT}/@INSTALL_DIR_INCLUDE@"
- export CSF_OCCTResourcePath="${CASROOT}/@INSTALL_DIR_RESOURCE@"
- export CSF_OCCTDataPath="${CASROOT}/@INSTALL_DIR_DATA@"
- export CSF_OCCTSamplesPath="${CASROOT}/@INSTALL_DIR_SAMPLES@"
- export CSF_OCCTTestsPath="${CASROOT}/@INSTALL_DIR_TESTS@"
- export CSF_OCCTDocPath="${CASROOT}/@INSTALL_DIR_DOC@"
+ export CSF_OCCTBinPath="@INSTALL_DIR_BIN@"
+ export CSF_OCCTLibPath="@INSTALL_DIR_LIB@"
+ export CSF_OCCTIncludePath="@INSTALL_DIR_INCLUDE@"
+ export CSF_OCCTResourcePath="@INSTALL_DIR_RESOURCE@"
+ export CSF_OCCTDataPath="@INSTALL_DIR_DATA@"
+ export CSF_OCCTSamplesPath="@INSTALL_DIR_SAMPLES@"
+ export CSF_OCCTTestsPath="@INSTALL_DIR_TESTS@"
+ export CSF_OCCTDocPath="@INSTALL_DIR_DOC@"
fi
fi
--- inc/Standard_Time.hxx.orig 2017-08-30 13:28:31 UTC
+++ inc/Standard_Time.hxx
@@ -26,11 +26,11 @@
// ------------------------------------------------------------------
// IsEqual : Returns Standard_True if two time values are equal
// ------------------------------------------------------------------
-inline Standard_Boolean IsEqual (const Standard_Time theOne,
- const Standard_Time theTwo)
-{
- return theOne == theTwo;
-}
+//inline Standard_Boolean IsEqual (const Standard_Time theOne,
+// const Standard_Time theTwo)
+//{
+// return theOne == theTwo;
+//}
#endif
--- src/DrawResources/CheckCommands.tcl.orig 2018-05-25 19:13:38 UTC
+++ src/DrawResources/CheckCommands.tcl
@@ -1036,6 +1036,7 @@ help checkplatform {
-windows : return 1 if current platform is 'Windows', overwise return 0
-linux : return 1 if current platform is 'Linux', overwise return 0
-osx : return 1 if current platform is 'MacOS X', overwise return 0
+ -freebsd : return 1 if current platform is 'FreeBSD', overwise return 0
Only one option can be used at once.
If no option is given, procedure will return the name of current platform.
@@ -1044,9 +1045,11 @@ proc checkplatform {args} {
set check_for_windows false
set check_for_linux false
set check_for_macosx false
+ set check_for_freebsd false
set options {{"-windows" check_for_windows 0}
{"-linux" check_for_linux 0}
+ {"-freebsd" check_for_freebsd 0}
{"-osx" check_for_macosx 0}}
_check_args ${args} ${options} "checkplatform"
@@ -1055,17 +1058,19 @@ proc checkplatform {args} {
set current_platform Windows
} elseif { $::tcl_platform(os) == "Linux" } {
set current_platform Linux
+ } elseif { $::tcl_platform(os) == "FreeBSD" } {
+ set current_platform FreeBSD
} elseif { $::tcl_platform(os) == "Darwin" } {
set current_platform MacOS
}
# no args are given
- if { !${check_for_windows} && !${check_for_linux} && !${check_for_macosx}} {
+ if { !${check_for_windows} && !${check_for_linux} && !${check_for_macosx} && !${check_for_freebsd}} {
return ${current_platform}
}
# check usage of proc checkplatform
- if { [expr [string is true ${check_for_windows}] + [string is true ${check_for_linux}] + [string is true ${check_for_macosx}] ] > 1} {
+ if { [expr [string is true ${check_for_windows}] + [string is true ${check_for_linux}] + [string is true ${check_for_macosx}] + [string is true ${check_for_freebsd}] ] > 1} {
error "Error: wrong usage of command checkplatform, only single option can be used at once"
}
@@ -1074,11 +1079,16 @@ proc checkplatform {args} {
return 1
}
- # checking for Mac OS X platforms
+ # checking for Linux platforms
if { ${check_for_linux} && ${current_platform} == "Linux" } {
return 1
}
+ # checking for FreeBSD platforms
+ if { ${check_for_freebsd} && ${current_platform} == "FreeBSD" } {
+ return 1
+ }
+
# checking for Mac OS X platforms
if { ${check_for_macosx} && ${current_platform} == "MacOS" } {
return 1
--- src/IVtkDraw/IVtkDraw.cxx.orig 2020-11-03 14:50:01 UTC
+++ src/IVtkDraw/IVtkDraw.cxx
@@ -36,6 +36,12 @@
#include <V3d_TypeOfOrientation.hxx>
#include <Aspect_DisplayConnection.hxx>
+// Preventing naming collisions between
+// GLX and VTK versions 9.0 and above
+#ifdef AllValues
+#undef AllValues
+#endif
+
#include <IVtk_Types.hxx>
#include <IVtkVTK_ShapeData.hxx>
#include <IVtkOCC_Shape.hxx>
--- src/STEPConstruct/STEPConstruct_AP203Context.cxx.orig 2017-08-30 13:28:30 UTC
+++ src/STEPConstruct/STEPConstruct_AP203Context.cxx
@@ -123,7 +123,15 @@ Handle(StepBasic_DateAndTime) STEPConstr
long shift = 0;
_get_timezone (&shift);
#else
- Standard_Integer shift = Standard_Integer(timezone);
+ #if defined(__FreeBSD__)
+ struct tm *lt;
+ time_t t = 0;
+ time(&t);
+ lt = localtime(&t);
+ Standard_Integer shift = Standard_Integer(lt->tm_gmtoff);
+ #else
+ Standard_Integer shift = Standard_Integer(timezone);
+ #endif
#endif
Standard_Integer shifth = abs ( shift ) / 3600;
Standard_Integer shiftm = ( abs ( shift ) - shifth * 3600 ) / 60;
--- src/Standard/Standard_CLocaleSentry.hxx.orig 2018-05-25 19:14:11 UTC
+++ src/Standard/Standard_CLocaleSentry.hxx
@@ -31,7 +31,7 @@
//! Presence of this extension cannot be checked in straightforward way (like (_POSIX_C_SOURCE >= 200809L))
//! due to missing such declarations in standard.
//! On macOS new functions are declared within "xlocale.h" header (the same is for glibc, but this header has been removed since glibc 2.26).
- #if defined(__APPLE__)
+ #if defined(__APPLE__) || (defined(__FreeBSD__) && (__FreeBSD_version > 910000))
#define OCCT_CLOCALE_POSIX2008
#endif
--- src/Standard/Standard_CString.cxx.orig 2017-08-30 13:28:31 UTC
+++ src/Standard/Standard_CString.cxx
@@ -81,7 +81,7 @@ Standard_Integer HashCodes (const Standa
// strtod, strtol, strtoll functions. For other system with locale-depended
// implementations problems may appear if "C" locale is not set explicitly.
#if !defined(__ANDROID__) && !defined(__QNX__) && !defined(__MINGW32__)
- #error System does not support xlocale. Import/export could be broken if C locale did not specified by application.
+ #warning System does not support xlocale. Import/export could be broken if C locale did not specified by application.
#endif
#define strtod_l(thePtr, theNextPtr, theLocale) strtod(thePtr, theNextPtr)
#endif
--- src/Standard/Standard_MMgrTBBalloc.cxx.orig 2017-08-30 13:28:31 UTC
+++ src/Standard/Standard_MMgrTBBalloc.cxx
@@ -18,6 +18,9 @@
// paralleling with Intel TBB
#ifdef HAVE_TBB
+#ifdef VERSION
+#undef VERSION
+#endif
#include <tbb/scalable_allocator.h>
using namespace tbb;
#else
--- src/Standard/Standard_Time.hxx.orig 2017-08-30 13:28:31 UTC
+++ src/Standard/Standard_Time.hxx
@@ -26,11 +26,11 @@
// ------------------------------------------------------------------
// IsEqual : Returns Standard_True if two time values are equal
// ------------------------------------------------------------------
-inline Standard_Boolean IsEqual (const Standard_Time theOne,
- const Standard_Time theTwo)
-{
- return theOne == theTwo;
-}
+//inline Standard_Boolean IsEqual (const Standard_Time theOne,
+// const Standard_Time theTwo)
+//{
+// return theOne == theTwo;
+//}
#endif
--- src/StepFile/recfile.pc.orig 2017-08-30 13:28:34 UTC
+++ src/StepFile/recfile.pc
@@ -16,7 +16,7 @@
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
-#if (!defined(_WIN32) && !defined(__APPLE__))
+#if (!defined(_WIN32) && !defined(__APPLE__) && !defined(__FreeBSD__))
#include "malloc.h"
#endif
#include "recfile.ph"
pload ALL
testgrid -outdir /tmp/testOCC
exit
Open CASCADE Technology is a software development platform freely available in
open source. It includes components for 3D surface and solid modeling,
visualization, data exchange and rapid application development.
Open CASCADE Technology can be best applied in development of numerical
simulation software including CAD/CAM/CAE, AEC and GIS, as well as PDM
applications.
BUGS: the interesting parts of this port are the libraries, but some components
like Wok are not [yet] fully functional.
WWW: http://www.opencascade.org/
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment