summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Parborg <darkdefende@gmail.com>2024-01-17 12:39:14 +0100
committerSam James <sam@gentoo.org>2024-03-25 18:54:51 +0000
commit853f778d6113be2e57db1d9927b1ded860ff3580 (patch)
tree0c46292b0f117739c66151b4439ef295f6ff66db
parentsci-libs/opencascade: fix 927629, 927592, 925441 (diff)
downloadgentoo-853f778d.tar.gz
gentoo-853f778d.tar.bz2
gentoo-853f778d.zip
media-libs/embree: Bump to 4.3.0
Closes: https://bugs.gentoo.org/912279 Signed-off-by: Sebastian Parborg <darkdefende@gmail.com> Signed-off-by: Sam James <sam@gentoo.org>
-rw-r--r--media-libs/embree/Manifest1
-rw-r--r--media-libs/embree/embree-4.3.0.ebuild118
-rw-r--r--media-libs/embree/files/embree-4.3.0-dont-install-tutorials.patch203
3 files changed, 322 insertions, 0 deletions
diff --git a/media-libs/embree/Manifest b/media-libs/embree/Manifest
index 514a411dba17..3478edbe8dae 100644
--- a/media-libs/embree/Manifest
+++ b/media-libs/embree/Manifest
@@ -1,2 +1,3 @@
DIST embree-3.13.4.tar.gz 13733908 BLAKE2B 4c6c24f62ee88a09149bd930716c71e91d54563eea5cc103c0346d3808c693e8470fc7ea98651e0df9e4423bda565d7ab1a23e16c9d0441c79e9ec9c8571b0fa SHA512 685c3935fabe1bfa7260ef148df26b686b085b75011d72011461471cbcef786a5ce7a0e85c57b2df05798489a2d4e80a8d3ee5df986029edad7df7511d99c0ca
DIST embree-3.13.5.tar.gz 13739115 BLAKE2B 52ad8e3520aa789f7987467c6979be06f883803757e842316ecf708deeed11214dd60570eda5708e701047b1a14ea37710d158df544817dc536bfda444a68218 SHA512 13ae19b1750197fb4887ba601c75d1b54b3c388224672b6561dd922bc9b9747139cf46ce554727e3afa13dcf152ce4d703935cb9105ced792b011f2d05fa3e95
+DIST embree-4.3.0.tar.gz 71028239 BLAKE2B 7834ed7851d36c32ce3e88a3ddb02e8316422699ec78a662ef81ef0eb9f66b260ce2f7438739531e2b63f817a931a19ba35da156e8e09a42a78e6c077314e615 SHA512 8f61401175464b34243e899464f44a196b520c08e1c44a417bf980cfa7b191859bbaab1029278123654e5ffb91e2f8a85af1d881affddcc7e344a7e8a8066262
diff --git a/media-libs/embree/embree-4.3.0.ebuild b/media-libs/embree/embree-4.3.0.ebuild
new file mode 100644
index 000000000000..05a813da049f
--- /dev/null
+++ b/media-libs/embree/embree-4.3.0.ebuild
@@ -0,0 +1,118 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake flag-o-matic linux-info toolchain-funcs
+
+DESCRIPTION="Collection of high-performance ray tracing kernels"
+HOMEPAGE="https://github.com/embree/embree"
+SRC_URI="https://github.com/embree/embree/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="3"
+KEYWORDS="-* ~amd64 ~arm64"
+X86_CPU_FLAGS=( sse2 sse4_2 avx avx2 avx512dq )
+CPU_FLAGS=( cpu_flags_arm_neon ${X86_CPU_FLAGS[@]/#/cpu_flags_x86_} )
+IUSE="compact-polys ispc +raymask ssp +tbb test ${CPU_FLAGS[@]}"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="|| ( ${CPU_FLAGS[@]} )"
+
+BDEPEND="
+ virtual/pkgconfig
+"
+RDEPEND="
+ ispc? ( dev-lang/ispc )
+ tbb? ( dev-cpp/tbb:= )
+"
+DEPEND="${RDEPEND}"
+
+DOCS=( CHANGELOG.md README.md readme.pdf )
+
+PATCHES=(
+ "${FILESDIR}"/embree-4.3.0-dont-install-tutorials.patch
+)
+
+pkg_setup() {
+ CONFIG_CHECK="~TRANSPARENT_HUGEPAGE"
+ WARNING_TRANSPARENT_HUGEPAGE="Not enabling Transparent Hugepages (CONFIG_TRANSPARENT_HUGEPAGE) will impact rendering performance."
+
+ linux-info_pkg_setup
+}
+
+src_prepare() {
+ cmake_src_prepare
+
+ # disable RPM package building
+ sed -e 's|CPACK_RPM_PACKAGE_RELEASE 1|CPACK_RPM_PACKAGE_RELEASE 0|' \
+ -i CMakeLists.txt || die
+}
+
+src_configure() {
+ # NOTE: You can make embree accept custom CXXFLAGS by turning off
+ # EMBREE_IGNORE_CMAKE_CXX_FLAGS. However, the linking will fail if you use
+ # any "m*" compile flags. This is because embree builds modules for the
+ # different supported ISAs and picks the correct one at runtime.
+ # "m*" will pull in cpu instructions that shouldn't be in specific modules
+ # and it fails to link properly.
+ # https://github.com/embree/embree/issues/115
+
+ filter-flags -m*
+
+ # https://bugs.gentoo.org/910164
+ tc-is-clang && filter-lto
+
+ local mycmakeargs=(
+ -DCMAKE_SKIP_INSTALL_RPATH:BOOL=ON
+
+ # Default culling settings for Blender
+ # (Cycles will not render correctly without these)
+ # Some Embree tests will fail with these settings though...
+ -DEMBREE_BACKFACE_CULLING=OFF
+ -DEMBREE_BACKFACE_CULLING_CURVES=ON
+ -DEMBREE_BACKFACE_CULLING_SPHERES=ON
+
+ -DEMBREE_COMPACT_POLYS=$(usex compact-polys)
+
+ # Make sure that we are using our custom compilie flags
+ -DEMBREE_IGNORE_CMAKE_CXX_FLAGS=OFF
+
+ # Set to NONE so we can manually switch on ISAs below
+ -DEMBREE_MAX_ISA:STRING="NONE"
+ -DEMBREE_ISA_AVX=$(usex cpu_flags_x86_avx)
+ -DEMBREE_ISA_AVX2=$(usex cpu_flags_x86_avx2)
+ -DEMBREE_ISA_AVX512=$(usex cpu_flags_x86_avx512dq)
+ # TODO look into neon 2x support
+ -DEMBREE_ISA_NEON=$(usex cpu_flags_arm_neon)
+ -DEMBREE_ISA_SSE2=$(usex cpu_flags_x86_sse2)
+ -DEMBREE_ISA_SSE42=$(usex cpu_flags_x86_sse4_2)
+ -DEMBREE_ISPC_SUPPORT=$(usex ispc)
+ -DEMBREE_RAY_MASK=$(usex raymask)
+
+ -DEMBREE_STACK_PROTECTOR=$(usex ssp)
+ -DEMBREE_STATIC_LIB=OFF
+ -DEMBREE_TASKING_SYSTEM:STRING=$(usex tbb "TBB" "INTERNAL")
+ # Tutorial binaries are required by the tests
+ -DEMBREE_TUTORIALS=$(usex test)
+ -DEMBREE_ZIP_MODE=OFF
+ )
+
+ # Disable asserts
+ append-cppflags -DNDEBUG
+
+ if use test; then
+ mycmakeargs+=(
+ -DBUILD_TESTING=ON
+ -DEMBREE_TESTING_INSTALL_TESTS=OFF
+ -DEMBREE_TESTING_INTENSITY=4
+ # These tutorials are not used by the default tests
+ -DEMBREE_TUTORIALS_GLFW=OFF
+ -DEMBREE_TUTORIALS_INSTALL=OFF
+ -DEMBREE_TUTORIALS_LIBJPEG=OFF
+ -DEMBREE_TUTORIALS_LIBPNG=OFF
+ -DEMBREE_TUTORIALS_OPENIMAGEIO=OFF
+ )
+ fi
+
+ cmake_src_configure
+}
diff --git a/media-libs/embree/files/embree-4.3.0-dont-install-tutorials.patch b/media-libs/embree/files/embree-4.3.0-dont-install-tutorials.patch
new file mode 100644
index 000000000000..8643c7168a71
--- /dev/null
+++ b/media-libs/embree/files/embree-4.3.0-dont-install-tutorials.patch
@@ -0,0 +1,203 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index c6750758f..6df7d2f34 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -95,7 +95,8 @@ IF (BUILD_DOC)
+ ADD_SUBDIRECTORY(doc)
+ ENDIF()
+
+-OPTION(EMBREE_TUTORIALS "Enable to build Embree tutorials" ON)
++OPTION(EMBREE_TUTORIALS "Enable to build Embree tutorials" ON)
++OPTION(EMBREE_TUTORIALS_INSTALL "Enable to include the built tutorials in the Embree package" ON)
+
+ ##############################################################
+ # Embree configuration
+diff --git a/common/cmake/package.cmake b/common/cmake/package.cmake
+index f7a182f7f..92ac45de0 100644
+--- a/common/cmake/package.cmake
++++ b/common/cmake/package.cmake
+@@ -145,7 +145,7 @@ ENDIF()
+ # Install Models
+ ##############################################################
+
+-IF (EMBREE_TUTORIALS)
++IF (EMBREE_TUTORIALS AND EMBREE_TUTORIALS_INSTALL)
+ INSTALL(DIRECTORY tutorials/models DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT examples)
+ ENDIF()
+
+diff --git a/common/cmake/tutorial.cmake b/common/cmake/tutorial.cmake
+index 0f23d0204..cba0c4b13 100644
+--- a/common/cmake/tutorial.cmake
++++ b/common/cmake/tutorial.cmake
+@@ -9,7 +9,9 @@ MACRO (ADD_TUTORIAL TUTORIAL_NAME)
+ TARGET_LINK_LIBRARIES(embree_${TUTORIAL_NAME} embree image tutorial noise ${ADDITIONAL_LIBRARIES})
+ SET_PROPERTY(TARGET embree_${TUTORIAL_NAME} PROPERTY FOLDER tutorials/single)
+ SET_PROPERTY(TARGET embree_${TUTORIAL_NAME} APPEND PROPERTY COMPILE_FLAGS " ${FLAGS_LOWEST}")
+- INSTALL(TARGETS embree_${TUTORIAL_NAME} DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT examples)
++ IF (EMBREE_TUTORIALS_INSTALL)
++ INSTALL(TARGETS embree_${TUTORIAL_NAME} DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT examples)
++ ENDIF ()
+ SIGN_TARGET(embree_${TUTORIAL_NAME})
+ ENDMACRO ()
+
+@@ -21,7 +23,9 @@ MACRO (ADD_TUTORIAL_SYCL TUTORIAL_NAME)
+ SET_PROPERTY(TARGET embree_${TUTORIAL_NAME}_sycl PROPERTY FOLDER tutorials/sycl)
+ SET_PROPERTY(TARGET embree_${TUTORIAL_NAME}_sycl APPEND PROPERTY COMPILE_FLAGS " ${FLAGS_LOWEST} ${CMAKE_CXX_FLAGS_SYCL}")
+ SET_PROPERTY(TARGET embree_${TUTORIAL_NAME}_sycl APPEND PROPERTY LINK_FLAGS "${CMAKE_LINK_FLAGS_SYCL}")
+- INSTALL(TARGETS embree_${TUTORIAL_NAME}_sycl DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT examples)
++ IF (EMBREE_TUTORIALS_INSTALL)
++ INSTALL(TARGETS embree_${TUTORIAL_NAME}_sycl DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT examples)
++ ENDIF ()
+ SIGN_TARGET(embree_${TUTORIAL_NAME}_sycl)
+ ENDIF()
+ ENDMACRO ()
+@@ -32,7 +36,9 @@ MACRO (ADD_TUTORIAL_ISPC TUTORIAL_NAME)
+ TARGET_LINK_LIBRARIES(embree_${TUTORIAL_NAME}_ispc embree image tutorial_ispc noise noise_ispc)
+ SET_PROPERTY(TARGET embree_${TUTORIAL_NAME}_ispc PROPERTY FOLDER tutorials/ispc)
+ SET_PROPERTY(TARGET embree_${TUTORIAL_NAME}_ispc APPEND PROPERTY COMPILE_FLAGS " ${FLAGS_LOWEST}")
+- INSTALL(TARGETS embree_${TUTORIAL_NAME}_ispc DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT examples)
++ IF (EMBREE_TUTORIALS_INSTALL)
++ INSTALL(TARGETS embree_${TUTORIAL_NAME}_ispc DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT examples)
++ ENDIF ()
+ SIGN_TARGET(embree_${TUTORIAL_NAME}_ispc)
+ ENDIF()
+ ENDMACRO ()
+diff --git a/tutorials/CMakeLists.txt b/tutorials/CMakeLists.txt
+index 122dae2e4..96a69d17e 100644
+--- a/tutorials/CMakeLists.txt
++++ b/tutorials/CMakeLists.txt
+@@ -4,7 +4,9 @@
+ include(CMakeDependentOption)
+
+ CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/README.md.in" "${CMAKE_CURRENT_SOURCE_DIR}/README.md")
+-INSTALL(FILES "${CMAKE_CURRENT_SOURCE_DIR}/README.md" DESTINATION "src" COMPONENT examples)
++IF (EMBREE_TUTORIALS_INSTALL)
++ INSTALL(FILES "${CMAKE_CURRENT_SOURCE_DIR}/README.md" DESTINATION "src" COMPONENT examples)
++ENDIF()
+
+ ADD_SUBDIRECTORY(common/image)
+ CMAKE_DEPENDENT_OPTION(EMBREE_TUTORIALS_GLFW "Enables GLFW usage in tutorials. When disabled tutorial can only render to disk." ON "EMBREE_TUTORIALS" OFF)
+diff --git a/tutorials/bvh_access/CMakeLists.txt b/tutorials/bvh_access/CMakeLists.txt
+index 3bc801d24..1b7fa1fb2 100644
+--- a/tutorials/bvh_access/CMakeLists.txt
++++ b/tutorials/bvh_access/CMakeLists.txt
+@@ -8,9 +8,11 @@ TARGET_LINK_LIBRARIES(embree_bvh_access embree math sys tasking tutorial)
+
+ SET_PROPERTY(TARGET embree_bvh_access PROPERTY FOLDER tutorials/single)
+ SET_PROPERTY(TARGET embree_bvh_access APPEND PROPERTY COMPILE_FLAGS " ${FLAGS_LOWEST}")
+-INSTALL(TARGETS embree_bvh_access DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT examples)
++IF (EMBREE_TUTORIALS_INSTALL)
++ INSTALL(TARGETS embree_bvh_access DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT examples)
++ENDIF()
+ SIGN_TARGET(embree_bvh_access)
+
+ ENDIF()
+
+-ADD_EMBREE_TEST_ECS(bvh_access embree_bvh_access NO_REFERENCE NO_ISPC NO_SYCL)
+\ No newline at end of file
++ADD_EMBREE_TEST_ECS(bvh_access embree_bvh_access NO_REFERENCE NO_ISPC NO_SYCL)
+diff --git a/tutorials/convert/CMakeLists.txt b/tutorials/convert/CMakeLists.txt
+index 5c1b7795d..6730bc96d 100644
+--- a/tutorials/convert/CMakeLists.txt
++++ b/tutorials/convert/CMakeLists.txt
+@@ -5,5 +5,7 @@ ADD_EXECUTABLE(embree_convert ../../kernels/embree.rc convert.cpp distribution1d
+ TARGET_LINK_LIBRARIES(embree_convert scenegraph image tasking)
+ SET_PROPERTY(TARGET embree_convert PROPERTY FOLDER tutorials/single)
+ SET_PROPERTY(TARGET embree_convert APPEND PROPERTY COMPILE_FLAGS " ${FLAGS_LOWEST}")
+-INSTALL(TARGETS embree_convert DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT examples)
++IF (EMBREE_TUTORIALS_INSTALL)
++ INSTALL(TARGETS embree_convert DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT examples)
++ENDIF()
+ SIGN_TARGET(embree_convert)
+diff --git a/tutorials/embree_info/CMakeLists.txt b/tutorials/embree_info/CMakeLists.txt
+index fa8b74b89..6d10279ff 100644
+--- a/tutorials/embree_info/CMakeLists.txt
++++ b/tutorials/embree_info/CMakeLists.txt
+@@ -18,8 +18,10 @@ ADD_EXECUTABLE(embree_info embree_info.cpp)
+ TARGET_LINK_LIBRARIES(embree_info embree)
+
+ SET_PROPERTY(TARGET embree_info PROPERTY FOLDER tutorials/single)
+-INSTALL(TARGETS embree_info DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT examples)
+-#INSTALL(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" DESTINATION "src" COMPONENT examples)
++IF (EMBREE_TUTORIALS_INSTALL)
++ INSTALL(TARGETS embree_info DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT examples)
++ #INSTALL(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" DESTINATION "src" COMPONENT examples)
++ENDIF()
+
+ IF (EMBREE_SYCL_SUPPORT)
+ SET_PROPERTY(TARGET embree_info APPEND PROPERTY COMPILE_FLAGS "-fsycl -Xclang -fsycl-allow-func-ptr -fsycl-targets=spir64")
+@@ -31,4 +33,4 @@ IF (COMMAND SIGN_TARGET)
+ SIGN_TARGET(embree_info)
+ ENDIF()
+
+-ENDIF()
+\ No newline at end of file
++ENDIF()
+diff --git a/tutorials/embree_tests/CMakeLists.txt b/tutorials/embree_tests/CMakeLists.txt
+index ab62b1954..b3647bc2d 100644
+--- a/tutorials/embree_tests/CMakeLists.txt
++++ b/tutorials/embree_tests/CMakeLists.txt
+@@ -40,8 +40,10 @@ endif()
+
+ SET_PROPERTY(TARGET embree_tests PROPERTY FOLDER tutorials)
+ SET_PROPERTY(TARGET embree_tests APPEND PROPERTY COMPILE_FLAGS " ${FLAGS_LOWEST}")
+-INSTALL(TARGETS embree_tests DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT examples)
++IF (EMBREE_TUTORIALS_INSTALL)
++ INSTALL(TARGETS embree_tests DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT examples)
++ENDIF()
+ SIGN_TARGET(embree_tests)
+
+ ADD_EMBREE_TEST_ECS(embree_tests embree_tests NO_REFERENCE NO_ISPC NO_SYCL)
+-SET_EMBREE_TEST_PROPERTIES(embree_tests PROPERTIES TIMEOUT 7000)
+\ No newline at end of file
++SET_EMBREE_TEST_PROPERTIES(embree_tests PROPERTIES TIMEOUT 7000)
+diff --git a/tutorials/minimal/CMakeLists.txt b/tutorials/minimal/CMakeLists.txt
+index 962c2f4e8..4fa642544 100644
+--- a/tutorials/minimal/CMakeLists.txt
++++ b/tutorials/minimal/CMakeLists.txt
+@@ -16,8 +16,10 @@ ADD_EXECUTABLE(embree_minimal minimal.cpp)
+ TARGET_LINK_LIBRARIES(embree_minimal embree)
+
+ SET_PROPERTY(TARGET embree_minimal PROPERTY FOLDER tutorials/single)
+-INSTALL(TARGETS embree_minimal DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT examples)
+-INSTALL(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" DESTINATION "src" COMPONENT examples)
++IF (EMBREE_TUTORIALS_INSTALL)
++ INSTALL(TARGETS embree_minimal DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT examples)
++ INSTALL(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" DESTINATION "src" COMPONENT examples)
++ENDIF()
+ IF (COMMAND SIGN_TARGET)
+ SIGN_TARGET(embree_minimal)
+ ENDIF()
+@@ -30,7 +32,9 @@ IF (EMBREE_SYCL_SUPPORT)
+ SET_PROPERTY(TARGET embree_minimal_sycl APPEND PROPERTY LINK_FLAGS "-fsycl -fsycl-targets=spir64")
+
+ SET_PROPERTY(TARGET embree_minimal_sycl PROPERTY FOLDER tutorials/sycl)
+- INSTALL(TARGETS embree_minimal_sycl DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT examples)
++ IF (EMBREE_TUTORIALS_INSTALL)
++ INSTALL(TARGETS embree_minimal_sycl DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT examples)
++ ENDIF()
+ IF (COMMAND SIGN_TARGET)
+ SIGN_TARGET(embree_minimal_sycl)
+ ENDIF()
+diff --git a/tutorials/verify/CMakeLists.txt b/tutorials/verify/CMakeLists.txt
+index c12d9caf8..ec3c928d7 100644
+--- a/tutorials/verify/CMakeLists.txt
++++ b/tutorials/verify/CMakeLists.txt
+@@ -13,7 +13,9 @@ ADD_EXECUTABLE(embree_verify ../../kernels/embree.rc verify.cpp
+ TARGET_LINK_LIBRARIES(embree_verify ${EMBREE_LIBRARIES} sys math scenegraph embree tasking)
+ SET_PROPERTY(TARGET embree_verify PROPERTY FOLDER tutorials)
+ SET_PROPERTY(TARGET embree_verify APPEND PROPERTY COMPILE_FLAGS " ${FLAGS_LOWEST}")
+-INSTALL(TARGETS embree_verify DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT examples)
++IF (EMBREE_TUTORIALS_INSTALL)
++ INSTALL(TARGETS embree_verify DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT examples)
++ENDIF()
+ SIGN_TARGET(embree_verify)
+
+ ADD_EMBREE_TEST_ECS(embree_verify embree_verify NO_REFERENCE NO_ISPC NO_SYCL ARGS --no-colors)
+@@ -39,4 +41,4 @@ ADD_EMBREE_TEST_ECS(embree_verify_benchmark embree_verify NO_REFERENCE NO_ISPC N
+ --skip .*_120.* --skip .*_1k.* --skip .*_10k.* --skip .*100k.* # skip all smaller build benchmarks
+ --run .*embree_reported_memory.*
+ )
+-SET_EMBREE_TEST_PROPERTIES(embree_verify_benchmarks PROPERTIES TIMEOUT 10800)
+\ No newline at end of file
++SET_EMBREE_TEST_PROPERTIES(embree_verify_benchmarks PROPERTIES TIMEOUT 10800)