diff options
| author | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
|---|---|---|
| committer | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
| commit | 54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch) | |
| tree | d915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/embree | |
Diffstat (limited to 'vcpkg/ports/embree')
| -rw-r--r-- | vcpkg/ports/embree/avoid-library-conflicts.diff | 14 | ||||
| -rw-r--r-- | vcpkg/ports/embree/cmake-config.diff | 38 | ||||
| -rw-r--r-- | vcpkg/ports/embree/no-runtime-install.patch | 12 | ||||
| -rwxr-xr-x | vcpkg/ports/embree/portfile.cmake | 98 | ||||
| -rwxr-xr-x | vcpkg/ports/embree/usage | 4 | ||||
| -rw-r--r-- | vcpkg/ports/embree/vcpkg.json | 78 |
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" + ] + } + } +} |