aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/embree
diff options
context:
space:
mode:
authorEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
committerEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
commit54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch)
treed915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/embree
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/embree')
-rw-r--r--vcpkg/ports/embree/avoid-library-conflicts.diff14
-rw-r--r--vcpkg/ports/embree/cmake-config.diff38
-rw-r--r--vcpkg/ports/embree/no-runtime-install.patch12
-rwxr-xr-xvcpkg/ports/embree/portfile.cmake98
-rwxr-xr-xvcpkg/ports/embree/usage4
-rw-r--r--vcpkg/ports/embree/vcpkg.json78
6 files changed, 244 insertions, 0 deletions
diff --git a/vcpkg/ports/embree/avoid-library-conflicts.diff b/vcpkg/ports/embree/avoid-library-conflicts.diff
new file mode 100644
index 0000000..e8ad5db
--- /dev/null
+++ b/vcpkg/ports/embree/avoid-library-conflicts.diff
@@ -0,0 +1,14 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 1292e26..93a673a 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -708,3 +708,9 @@ ENDIF()
+ ##############################################################
+
+ INCLUDE(CPack)
++
++foreach(lib IN ITEMS lexers math simd sys tasking)
++ if(TARGET ${lib})
++ set_target_properties(${lib} PROPERTIES OUTPUT_NAME ${EMBREE_LIBRARY_NAME}_${lib})
++ endif()
++endforeach()
diff --git a/vcpkg/ports/embree/cmake-config.diff b/vcpkg/ports/embree/cmake-config.diff
new file mode 100644
index 0000000..55b82c3
--- /dev/null
+++ b/vcpkg/ports/embree/cmake-config.diff
@@ -0,0 +1,38 @@
+diff --git a/common/cmake/embree-config.cmake b/common/cmake/embree-config.cmake
+index c0009fd..e80df05 100644
+--- a/common/cmake/embree-config.cmake
++++ b/common/cmake/embree-config.cmake
+@@ -5,7 +5,7 @@ SET(EMBREE_ROOT_DIR "${CMAKE_CURRENT_LIST_DIR}/@EMBREE_RELATIVE_ROOT_DIR@")
+ GET_FILENAME_COMPONENT(EMBREE_ROOT_DIR "${EMBREE_ROOT_DIR}" ABSOLUTE)
+
+ SET(EMBREE_INCLUDE_DIRS "${EMBREE_ROOT_DIR}/@CMAKE_INSTALL_INCLUDEDIR@")
+-SET(EMBREE_LIBRARY "${EMBREE_ROOT_DIR}/@CMAKE_INSTALL_LIBDIR@/@EMBREE_LIBRARY_FULLNAME@")
++SET(EMBREE_LIBRARY "unofficial::embree::embree") # Improve diagnostics with namespaced target
+ SET(EMBREE_LIBRARIES ${EMBREE_LIBRARY})
+
+ SET(EMBREE_VERSION @EMBREE_VERSION@)
+@@ -104,6 +104,10 @@ IF (EMBREE_SYCL_SUPPORT)
+ ENDIF()
+
+ INCLUDE("${EMBREE_ROOT_DIR}/@EMBREE_CMAKEEXPORT_DIR@/embree-targets.cmake")
++if(NOT TARGET unofficial::embree::embree)
++ add_library(unofficial::embree::embree INTERFACE IMPORTED)
++ target_link_libraries(unofficial::embree::embree INTERFACE embree)
++endif()
+
+
+ SET(EMBREE_TESTING_ONLY_SYCL_TESTS @EMBREE_TESTING_ONLY_SYCL_TESTS@)
+diff --git a/common/cmake/package.cmake b/common/cmake/package.cmake
+index 7cd3775..3fe79bb 100644
+--- a/common/cmake/package.cmake
++++ b/common/cmake/package.cmake
+@@ -218,6 +218,9 @@ ELSE()
+ FILE(RELATIVE_PATH EMBREE_RELATIVE_ROOT_DIR "/${EMBREE_CMAKECONFIG_DIR}" "/")
+ ENDIF()
+ #ENDIF()
++SET(EMBREE_CMAKECONFIG_DIR "share/embree")
++SET(EMBREE_CMAKEEXPORT_DIR "share/embree")
++SET(EMBREE_RELATIVE_ROOT_DIR "../../")
+
+ CONFIGURE_FILE(common/cmake/embree-config.cmake embree-config-install.cmake @ONLY)
+ CONFIGURE_FILE(common/cmake/embree-config-version.cmake embree-config-version.cmake @ONLY)
diff --git a/vcpkg/ports/embree/no-runtime-install.patch b/vcpkg/ports/embree/no-runtime-install.patch
new file mode 100644
index 0000000..cde9c40
--- /dev/null
+++ b/vcpkg/ports/embree/no-runtime-install.patch
@@ -0,0 +1,12 @@
+diff --git a/common/cmake/package.cmake b/common/cmake/package.cmake
+index daa4f49..7cd3775 100644
+--- a/common/cmake/package.cmake
++++ b/common/cmake/package.cmake
+@@ -119,6 +119,7 @@ ENDIF()
+ ##############################################################
+
+ IF (WIN32)
++ELSEIF (0)
+
+ SET(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP TRUE)
+ SET(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS TRUE)
diff --git a/vcpkg/ports/embree/portfile.cmake b/vcpkg/ports/embree/portfile.cmake
new file mode 100755
index 0000000..0a7bcba
--- /dev/null
+++ b/vcpkg/ports/embree/portfile.cmake
@@ -0,0 +1,98 @@
+if(EXISTS "${CURRENT_INSTALLED_DIR}/share/embree/embree-config.cmake")
+ message(FATAL_ERROR "Port embree3 must be removed before installing embree.")
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO RenderKit/embree
+ REF v${VERSION}
+ SHA512 5e77a033192ade6562b50d32c806c6a467580722898ca52ccfe002b51279314055e9c0e6c969651b0d03716d04ab249301340cd2790556a0dbfb8c296e8f0574
+ HEAD_REF master
+ PATCHES
+ avoid-library-conflicts.diff
+ cmake-config.diff
+ no-runtime-install.patch
+)
+
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" static EMBREE_STATIC_LIB)
+string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" static EMBREE_STATIC_RUNTIME)
+
+vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
+ FEATURES
+ backface-culling EMBREE_BACKFACE_CULLING
+ compact-polys EMBREE_COMPACT_POLYS
+ filter-function EMBREE_FILTER_FUNCTION
+ ray-mask EMBREE_RAY_MASK
+ ray-packets EMBREE_RAY_PACKETS
+
+ geometry-triangle EMBREE_GEOMETRY_TRIANGLE
+ geometry-quad EMBREE_GEOMETRY_QUAD
+ geometry-curve EMBREE_GEOMETRY_CURVE
+ geometry-subdivision EMBREE_GEOMETRY_SUBDIVISION
+ geometry-user EMBREE_GEOMETRY_USER
+ geometry-instance EMBREE_GEOMETRY_INSTANCE
+ geometry-grid EMBREE_GEOMETRY_GRID
+ geometry-point EMBREE_GEOMETRY_POINT
+)
+
+if("tasking-tbb" IN_LIST FEATURES)
+ set(EMBREE_TASKING_SYSTEM "TBB")
+ list(APPEND FEATURE_OPTIONS "-DVCPKG_LOCK_FIND_PACKAGE_TBB=ON")
+else()
+ set(EMBREE_TASKING_SYSTEM "INTERNAL")
+endif()
+
+if(VCPKG_TARGET_IS_OSX AND VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ # "Using Embree as static library is not supported with AppleClang >= 9.0
+ # when multiple ISAs are selected."
+ # The port follows linkage and selects a single ISA for static linkage.
+ # Per-port customization may override VCPKG_LIBRARY_LINKAGE or ISA flags.
+ list(APPEND FEATURE_OPTIONS "-DEMBREE_MAX_ISA=NONE")
+ if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
+ list(APPEND FEATURE_OPTIONS
+ -DEMBREE_ISA_SSE2=OFF
+ -DEMBREE_ISA_SSE42=OFF
+ -DCOMPILER_SUPPORTS_AVX=OFF
+ -DEMBREE_ISA_AVX2=ON
+ -DCOMPILER_SUPPORTS_AVX512=OFF
+ )
+ endif()
+endif()
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ DISABLE_PARALLEL_CONFIGURE # in-source CONFIGURE_FILE
+ OPTIONS
+ ${FEATURE_OPTIONS}
+ -DEMBREE_INSTALL_DEPENDENCIES=OFF
+ -DEMBREE_ISPC_SUPPORT=OFF
+ -DEMBREE_STATIC_RUNTIME=${EMBREE_STATIC_RUNTIME}
+ -DEMBREE_STATIC_LIB=${EMBREE_STATIC_LIB}
+ -DEMBREE_TASKING_SYSTEM:STRING=${EMBREE_TASKING_SYSTEM}
+ -DEMBREE_TUTORIALS=OFF
+ MAYBE_UNUSED_VARIABLES
+ EMBREE_STATIC_RUNTIME
+)
+
+vcpkg_cmake_install()
+vcpkg_copy_pdbs()
+vcpkg_cmake_config_fixup()
+
+file(RENAME "${CURRENT_PACKAGES_DIR}/share/doc" "${CURRENT_PACKAGES_DIR}/share/${PORT}/doc")
+file(REMOVE_RECURSE
+ "${CURRENT_PACKAGES_DIR}/debug/embree-vars.csh"
+ "${CURRENT_PACKAGES_DIR}/debug/embree-vars.sh"
+ "${CURRENT_PACKAGES_DIR}/debug/include"
+ "${CURRENT_PACKAGES_DIR}/debug/share"
+ "${CURRENT_PACKAGES_DIR}/embree-vars.csh"
+ "${CURRENT_PACKAGES_DIR}/embree-vars.sh"
+ "${CURRENT_PACKAGES_DIR}/share/man"
+ "${CURRENT_PACKAGES_DIR}/share/${PORT}/doc/LICENSE.txt"
+)
+
+file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
+vcpkg_install_copyright(
+ COMMENT "The embree package contains third-party software which may be governed by
+ separate license terms."
+ FILE_LIST "${SOURCE_PATH}/LICENSE.txt"
+)
diff --git a/vcpkg/ports/embree/usage b/vcpkg/ports/embree/usage
new file mode 100755
index 0000000..4e8607d
--- /dev/null
+++ b/vcpkg/ports/embree/usage
@@ -0,0 +1,4 @@
+embree provides CMake targets:
+
+ find_package(embree CONFIG REQUIRED)
+ target_link_libraries(main PRIVATE embree)
diff --git a/vcpkg/ports/embree/vcpkg.json b/vcpkg/ports/embree/vcpkg.json
new file mode 100644
index 0000000..87e77a6
--- /dev/null
+++ b/vcpkg/ports/embree/vcpkg.json
@@ -0,0 +1,78 @@
+{
+ "name": "embree",
+ "version": "4.4.0",
+ "description": "High Performance Ray Tracing Kernels.",
+ "homepage": "https://github.com/RenderKit/embree",
+ "license": null,
+ "supports": "linux | osx | (windows & !uwp & !arm)",
+ "dependencies": [
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake-config",
+ "host": true
+ }
+ ],
+ "default-features": [
+ "filter-function",
+ "geometry-curve",
+ "geometry-grid",
+ "geometry-instance",
+ "geometry-point",
+ "geometry-quad",
+ "geometry-subdivision",
+ "geometry-triangle",
+ "geometry-user",
+ "ray-packets",
+ "tasking-tbb"
+ ],
+ "features": {
+ "backface-culling": {
+ "description": "Enables backface culling."
+ },
+ "compact-polys": {
+ "description": "Enables double indexed poly layout."
+ },
+ "filter-function": {
+ "description": "Enables filter functions."
+ },
+ "geometry-curve": {
+ "description": "Enables support for curve geometries."
+ },
+ "geometry-grid": {
+ "description": "Enables support for grid geometries."
+ },
+ "geometry-instance": {
+ "description": "Enables support for instances."
+ },
+ "geometry-point": {
+ "description": "Enables support for point geometries."
+ },
+ "geometry-quad": {
+ "description": "Enables support for quad geometries."
+ },
+ "geometry-subdivision": {
+ "description": "Enables support for subdiv geometries."
+ },
+ "geometry-triangle": {
+ "description": "Enables support for triangle geometries."
+ },
+ "geometry-user": {
+ "description": "Enables support for user geometries."
+ },
+ "ray-mask": {
+ "description": "Enables ray mask support."
+ },
+ "ray-packets": {
+ "description": "Enabled support for ray packets."
+ },
+ "tasking-tbb": {
+ "description": "Use oneTBB as task system.",
+ "dependencies": [
+ "tbb"
+ ]
+ }
+ }
+}