commit: c5759df9e7cef3161bd7060765af05ca12011cdf Author: Paul Zander <negril.nx+gentoo <AT> gmail <DOT> com> AuthorDate: Mon Nov 10 15:34:41 2025 +0000 Commit: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org> CommitDate: Fri Jan 2 17:15:16 2026 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c5759df9
sci-libs/opencascade: Provide better USE=jemalloc description, update 9999 Signed-off-by: Paul Zander <negril.nx+gentoo <AT> gmail.com> Part-of: https://github.com/gentoo/gentoo/pull/44585 Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org> sci-libs/opencascade/Manifest | 1 + ...e-7.9.0-0002-avoid-pre-stripping-binaries.patch | 32 ++++ ...-find-the-jemalloc-libs-we-are-going-to-u.patch | 34 ++++ ...01-fix-installation-of-cmake-config-files.patch | 23 +++ ...cascade-7.9.2-0003-Fix-building-with-musl.patch | 56 ++++++ sci-libs/opencascade/metadata.xml | 1 + sci-libs/opencascade/opencascade-9999.ebuild | 202 +++++++++++++++------ 7 files changed, 293 insertions(+), 56 deletions(-) diff --git a/sci-libs/opencascade/Manifest b/sci-libs/opencascade/Manifest index db7dd2e4cdad..e469b7d4c8cf 100644 --- a/sci-libs/opencascade/Manifest +++ b/sci-libs/opencascade/Manifest @@ -1,2 +1,3 @@ DIST opencascade-7.8.1.tar.gz 48432051 BLAKE2B de7a40b8e6612642a1567d2cf3e6b471c9edeadbc7f686bc8648502165c8d824b3574259874ecb1775c856703fd8df7481c9bc07a66a3a321a83e699e6802052 SHA512 807c1f8732926cfdabcfbdf8d6a0e76b8dba1a1e614afe084a467ffb4cfd80623f5e3afa7e9905b1ac96667c93e01b5f98ceaa8948a576a1093d98df98cc8f81 DIST opencascade-dataset-7.8.0.tar.xz 97049756 BLAKE2B aae5f076d9fc8a0d8a05028b0d9ffb527978e7acfdf5ecbc7e71c5ee3d6060cd7db9e56dba5b94a445bf5cf208126711cda70306607bdc5cd5e8b68df8fc150c SHA512 9b4c91d7b4743c47f2cf8d9a3b6ded73409a13133013424150ee9bdb61fd771c0b8799c7f31b459a7d2ba140399b9c0c972e2d0476188006361b4fb04042d990 +DIST opencascade-dataset-7.9.0.tar.xz 98739184 BLAKE2B fe80e350d5c34f82202ef8dcda56f3e7ec1d45f8d3b782f9f92c8f78d0c25504de65c699c4e251e3f30b3d9e59f0adfe35554d52b535e36380aaf3c468f4e90b SHA512 0a30cab7a3f8e3a87ff3ae1cacc64449d1099f04a13d10c95471a94adb8126514d5f5f2352e093a847562a99ab3250c7b8e60c874ff4bc8aea990fa1de7fda8c diff --git a/sci-libs/opencascade/files/opencascade-7.9.0-0002-avoid-pre-stripping-binaries.patch b/sci-libs/opencascade/files/opencascade-7.9.0-0002-avoid-pre-stripping-binaries.patch new file mode 100644 index 000000000000..87693eea0842 --- /dev/null +++ b/sci-libs/opencascade/files/opencascade-7.9.0-0002-avoid-pre-stripping-binaries.patch @@ -0,0 +1,32 @@ +From 6365471a493797ec8696407b04e3d2ac31c082b7 Mon Sep 17 00:00:00 2001 +From: Bernd Waibel <[email protected]> +Date: Sat, 8 Oct 2022 13:16:47 +0200 +Subject: [PATCH] avoid pre-stripping binaries + +Signed-off-by: Bernd Waibel <[email protected]> + +diff --git a/adm/cmake/occt_defs_flags.cmake b/adm/cmake/occt_defs_flags.cmake +index 5bd3313d3..e8acdba16 100644 +--- a/adm/cmake/occt_defs_flags.cmake ++++ b/adm/cmake/occt_defs_flags.cmake +@@ -194,7 +194,7 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "[Cc][Ll][Aa][Nn][Gg]") + # CLang can be used with both libstdc++ and libc++, however on OS X libstdc++ is outdated. + set (CMAKE_CXX_FLAGS "-stdlib=libc++ ${CMAKE_CXX_FLAGS}") + endif() +- if (NOT WIN32) ++ if (NOT WIN32 AND FALSE) + # Optimize size of binaries + set (CMAKE_SHARED_LINKER_FLAGS_RELEASE "-Wl,-s ${CMAKE_SHARED_LINKER_FLAGS_RELEASE}") + endif() +@@ -208,7 +208,7 @@ if(MINGW) + set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wattributes") + set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wattributes") + endif() +-if (CMAKE_COMPILER_IS_GNUCXX AND NOT APPLE) ++if (CMAKE_COMPILER_IS_GNUCXX AND NOT APPLE AND FALSE) + # Optimize size of binaries + set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -s") + set (CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -s") +-- +2.51.2 + diff --git a/sci-libs/opencascade/files/opencascade-7.9.0-0004-Only-try-to-find-the-jemalloc-libs-we-are-going-to-u.patch b/sci-libs/opencascade/files/opencascade-7.9.0-0004-Only-try-to-find-the-jemalloc-libs-we-are-going-to-u.patch new file mode 100644 index 000000000000..43b0bdae3013 --- /dev/null +++ b/sci-libs/opencascade/files/opencascade-7.9.0-0004-Only-try-to-find-the-jemalloc-libs-we-are-going-to-u.patch @@ -0,0 +1,34 @@ +From 9bf7e7a1729838a2052f9e550b204d1538802143 Mon Sep 17 00:00:00 2001 +From: Paul Zander <[email protected]> +Date: Tue, 20 May 2025 14:10:41 +0200 +Subject: [PATCH] Only try to find the jemalloc libs we are going to use + +diff --git a/adm/cmake/jemalloc.cmake b/adm/cmake/jemalloc.cmake +index 8161700ad..8cd19e0e2 100644 +--- a/adm/cmake/jemalloc.cmake ++++ b/adm/cmake/jemalloc.cmake +@@ -72,6 +72,7 @@ function (JEMALLOC_LIB_SEARCH MMGR_LIB PREFIX) + endfunction() + + macro (SEARCH_JEMALLOC) ++ if(BUILD_LIBRARY_TYPE EQUAL "Static") + # find static jemalloc lib + SET(CMAKE_FIND_LIBRARY_SUFFIXES ".dll.a" ".lib" ".a") + if (WIN32) +@@ -81,10 +82,13 @@ macro (SEARCH_JEMALLOC) + SET(CMAKE_FIND_LIBRARY_SUFFIXES "" "so") + JEMALLOC_LIB_SEARCH ("jemalloc.so.2" "SHARED") + endif() ++ endif() + ++ if(BUILD_LIBRARY_TYPE EQUAL "Shared") + # find shared jemalloc lib + SET(CMAKE_FIND_LIBRARY_SUFFIXES ".dll" ".so") + JEMALLOC_LIB_SEARCH ("jemalloc" "SHARED") ++ endif() + endmacro() + + # Reset CSF variable +-- +2.51.2 + diff --git a/sci-libs/opencascade/files/opencascade-7.9.2-0001-fix-installation-of-cmake-config-files.patch b/sci-libs/opencascade/files/opencascade-7.9.2-0001-fix-installation-of-cmake-config-files.patch new file mode 100644 index 000000000000..568b948eeaef --- /dev/null +++ b/sci-libs/opencascade/files/opencascade-7.9.2-0001-fix-installation-of-cmake-config-files.patch @@ -0,0 +1,23 @@ +From 17d5b4f37508c67be67f980dfa86e15c7cf8b423 Mon Sep 17 00:00:00 2001 +From: Bernd Waibel <[email protected]> +Date: Thu, 6 Oct 2022 18:53:41 +0200 +Subject: [PATCH] fix installation of cmake config files + +Signed-off-by: Bernd Waibel <[email protected]> + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index f8d62e06b..6cf4e00b0 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1340,7 +1340,7 @@ foreach (OCCT_CONFIGURATION ${CMAKE_CONFIGURATION_TYPES}) + 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 "file(INSTALL FILES \"${CMAKE_BINARY_DIR}/OpenCASCADECompileDefinitionsAndFlags-\${CMAKE_INSTALL_CONFIG_NAME_LOWER}.cmake\" DESTINATION \"${INSTALL_DIR}/${INSTALL_DIR_CMAKE}/\" TYPE FILE)") ++install (FILES "${CMAKE_BINARY_DIR}/OpenCASCADECompileDefinitionsAndFlags-\${CMAKE_INSTALL_CONFIG_NAME_LOWER}.cmake" DESTINATION "${INSTALL_DIR_CMAKE}") + + foreach (OCCT_MODULE ${OCCT_MODULES}) + if (BUILD_MODULE_${OCCT_MODULE}) +-- +2.51.2 + diff --git a/sci-libs/opencascade/files/opencascade-7.9.2-0003-Fix-building-with-musl.patch b/sci-libs/opencascade/files/opencascade-7.9.2-0003-Fix-building-with-musl.patch new file mode 100644 index 000000000000..4373d91ea1e5 --- /dev/null +++ b/sci-libs/opencascade/files/opencascade-7.9.2-0003-Fix-building-with-musl.patch @@ -0,0 +1,56 @@ +From 32c4af6d0f9b948acf66e4a06c65f2db53600fe2 Mon Sep 17 00:00:00 2001 +From: Violet Purcell <[email protected]> +Date: Tue, 11 Jul 2023 16:13:32 -0400 +Subject: [PATCH] Fix building with musl + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 6cf4e00b0..64752383b 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -774,6 +774,13 @@ file(COPY ${CMAKE_SOURCE_DIR}/.clang-format DESTINATION ${CMAKE_SOURCE_DIR}) + OCCT_MAKE_OS_WITH_BITNESS() + OCCT_MAKE_COMPILER_SHORT_NAME() + ++# define CSF variable ++OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/occt_csf") ++ ++# Check for execinfo.h ++include(CheckIncludeFile) ++CHECK_INCLUDE_FILE("execinfo.h" HAS_EXECINFO_H) ++ + # do not define INSTALL_DIR_BIN for win. + # Leave library structure for win: <prefix>/win64/vc10/bin(d) + if (NOT DEFINED INSTALL_DIR_BIN) +diff --git a/src/Standard/Standard_StackTrace.cxx b/src/Standard/Standard_StackTrace.cxx +index 811c09e9b..2f6243e6c 100644 +--- a/src/Standard/Standard_StackTrace.cxx ++++ b/src/Standard/Standard_StackTrace.cxx +@@ -29,7 +29,7 @@ + // #include <unwind.h> + #elif defined(__QNX__) + // #include <backtrace.h> // requires linking to libbacktrace +-#elif !defined(_WIN32) && !(defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE) ++#elif !defined(_WIN32) && !(defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE) && defined (HAS_EXECINFO_H) + #include <execinfo.h> + #elif defined(_WIN32) && !defined(OCCT_UWP) + +@@ -320,7 +320,7 @@ Standard_Boolean Standard::StackTrace(char* theBuffer, + Message::SendTrace("Standard::StackTrace() is not implemented for this CPU architecture"); + return false; + #endif +-#else ++#elif defined (HAS_EXECINFO_H) + const int aTopSkip = theNbTopSkip + 1; // skip this function call and specified extra number + int aNbTraces = theNbTraces + aTopSkip; + void** aStackArr = (void**)alloca(sizeof(void*) * aNbTraces); +@@ -367,5 +367,7 @@ Standard_Boolean Standard::StackTrace(char* theBuffer, + strcat(theBuffer, "\n============="); + } + return true; ++#else ++ return false; + #endif + } +-- +2.51.2 + diff --git a/sci-libs/opencascade/metadata.xml b/sci-libs/opencascade/metadata.xml index 38b85e513a1f..8755a7520b0d 100644 --- a/sci-libs/opencascade/metadata.xml +++ b/sci-libs/opencascade/metadata.xml @@ -13,6 +13,7 @@ <flag name="freeimage">Enable support for image i/o via <pkg>media-libs/freeimage</pkg></flag> <flag name="freetype">Enable <pkg>media-libs/freetype</pkg> support</flag> <flag name="inspector">Build Inspector tool</flag> + <flag name="jemalloc">Enable jemalloc allocator support via <pkg>dev-libs/jemalloc</pkg></flag> <flag name="json">Enable JSON support through <pkg>dev-libs/rapidjson</pkg></flag> <flag name="optimize">Don't clear allocated memory. Use optimized memory manager unlesstbb USE flag is set.</flag> <flag name="tbb">Enable multithreading with the Intel Threads Building Block <pkg>dev-cpp/tbb</pkg></flag> diff --git a/sci-libs/opencascade/opencascade-9999.ebuild b/sci-libs/opencascade/opencascade-9999.ebuild index e968dc552f03..7dcd21009437 100644 --- a/sci-libs/opencascade/opencascade-9999.ebuild +++ b/sci-libs/opencascade/opencascade-9999.ebuild @@ -3,18 +3,20 @@ EAPI=8 -inherit cmake cuda flag-o-matic virtualx +inherit cmake cuda flag-o-matic multiprocessing virtualx xdg-utils DESCRIPTION="Development platform for CAD/CAE, 3D surface/solid modeling and data exchange" HOMEPAGE="https://www.opencascade.com" MY_PN="OCCT" -MY_TEST_PV="7.8.0" -MY_TEST_PV2="${MY_TEST_PV//./_}" +MY_TEST_PV="7.9.0" +MY_TEST_PV2="${MY_TEST_PV//./_}_beta1" SRC_URI=" - test? ( https://github.com/Open-Cascade-SAS/${MY_PN}/releases/download/V${MY_TEST_PV2}/${PN}-dataset-${MY_TEST_PV}.tar.xz ) + test? ( + https://github.com/Open-Cascade-SAS/${MY_PN}/releases/download/V${MY_TEST_PV2}/${PN}-dataset-${MY_TEST_PV}.tar.xz + ) " if [[ ${PV} = *9999* ]] ; then @@ -26,7 +28,10 @@ else https://github.com/Open-Cascade-SAS/${MY_PN}/archive/refs/tags/V${MY_PV}.tar.gz -> ${P}.tar.gz " S="${WORKDIR}/${MY_PN}-${MY_PV}" - KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86" + + if [[ "${PV}" != *rc* ]]; then + KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86" + fi fi LICENSE="|| ( Open-CASCADE-LGPL-2.1-Exception-1.0 LGPL-2.1 )" @@ -35,9 +40,21 @@ IUSE="X debug doc freeimage gles2 jemalloc json opengl optimize tbb test testpro # vtk libs are hardcoded in src/TKIVtk*/EXTERNLIB REQUIRED_USE=" - ?? ( optimize tbb ) - test? ( freeimage json opengl tk ) - vtk? ( X opengl ) + ?? ( + optimize + tbb + ) + test? ( + freeimage + json + opengl + tk + truetype + ) + vtk? ( + X + opengl + ) " RESTRICT="!test? ( test )" @@ -45,7 +62,9 @@ RESTRICT="!test? ( test )" RDEPEND=" dev-lang/tcl:= dev-libs/double-conversion - tk? ( dev-lang/tk:= ) + tk? ( + dev-lang/tk:= + ) gles2? ( media-libs/libglvnd ) @@ -55,15 +74,21 @@ RDEPEND=" X? ( x11-libs/libX11 ) - freeimage? ( media-libs/freeimage ) - jemalloc? ( dev-libs/jemalloc ) - tbb? ( dev-cpp/tbb:= ) + freeimage? ( + media-libs/freeimage + ) + jemalloc? ( + dev-libs/jemalloc + ) + tbb? ( + dev-cpp/tbb:= + ) truetype? ( media-libs/fontconfig media-libs/freetype:2 ) vtk? ( - sci-libs/vtk:=[rendering,truetype=] + sci-libs/vtk:=[rendering,truetype?] tbb? ( sci-libs/vtk[tbb] ) @@ -71,22 +96,38 @@ RDEPEND=" " DEPEND=" ${RDEPEND} - X? ( x11-base/xorg-proto ) - json? ( dev-libs/rapidjson ) + X? ( + x11-base/xorg-proto + ) + json? ( + dev-libs/rapidjson + ) + test? ( + freeimage? ( + media-libs/freeimage[jpeg,mng,png,tiff] + ) + truetype? ( + media-fonts/noto-cjk + media-fonts/urw-fonts + ) + ) " BDEPEND=" - doc? ( app-text/doxygen[dot] ) - test? ( dev-tcltk/thread ) + doc? ( + app-text/doxygen[dot] + ) + test? ( + dev-tcltk/thread + ) " PATCHES=( - "${FILESDIR}/${PN}-7.7.0-fix-installation-of-cmake-config-files.patch" - "${FILESDIR}/${PN}-7.7.0-musl.patch" + "${FILESDIR}/${PN}-7.9.2-0001-fix-installation-of-cmake-config-files.patch" + "${FILESDIR}/${PN}-7.9.0-0002-avoid-pre-stripping-binaries.patch" + "${FILESDIR}/${PN}-7.9.2-0003-Fix-building-with-musl.patch" + "${FILESDIR}/${PN}-7.9.0-0004-Only-try-to-find-the-jemalloc-libs-we-are-going-to-u.patch" "${FILESDIR}/${PN}-7.8.0-tests.patch" "${FILESDIR}/${PN}-7.8.0-jemalloc-noexcept.patch" - "${FILESDIR}/${PN}-7.8.1-vtk_components.patch" - "${FILESDIR}/${PN}-7.8.2-avoid-pre-stripping-binaries.patch" - "${FILESDIR}/${PN}-7.8.2-jemalloc-lib-type.patch" ) src_unpack() { @@ -97,8 +138,7 @@ src_unpack() { fi if use test; then - mkdir "${WORKDIR}/data" - pushd "${WORKDIR}/data" > /dev/null || die + pushd "${WORKDIR}" > /dev/null || die # should be in paths indicated by CSF_TestDataPath environment variable, # or in subfolder data in the script directory unpack "${PN}-dataset-${MY_TEST_PV}.tar.xz" @@ -109,9 +149,6 @@ src_unpack() { src_prepare() { cmake_src_prepare - sed -e 's|/lib\$|/'"$(get_libdir)"'\$|' \ - -i adm/templates/OpenCASCADEConfig.cmake.in || die - # There is an OCCT_UPDATE_TARGET_FILE cmake macro that fails due to some # assumptions it makes about installation paths. Rather than fixing it, just # get rid of the mechanism altogether - its purpose is to allow a @@ -128,7 +165,7 @@ src_configure() { local mycmakeargs=( -D3RDPARTY_DIR="${ESYSROOT}/usr" - -DBUILD_CPP_STANDARD="C++17" + # -DBUILD_CPP_STANDARD="C++23" -DBUILD_SOVERSION_NUMBERS=2 -DBUILD_DOC_Overview="$(usex doc)" @@ -242,13 +279,11 @@ src_configure() { } src_test() { - echo "export CSF_OCCTDataPath=${WORKDIR}/data" >> "${BUILD_DIR}/custom.sh" || die - - if has_version media-fonts/dejavu; then - cp "${ESYSROOT}/usr/share/fonts/dejavu/DejaVuSans.ttf" "${WORKDIR}/data/" # no die here as this isn't fatal - fi + cat >> "${BUILD_DIR}/custom.sh" <<- _EOF_ || die + export CSF_TestDataPath="${WORKDIR}/${PN}-dataset-${MY_TEST_PV}" + _EOF_ - local test_file=${T}/testscript.tcl + local test_file="${T}/testscript.tcl" local draw_opts=( i # see ${BUILD_DIR}/custom*.sh @@ -259,76 +294,130 @@ src_test() { local test_names=( "demo draw bug30430" # prone to dying due to cpu limit ) + local test_opts=( # run single tests -overwrite ) + for test_name in "${test_names[@]}"; do + mkdir -vp "$(dirname "${BUILD_DIR}/test_results/${test_name// /\/}.html")" || die cat >> "${test_file}" <<- _EOF_ || die test ${test_name} -outfile "${BUILD_DIR}/test_results/${test_name// /\/}.html" ${test_opts[@]} _EOF_ done - local testgrid_opts=() + local testgrid_opts=( + -overwrite + ) local SKIP_TESTS=() + local DEL_TESTS=() if [[ "${OCCT_OPTIONAL_TESTS}" != "true" ]]; then SKIP_TESTS+=( + "demo draw bug30430" + 'blend complex F4' + + # skip all bugs 'bugs' - 'geometry circ2d3Tan '{CircleCircleLin_11,CircleLinPoint_11} + + # skip failing bugs + # 'bugs caf bug31918_'{1,2} + # 'bugs fclasses bug'{6143,7287_{3,5},29064} + # 'bugs filling bug16119' + # 'bugs mesh bug'{24127,25594,26372,27693,27845,29641,29962,30008_2,30442,31258,31461,32241,32422} + # 'bugs modalg_1 '{buc60782_3,bug15036} + # 'bugs modalg_2 bug399' + # 'bugs modalg_5 bug23706_'{16,20,21,26,36,38,43,44,45,48,49,50,51,52,53,54,55,56,60,61} + # 'bugs modalg_5 bug24347' + # 'bugs modalg_6 bug'{26308,26525_3,27383_4,27884,6768} + # 'bugs modalg_7 bug'{26034,29311_4,29807_b3a,29807_sc01} + # 'bugs moddata_1 bug16' + # 'bugs moddata_2 bug712_2' + # 'bugs moddata_3 bug'{24959_1,27534,32058} + + 'geometry circ2d3Tan Circle'{CircleLin_11,LinPoint_11} 'heal checkshape bug32448_1' 'hlr exact_hlr bug25813_2' + 'hlr poly_hlr '{Plate,bug25813_{2,3,4}} + 'lowalgos intss bug'{25950,27431,29807_i{1003,2006,3003},30703,565,567_1} + 'lowalgos proximity A'{4,5} + 'offset wire_closed_inside_0_005 D1' + 'opengles3 general msaa' + 'opengles3 geom interior'{1,2} + 'opengles3 raytrace msaa' + 'opengles3 textures alpha_mask' + 'perf mesh bug26965' - 'hlr poly_hlr '{bug25813_2,bug25813_3,bug25813_4,Plate} - 'lowalgos intss bug'{565,567_1,25950,27431,29807_i1003,29807_i2006,29807_i3003,29807_i5002,30703} - 'lowalgos proximity '{A4,A5} 'opengl background bug27836' - 'opengl drivers opengles' - 'opengles3' + 'opengles3 background bug27836' + ) - 'demo draw bug30430' + DEL_TESTS+=( + # Error: non-linear time growth detected! + # 'v3d/trsf/bug26029' + + # needs dri3 + # 'opengl/drivers/opengles' + # 'opengles3' ) + fi - local DEL_TESTS=( - 'opengl/data/background/bug27836' - 'perf/mesh/bug26965' - 'v3d/trsf/bug26029' + if ! use gles2; then + DEL_TESTS+=( + # 'opengl/drivers/opengles' + # 'opengles3' ) + fi - for test in "${DEL_TESTS[@]}"; do - rm "${CMAKE_USE_DIR}/tests/${test}" || die - done + if use gles2 || use opengl; then + xdg_environment_reset + addwrite '/dev/dri/' + [[ -c /dev/udmabuf ]] && addwrite /dev/udmabuf + fi + + if ! use tk || ! use vtk; then + DEL_TESTS+=( + # 'opengl/data/transparency/oit' + ) fi if ! use vtk; then SKIP_TESTS+=( 'vtk' ) - echo "IGNORE /Could not open: libTKIVtkDraw/skip VTK" >> "${CMAKE_USE_DIR}/tests/opengl/parse.rules" + cat >> "${CMAKE_USE_DIR}/tests/opengl/parse.rules" <<- _EOF_ || die + IGNORE /Could not open: libTKIVtkDraw/skip VTK + _EOF_ fi if [[ -n "${SKIP_TESTS[*]}" ]]; then testgrid_opts+=( -exclude "$(IFS=',' ; echo "${SKIP_TESTS[*]}")" ) fi + for test in "${DEL_TESTS[@]}"; do + rm -r "${CMAKE_USE_DIR}/tests/${test}" || die + done + testgrid_opts+=( - # -refresh 5 + # -refresh 5 # default is 60 -overwrite + -parallel "$(makeopts_jobs)" ) cat >> "${test_file}" <<- _EOF_ || die testgrid -outdir "${BUILD_DIR}/test_results" ${testgrid_opts[@]} _EOF_ - # # regenerate summary in case we have to - # cat >> "${test_file}" <<- _EOF_ || die - # testsummarize "${BUILD_DIR}/test_results" - # _EOF_ + # regenerate summary in case we have to + cat >> "${test_file}" <<- _EOF_ || die + testsummarize "${BUILD_DIR}/test_results" + _EOF_ # Work around zink warnings export LIBGL_ALWAYS_SOFTWARE="true" - export CASROOT="${BUILD_DIR}" + local -x CASROOT="${BUILD_DIR}" virtx \ "${BUILD_DIR}/draw.sh" \ @@ -339,6 +428,7 @@ src_test() { eerror "tests never ran!" die fi + failed_tests="$(grep ": FAILED" "${BUILD_DIR}/test_results/tests.log")" if [[ -n ${failed_tests} ]]; then eerror "Failed tests:"
