diff --git a/science/misc/opencascade/actions.py b/science/misc/opencascade/actions.py index 6b412b1b0b..b7aef3b121 100644 --- a/science/misc/opencascade/actions.py +++ b/science/misc/opencascade/actions.py @@ -11,12 +11,16 @@ from pisi.actionsapi import cmaketools def setup(): options_cfg = ''.join([ '-DUSE_TBB=ON ', - '-DUSE_VTK=OFF ', + '-DUSE_VTK=True ', + '-DINSTALL_VTK=False', '-DUSE_GL2PS=ON ', '-DUSE_FFMPEG=ON ', '-DUSE_FREEIMAGE=OFF ', - 'BUILD_TYPE=Release ', + '-DINSTALL_DIR_LIB=/usr/lib ', '-DCMAKE_INSTALL_PREFIX=/usr', + '-D3RDPARTY_VTK_LIBRARY_DIR=/usr/lib', + '-D3RDPARTY_VTK_INCLUDE_DIR=/usr/include', + '-DINSTALL_DIR_CMAKE=/usr/lib/cmake/opencascade', ]) shelltools.makedirs("build") shelltools.cd("build") diff --git a/science/misc/opencascade/cmake-fix-variable.patch b/science/misc/opencascade/cmake-fix-variable.patch new file mode 100644 index 0000000000..a59741f3d2 --- /dev/null +++ b/science/misc/opencascade/cmake-fix-variable.patch @@ -0,0 +1,12 @@ +diff -Naur occt-V7_3_0/adm/templates/OpenCASCADEConfig.cmake.in occt-V7_3_0_new/adm/templates/OpenCASCADEConfig.cmake.in +--- occt-V7_3_0/adm/templates/OpenCASCADEConfig.cmake.in 2018-05-29 12:14:02.000000000 +0200 ++++ occt-V7_3_0.new/adm/templates/OpenCASCADEConfig.cmake.in 2018-05-29 12:14:02.000000000 +0200 +@@ -26,7 +26,7 @@ + if (OpenCASCADE_INSTALL_PREFIX MATCHES "/cmake$") + get_filename_component (OpenCASCADE_INSTALL_PREFIX "${OpenCASCADE_INSTALL_PREFIX}" PATH) + endif() +-if (OpenCASCADE_INSTALL_PREFIX MATCHES "/lib$") ++if (OpenCASCADE_INSTALL_PREFIX MATCHES "/lib(64)?$") + get_filename_component (OpenCASCADE_INSTALL_PREFIX "${OpenCASCADE_INSTALL_PREFIX}" PATH) + endif() + diff --git a/science/misc/opencascade/fix-install-dir-references.patch b/science/misc/opencascade/fix-install-dir-references.patch new file mode 100644 index 0000000000..0d3c8c8330 --- /dev/null +++ b/science/misc/opencascade/fix-install-dir-references.patch @@ -0,0 +1,24 @@ +diff -aur occt-V7_1_0/CMakeLists.txt occt-V7_1_0.new/CMakeLists.txt +--- occt-V7_1_0/CMakeLists.txt 2016-11-25 11:50:18.000000000 +0100 ++++ occt-V7_1_0.new/CMakeLists.txt 2017-03-18 08:44:10.406668714 +0100 +@@ -906,7 +906,7 @@ + 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}/${INSTALL_DIR_CMAKE}/OpenCASCADECompileDefinitionsAndFlags-\${CMAKE_INSTALL_CONFIG_NAME_LOWER}.cmake\" COPYONLY)") + + foreach (OCCT_MODULE ${OCCT_MODULES}) + if (BUILD_MODULE_${OCCT_MODULE}) +diff -aur occt-V7_1_0/adm/cmake/occt_macros.cmake occt-V7_1_0.new/adm/cmake/occt_macros.cmake +--- occt-V7_1_0/adm/cmake/occt_macros.cmake 2016-11-25 11:50:18.000000000 +0100 ++++ occt-V7_1_0.new/adm/cmake/occt_macros.cmake 2017-03-18 08:44:10.406668714 +0100 +@@ -558,7 +558,7 @@ + "cmake_policy(PUSH) + cmake_policy(SET CMP0007 NEW) + string (TOLOWER \"\${CMAKE_INSTALL_CONFIG_NAME}\" CMAKE_INSTALL_CONFIG_NAME_LOWERCASE) +- file (GLOB ALL_OCCT_TARGET_FILES \"${INSTALL_DIR}/${INSTALL_DIR_CMAKE}/OpenCASCADE*Targets-\${CMAKE_INSTALL_CONFIG_NAME_LOWERCASE}.cmake\") ++ file (GLOB ALL_OCCT_TARGET_FILES \"\$ENV{DESTDIR}${INSTALL_DIR}/${INSTALL_DIR_CMAKE}/OpenCASCADE*Targets-\${CMAKE_INSTALL_CONFIG_NAME_LOWERCASE}.cmake\") + foreach(TARGET_FILENAME \${ALL_OCCT_TARGET_FILES}) + file (STRINGS \"\${TARGET_FILENAME}\" TARGET_FILE_CONTENT) + file (REMOVE \"\${TARGET_FILENAME}\") diff --git a/science/misc/opencascade/oce-7.5.0-clang.patch b/science/misc/opencascade/oce-7.5.0-clang.patch new file mode 100644 index 0000000000..4a2a30fffd --- /dev/null +++ b/science/misc/opencascade/oce-7.5.0-clang.patch @@ -0,0 +1,12 @@ +diff -up oce-upstream-V7_5_0/src/Standard/Standard_Type.hxx.omv~ oce-upstream-V7_5_0/src/Standard/Standard_Type.hxx +--- oce-upstream-V7_5_0/src/Standard/Standard_Type.hxx.omv~ 2022-01-09 01:03:31.512273977 +0100 ++++ oce-upstream-V7_5_0/src/Standard/Standard_Type.hxx 2022-01-09 01:03:38.866283692 +0100 +@@ -26,7 +26,7 @@ + // DEFINE_STANDARD_RTTI* macro is actually a base class. + #if ! defined(OCCT_CHECK_BASE_CLASS) + +-#if (defined(__GNUC__) && ((__GNUC__ == 4 && __GNUC_MINOR__ >= 7) || (__GNUC__ > 4))) ++#if (defined(__GNUC__) && ((__GNUC__ == 4 && __GNUC_MINOR__ >= 7) || (__GNUC__ > 4))) && !defined(__clang__) + + // For GCC 4.7+, more strict check is possible -- ensuring that base class + // is direct base -- using non-standard C++ reflection functionality. diff --git a/science/misc/opencascade/opencascade-7.5.0-fix_tbb.patch b/science/misc/opencascade/opencascade-7.5.0-fix_tbb.patch new file mode 100644 index 0000000000..c738540551 --- /dev/null +++ b/science/misc/opencascade/opencascade-7.5.0-fix_tbb.patch @@ -0,0 +1,53 @@ +From: kgv +Date: Mon, 29 Nov 2021 18:26:45 +0000 (+0300) +Subject: 0032697: Configuration - fix compilation errors with oneTBB 2021 +X-Git-Url: http://git.dev.opencascade.org/gitweb/?p=occt.git;a=commitdiff_plain;h=740833a6a88e481f474783c426b6f6311ed586d3 + +0032697: Configuration - fix compilation errors with oneTBB 2021 + +Removed usage of no more existing tbb::task_scheduler_init and tbb::captured_exception. +--- + +diff --git a/src/OSD/OSD_Parallel_TBB.cxx b/src/OSD/OSD_Parallel_TBB.cxx +index 2344a6ca2d..0b9022b576 100644 +--- a/src/OSD/OSD_Parallel_TBB.cxx ++++ b/src/OSD/OSD_Parallel_TBB.cxx +@@ -25,7 +25,9 @@ Standard_DISABLE_DEPRECATION_WARNINGS + #include + #include + #include +-#include ++#if TBB_VERSION_MAJOR < 2021 ++ #include ++#endif + Standard_ENABLE_DEPRECATION_WARNINGS + + //======================================================================= +@@ -38,12 +40,16 @@ void OSD_Parallel::forEachExternal (UniversalIterator& theBegin, + const FunctorInterface& theFunctor, + Standard_Integer theNbItems) + { ++#if TBB_VERSION_MAJOR >= 2021 ++ // task_scheduler_init is removed, ++ // exceptions are captured without proxy tbb::captured_exception object ++ (void )theNbItems; ++ tbb::parallel_for_each (theBegin, theEnd, theFunctor); ++#else + try + { + const Handle(OSD_ThreadPool)& aThreadPool = OSD_ThreadPool::DefaultPool(); +- const Standard_Integer aNbThreads = theNbItems > 0 ? +- aThreadPool->NbDefaultThreadsToLaunch() : -1; +- ++ const Standard_Integer aNbThreads = theNbItems > 0 ? aThreadPool->NbDefaultThreadsToLaunch() : -1; + tbb::task_scheduler_init aScheduler (aNbThreads); + tbb::parallel_for_each (theBegin, theEnd, theFunctor); + } +@@ -51,6 +57,7 @@ void OSD_Parallel::forEachExternal (UniversalIterator& theBegin, + { + throw Standard_ProgramError (anException.what()); + } ++#endif + } + + #endif /* HAVE_TBB */ diff --git a/science/misc/opencascade/opencascade-7.6.0-set-env-correctly.patch b/science/misc/opencascade/opencascade-7.6.0-set-env-correctly.patch new file mode 100644 index 0000000000..4f89df1c57 --- /dev/null +++ b/science/misc/opencascade/opencascade-7.6.0-set-env-correctly.patch @@ -0,0 +1,12 @@ +diff -up opencascade-7.6.0/adm/templates/custom.build.sh.in.omv~ opencascade-7.6.0/adm/templates/custom.build.sh.in +--- opencascade-7.6.0/adm/templates/custom.build.sh.in.omv~ 2022-01-12 04:05:12.227180642 +0100 ++++ opencascade-7.6.0/adm/templates/custom.build.sh.in 2022-01-12 04:06:30.088406684 +0100 +@@ -1,6 +1,6 @@ + #!/bin/bash + +-if [ "$1" == "@BIN_LETTER@" ]; then ++if true; then + if [ "$2" == "@COMPILER_BITNESS@" ]; then + # set environment variables used by OCCT + export CSF_FPE=@BUILD_ENABLE_FPE_SIGNAL_HANDLER@ +diff -up opencascade-7.6.0/adm/templates/env.sh.omv~ opencascade-7.6.0/adm/templates/env.sh diff --git a/science/misc/opencascade/opencascade-cmake.patch b/science/misc/opencascade/opencascade-cmake.patch new file mode 100644 index 0000000000..54524066e3 --- /dev/null +++ b/science/misc/opencascade/opencascade-cmake.patch @@ -0,0 +1,26 @@ +--- a/adm/templates/OpenCASCADEConfig.cmake.in ++++ b/adm/templates/OpenCASCADEConfig.cmake.in +@@ -27,7 +27,7 @@ get_filename_component (OpenCASCADE_INST + if (OpenCASCADE_INSTALL_PREFIX MATCHES "/cmake$") + get_filename_component (OpenCASCADE_INSTALL_PREFIX "${OpenCASCADE_INSTALL_PREFIX}" PATH) + endif() +-if (OpenCASCADE_INSTALL_PREFIX MATCHES "/lib$") ++if (OpenCASCADE_INSTALL_PREFIX MATCHES "/lib$" OR OpenCASCADE_INSTALL_PREFIX MATCHES "/lib64$") + get_filename_component (OpenCASCADE_INSTALL_PREFIX "${OpenCASCADE_INSTALL_PREFIX}" PATH) + endif() + if (OpenCASCADE_INSTALL_PREFIX MATCHES "/libs/${CMAKE_ANDROID_ARCH_ABI}$") +--- a/adm/cmake/occt_toolkit.cmake ++++ b/adm/cmake/occt_toolkit.cmake +@@ -244,9 +244,9 @@ else() + + install (TARGETS ${PROJECT_NAME} + EXPORT OpenCASCADE${CURRENT_MODULE}Targets +- RUNTIME DESTINATION "${INSTALL_DIR_BIN}\${OCCT_INSTALL_BIN_LETTER}" +- ARCHIVE DESTINATION "${INSTALL_DIR_LIB}\${OCCT_INSTALL_BIN_LETTER}" +- LIBRARY DESTINATION "${INSTALL_DIR_LIB}\${OCCT_INSTALL_BIN_LETTER}") ++ RUNTIME DESTINATION "${INSTALL_DIR_BIN}" ++ ARCHIVE DESTINATION "${INSTALL_DIR_LIB}" ++ LIBRARY DESTINATION "${INSTALL_DIR_LIB}") + + if (NOT WIN32) + if (BUILD_SHARED_LIBS AND NOT "${BUILD_SHARED_LIBRARY_NAME_POSTFIX}" STREQUAL "") diff --git a/science/misc/opencascade/pspec.xml b/science/misc/opencascade/pspec.xml index 3b8f54d152..98cc8f2c85 100644 --- a/science/misc/opencascade/pspec.xml +++ b/science/misc/opencascade/pspec.xml @@ -12,25 +12,33 @@ LGPLv2.1 app:console library + opencascade Open CASCADE Technology, 3D modeling and numerical simulation. Open CASCADE Technology (OCCT) is an object-oriented C++ class library designed for rapid production of sophisticated domain-specific CAD/CAM/CAE applications.. - https://github.com/tpaviot/oce/releases/download/official-upstream-packages/opencascade-7.4.0p1.snapshot.tar.gz + https://github.com/Open-Cascade-SAS/OCCT/archive/refs/tags/V7_6_3.tar.gz cmake + tcl-devel tcltk-devel ffmpeg-devel libXmu-devel + libX11-devel + libglvnd-devel freetype-devel qt5-base-devel intel-tbb-devel fontconfig-devel + desktop-file-utils + opencascade-7.6.0-set-env-correctly.patch + opencascade-cmake.patch + oce-7.5.0-clang.patch + opencascade-7.5.0-fix_tbb.patch fix-install-dir-references.patch - cmake-fix-variable.patch @@ -70,6 +78,13 @@ + + 2022-07-30 + 7.6.3 + Version bump. + Mustafa Cinasal + muscnsl@gmail.com + 2020-09-28 7.4.0 @@ -78,4 +93,4 @@ bluedevil@sctzine.com - \ No newline at end of file +