diff --git a/ports/embree/avoid-library-conflicts.diff b/ports/embree/avoid-library-conflicts.diff new file mode 100644 index 00000000000000..e8ad5dbb812384 --- /dev/null +++ b/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/ports/embree/cmake-config.diff b/ports/embree/cmake-config.diff new file mode 100644 index 00000000000000..55b82c33ed4e5c --- /dev/null +++ b/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/ports/embree/no-runtime-install.patch b/ports/embree/no-runtime-install.patch new file mode 100644 index 00000000000000..cde9c40b2e07cb --- /dev/null +++ b/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/ports/embree/portfile.cmake b/ports/embree/portfile.cmake new file mode 100755 index 00000000000000..0a7bcbabee0e50 --- /dev/null +++ b/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/ports/embree/usage b/ports/embree/usage new file mode 100755 index 00000000000000..4e8607dc8f0d05 --- /dev/null +++ b/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/ports/embree3/vcpkg.json b/ports/embree/vcpkg.json similarity index 91% rename from ports/embree3/vcpkg.json rename to ports/embree/vcpkg.json index 3d03aecbc25d2c..87e77a6ded7278 100644 --- a/ports/embree3/vcpkg.json +++ b/ports/embree/vcpkg.json @@ -1,11 +1,10 @@ { - "name": "embree3", - "version": "3.13.5", - "port-version": 6, + "name": "embree", + "version": "4.4.0", "description": "High Performance Ray Tracing Kernels.", - "homepage": "https://github.com/embree/embree", - "license": "Apache-2.0", - "supports": "!arm | osx", + "homepage": "https://github.com/RenderKit/embree", + "license": null, + "supports": "linux | osx | (windows & !uwp & !arm)", "dependencies": [ { "name": "vcpkg-cmake", diff --git a/ports/embree3/001-downgrade-find-package-tbb-2020.patch b/ports/embree3/001-downgrade-find-package-tbb-2020.patch deleted file mode 100644 index 484008c5f1cd25..00000000000000 --- a/ports/embree3/001-downgrade-find-package-tbb-2020.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/common/tasking/CMakeLists.txt b/common/tasking/CMakeLists.txt -index 2aeb736..3b4d856 100644 ---- a/common/tasking/CMakeLists.txt -+++ b/common/tasking/CMakeLists.txt -@@ -20,7 +20,7 @@ ELSEIF (TASKING_TBB) - TARGET_LINK_LIBRARIES(tasking PUBLIC TBB::${EMBREE_TBB_COMPONENT}) - else() - # Try getting TBB via config first -- find_package(TBB 2021 COMPONENTS ${EMBREE_TBB_COMPONENT} CONFIG ${TBB_FIND_PACKAGE_OPTION}) -+ find_package(TBB COMPONENTS ${EMBREE_TBB_COMPONENT} CONFIG ${TBB_FIND_PACKAGE_OPTION}) - if (TBB_FOUND) - TARGET_LINK_LIBRARIES(tasking PUBLIC TBB::${EMBREE_TBB_COMPONENT}) - message("-- Found TBB: ${TBB_VERSION} at ${TBB_DIR} via TBBConfig.cmake") diff --git a/ports/embree3/avoid-library-conflicts.diff b/ports/embree3/avoid-library-conflicts.diff deleted file mode 100644 index d7c1c6bfcde940..00000000000000 --- a/ports/embree3/avoid-library-conflicts.diff +++ /dev/null @@ -1,32 +0,0 @@ -diff --git a/common/math/CMakeLists.txt b/common/math/CMakeLists.txt -index fcfa455..c5184cd 100644 ---- a/common/math/CMakeLists.txt -+++ b/common/math/CMakeLists.txt -@@ -2,6 +2,11 @@ - ## SPDX-License-Identifier: Apache-2.0 - - ADD_LIBRARY(math STATIC constants.cpp) -+SET_TARGET_PROPERTIES(math PROPERTIES # avoid conflict with vcpkg port openmvs -+ OUTPUT_NAME embree-math -+ ARCHIVE_OUTPUT_NAME embree-math -+ RUNTIME_OUTPUT_NAME embree-math -+) - SET_PROPERTY(TARGET math PROPERTY FOLDER common) - SET_PROPERTY(TARGET math APPEND PROPERTY COMPILE_FLAGS " ${FLAGS_LOWEST}") - -diff --git a/common/simd/CMakeLists.txt b/common/simd/CMakeLists.txt -index 989a00d..043fec2 100644 ---- a/common/simd/CMakeLists.txt -+++ b/common/simd/CMakeLists.txt -@@ -2,6 +2,11 @@ - ## SPDX-License-Identifier: Apache-2.0 - - ADD_LIBRARY(simd STATIC sse.cpp) -+SET_TARGET_PROPERTIES(simd PROPERTIES # avoid conflict with vcpkg port simd -+ OUTPUT_NAME embree-simd -+ ARCHIVE_OUTPUT_NAME embree-simd -+ RUNTIME_OUTPUT_NAME embree-simd -+) - SET_PROPERTY(TARGET simd PROPERTY FOLDER common) - SET_PROPERTY(TARGET simd APPEND PROPERTY COMPILE_FLAGS " ${FLAGS_LOWEST}") - diff --git a/ports/embree3/no-runtime-install.patch b/ports/embree3/no-runtime-install.patch deleted file mode 100644 index 02d44a722a2642..00000000000000 --- a/ports/embree3/no-runtime-install.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/common/cmake/package.cmake b/common/cmake/package.cmake -index 5429436..8c89f5b 100644 ---- a/common/cmake/package.cmake -+++ b/common/cmake/package.cmake -@@ -24,7 +24,7 @@ ENDIF() - # Install MSVC runtime - ############################################################## - --IF (WIN32) -+IF (0) - SET(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP TRUE) - INCLUDE(InstallRequiredSystemLibraries) - LIST(FILTER CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS INCLUDE REGEX ".*msvcp[0-9]+\.dll|.*vcruntime[0-9]+\.dll|.*vcruntime[0-9]+_[0-9]+\.dll") diff --git a/ports/embree3/portfile.cmake b/ports/embree3/portfile.cmake deleted file mode 100755 index 0eab53eeb5aac1..00000000000000 --- a/ports/embree3/portfile.cmake +++ /dev/null @@ -1,125 +0,0 @@ -vcpkg_download_distfile(OPERATOR_FIX - URLS https://github.com/RenderKit/embree/commit/cda4cf1919bb2a748e78915fbd6e421a1056638d.diff?full_index=1 - FILENAME embree3-operator-fix-cda4cf1919bb2a748e78915fbd6e421a1056638d.diff - SHA512 3b8492f136b8616da3c21deea32df0629c48d2e0d9b92d418c04570cb71c4c29e280b63f5447a70479ba3bcef989132ea9ccfa20793f46595554ac04f65fe3bd -) - -vcpkg_from_github( - OUT_SOURCE_PATH SOURCE_PATH - REPO embree/embree - REF v${VERSION} - SHA512 13ae19b1750197fb4887ba601c75d1b54b3c388224672b6561dd922bc9b9747139cf46ce554727e3afa13dcf152ce4d703935cb9105ced792b011f2d05fa3e95 - HEAD_REF master - PATCHES - no-runtime-install.patch - 001-downgrade-find-package-tbb-2020.patch - avoid-library-conflicts.diff - "${OPERATOR_FIX}" -) - -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 -) - -# Automatically select best ISA based on platform or VCPKG_CMAKE_CONFIGURE_OPTIONS. -vcpkg_list(SET EXTRA_OPTIONS) -if(VCPKG_TARGET_IS_EMSCRIPTEN) - # Disable incorrect ISA set for Emscripten and enable NEON which is supported and should provide decent performance. - # cf. [Using SIMD with WebAssembly](https://emscripten.org/docs/porting/simd.html#using-simd-with-webassembly) - vcpkg_list(APPEND EXTRA_OPTIONS - -DEMBREE_MAX_ISA:STRING=NONE - - -DEMBREE_ISA_AVX:BOOL=OFF - -DEMBREE_ISA_AVX2:BOOL=OFF - -DEMBREE_ISA_AVX512:BOOL=OFF - -DEMBREE_ISA_SSE2:BOOL=OFF - -DEMBREE_ISA_SSE42:BOOL=OFF - -DEMBREE_ISA_NEON:BOOL=ON - ) -elseif(VCPKG_TARGET_IS_OSX AND (VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64")) - # The best ISA for Apple arm64 is unique and unambiguous. - vcpkg_list(APPEND EXTRA_OPTIONS - -DEMBREE_MAX_ISA:STRING=NONE - ) -elseif(VCPKG_TARGET_IS_OSX AND (VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") AND (VCPKG_LIBRARY_LINKAGE STREQUAL "static")) - # AppleClang >= 9.0 does not support selecting multiple ISAs. - # Let Embree select the best and unique one. - vcpkg_list(APPEND EXTRA_OPTIONS - -DEMBREE_MAX_ISA:STRING=DEFAULT - ) -else() - # Let Embree select the best ISA set for the targeted platform. - vcpkg_list(APPEND EXTRA_OPTIONS - -DEMBREE_MAX_ISA:STRING=NONE - ) -endif() - -if("tasking-tbb" IN_LIST FEATURES) - set(EMBREE_TASKING_SYSTEM "TBB") -else() - set(EMBREE_TASKING_SYSTEM "INTERNAL") -endif() - -vcpkg_replace_string("${SOURCE_PATH}/common/cmake/installTBB.cmake" "IF (EMBREE_STATIC_LIB)" "IF (0)") - -vcpkg_cmake_configure( - SOURCE_PATH "${SOURCE_PATH}" - DISABLE_PARALLEL_CONFIGURE - OPTIONS ${FEATURE_OPTIONS} ${EXTRA_OPTIONS} - -DEMBREE_ISPC_SUPPORT=OFF - -DEMBREE_TUTORIALS=OFF - -DEMBREE_STATIC_RUNTIME=${EMBREE_STATIC_RUNTIME} - -DEMBREE_STATIC_LIB=${EMBREE_STATIC_LIB} - -DEMBREE_TASKING_SYSTEM:STRING=${EMBREE_TASKING_SYSTEM} - -DEMBREE_INSTALL_DEPENDENCIES=OFF - MAYBE_UNUSED_VARIABLES - EMBREE_STATIC_RUNTIME -) - -vcpkg_cmake_install() -vcpkg_copy_pdbs() -vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/embree-${VERSION} PACKAGE_NAME embree) -set(config_file "${CURRENT_PACKAGES_DIR}/share/embree/embree-config.cmake") -# Fix details in config. -file(READ "${config_file}" contents) -string(REPLACE "SET(EMBREE_BUILD_TYPE Release)" "" contents "${contents}") -string(REPLACE "/../../../" "/../../" contents "${contents}") -string(REPLACE "FIND_PACKAGE" "include(CMakeFindDependencyMacro)\n find_dependency" contents "${contents}") -string(REPLACE "REQUIRED" "COMPONENTS" contents "${contents}") -string(REPLACE "/lib/cmake/embree-${VERSION}" "/share/embree" contents "${contents}") - -if(NOT VCPKG_BUILD_TYPE) - string(REPLACE "/lib/embree3.lib" "$<$:/debug>/lib/embree3.lib" contents "${contents}") -endif() -file(WRITE "${config_file}" "${contents}") - -file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") -file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") - -if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") - file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") -endif() -if(VCPKG_TARGET_IS_OSX OR VCPKG_TARGET_IS_IOS) - file(REMOVE "${CURRENT_PACKAGES_DIR}/uninstall.command" "${CURRENT_PACKAGES_DIR}/debug/uninstall.command") -endif() -file(RENAME "${CURRENT_PACKAGES_DIR}/share/doc" "${CURRENT_PACKAGES_DIR}/share/${PORT}/") - -file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") -vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") diff --git a/ports/embree3/usage b/ports/embree3/usage deleted file mode 100755 index 8622f121d74664..00000000000000 --- a/ports/embree3/usage +++ /dev/null @@ -1,4 +0,0 @@ -The package embree3 provides CMake targets: - - find_package(embree 3 CONFIG REQUIRED) - target_link_libraries(main PRIVATE embree) diff --git a/ports/libigl/dependencies.patch b/ports/libigl/dependencies.patch index 8abd78dabbc8a6..543a85058a4037 100644 --- a/ports/libigl/dependencies.patch +++ b/ports/libigl/dependencies.patch @@ -1,8 +1,8 @@ diff --git a/cmake/igl/modules/copyleft/cgal.cmake b/cmake/igl/modules/copyleft/cgal.cmake -index f6abe8c..7ee7d84 100644 +index f6abe8c..e3aa831 100644 --- a/cmake/igl/modules/copyleft/cgal.cmake +++ b/cmake/igl/modules/copyleft/cgal.cmake -@@ -14,13 +14,12 @@ file(GLOB SRC_FILES "${libigl_SOURCE_DIR}/include/igl/copyleft/cgal/*.cpp") +@@ -14,7 +14,7 @@ file(GLOB SRC_FILES "${libigl_SOURCE_DIR}/include/igl/copyleft/cgal/*.cpp") igl_target_sources(igl_copyleft_cgal ${INC_FILES} ${SRC_FILES}) # 4. Dependencies @@ -11,12 +11,6 @@ index f6abe8c..7ee7d84 100644 igl_include(copyleft core) target_link_libraries(igl_copyleft_cgal ${IGL_SCOPE} igl::core - igl_copyleft::core - CGAL::CGAL -- CGAL::CGAL_Core - ) - - # 5. Unit tests diff --git a/cmake/igl/modules/core.cmake b/cmake/igl/modules/core.cmake index 2aefcd6..137d30b 100644 --- a/cmake/igl/modules/core.cmake @@ -31,41 +25,33 @@ index 2aefcd6..137d30b 100644 target_link_libraries(igl_core ${IGL_SCOPE} Eigen3::Eigen diff --git a/cmake/igl/modules/embree.cmake b/cmake/igl/modules/embree.cmake -index 6f22319..de85066 100644 +index 6f22319..7f333b0 100644 --- a/cmake/igl/modules/embree.cmake +++ b/cmake/igl/modules/embree.cmake -@@ -14,10 +14,10 @@ file(GLOB SRC_FILES "${libigl_SOURCE_DIR}/include/igl/embree/*.cpp") +@@ -14,7 +14,8 @@ file(GLOB SRC_FILES "${libigl_SOURCE_DIR}/include/igl/embree/*.cpp") igl_target_sources(igl_embree ${INC_FILES} ${SRC_FILES}) # 4. Dependencies -include(embree) -+find_package(embree 3 CONFIG REQUIRED) ++find_package(embree CONFIG REQUIRED) ++add_library(embree::embree ALIAS embree) target_link_libraries(igl_embree ${IGL_SCOPE} igl::core -- embree::embree -+ $ - ) - - # 5. Unit tests + embree::embree diff --git a/cmake/igl/modules/glfw.cmake b/cmake/igl/modules/glfw.cmake -index 79c2126..6d06775 100644 +index 79c2126..2da8b0a 100644 --- a/cmake/igl/modules/glfw.cmake +++ b/cmake/igl/modules/glfw.cmake -@@ -14,12 +14,12 @@ file(GLOB SRC_FILES "${libigl_SOURCE_DIR}/include/igl/opengl/glfw/*.cpp") +@@ -14,7 +14,8 @@ file(GLOB SRC_FILES "${libigl_SOURCE_DIR}/include/igl/opengl/glfw/*.cpp") igl_target_sources(igl_glfw ${INC_FILES} ${SRC_FILES}) # 4. Dependencies -include(glfw) +find_package(glfw3 CONFIG REQUIRED) ++add_library(glfw::glfw ALIAS glfw) igl_include(opengl) target_link_libraries(igl_glfw ${IGL_SCOPE} igl::core - igl::opengl -- glfw::glfw -+ $ - ) - - # 5. Unit tests diff --git a/cmake/igl/modules/imgui.cmake b/cmake/igl/modules/imgui.cmake index d7ffb9d..f331854 100644 --- a/cmake/igl/modules/imgui.cmake @@ -100,6 +86,24 @@ index 4580c03..dfadb38 100644 find_package(OpenGL REQUIRED OPTIONAL_COMPONENTS OpenGL) target_link_libraries(igl_opengl ${IGL_SCOPE} igl::core +diff --git a/cmake/igl/modules/stb.cmake b/cmake/igl/modules/stb.cmake +index 20607ec..14db8cf 100644 +--- a/cmake/igl/modules/stb.cmake ++++ b/cmake/igl/modules/stb.cmake +@@ -21,11 +21,11 @@ endif() + igl_target_sources(igl_stb ${INC_FILES} ${SRC_FILES}) + + # 4. Dependencies +-include(stb) ++find_package(Stb REQUIRED) + target_link_libraries(igl_stb ${IGL_SCOPE} + igl::core +- stb::stb + ) ++target_include_directories(igl_stb ${IGL_SCOPE} ${Stb_INCLUDE_DIR}) + + if(LIBIGL_OPENGL) + igl_include(opengl) diff --git a/cmake/igl/modules/xml.cmake b/cmake/igl/modules/xml.cmake index 3763b77..31ab979 100644 --- a/cmake/igl/modules/xml.cmake diff --git a/ports/libigl/imgui-impl.diff b/ports/libigl/imgui-impl.diff new file mode 100644 index 00000000000000..2f7a1ff60da09f --- /dev/null +++ b/ports/libigl/imgui-impl.diff @@ -0,0 +1,44 @@ +diff --git a/include/igl/opengl/glfw/imgui/ImGuiPlugin.cpp b/include/igl/opengl/glfw/imgui/ImGuiPlugin.cpp +index ce5ac08..c240c57 100644 +--- a/include/igl/opengl/glfw/imgui/ImGuiPlugin.cpp ++++ b/include/igl/opengl/glfw/imgui/ImGuiPlugin.cpp +@@ -10,8 +10,8 @@ + #include "ImGuiPlugin.h" + #include "ImGuiHelpers.h" + #include "../../../project.h" +-#include +-#include ++#include ++#include + #include + #include + #include +diff --git a/include/igl/opengl/glfw/imgui/ImGuizmoWidget.cpp b/include/igl/opengl/glfw/imgui/ImGuizmoWidget.cpp +index 61f15b1..ec082de 100644 +--- a/include/igl/opengl/glfw/imgui/ImGuizmoWidget.cpp ++++ b/include/igl/opengl/glfw/imgui/ImGuizmoWidget.cpp +@@ -1,7 +1,7 @@ + #include "ImGuizmoWidget.h" + #include +-#include +-#include ++#include ++#include + #include + #include + +diff --git a/include/igl/opengl/glfw/imgui/SelectionWidget.cpp b/include/igl/opengl/glfw/imgui/SelectionWidget.cpp +index ca1261c..6a363d9 100644 +--- a/include/igl/opengl/glfw/imgui/SelectionWidget.cpp ++++ b/include/igl/opengl/glfw/imgui/SelectionWidget.cpp +@@ -8,8 +8,8 @@ + #include "SelectionWidget.h" + + #include +-#include +-#include ++#include ++#include + #include + #include + #include "../../../PI.h" diff --git a/ports/libigl/install-extra-targets.patch b/ports/libigl/install-extra-targets.patch index 040243382ad6b4..8c6cf7cd24ae85 100644 --- a/ports/libigl/install-extra-targets.patch +++ b/ports/libigl/install-extra-targets.patch @@ -1,129 +1,131 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index 4a98749..bc121a5 100644 +index 498caee..f3ba717 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -166,7 +166,7 @@ if(LIBIGL_INSTALL) +@@ -166,7 +166,11 @@ if(LIBIGL_INSTALL) set(version_config_file "${CMAKE_CURRENT_BINARY_DIR}/LibiglConfigVersion.cmake") set(export_dest_dir "${CMAKE_INSTALL_LIBDIR}/cmake/igl") - foreach(suffix IN ITEMS "") #"_restricted" "_copyleft") -+ foreach(suffix IN ITEMS "" "_copyleft") # "_restricted" ++ get_directory_property(targets BUILDSYSTEM_TARGETS) ++ foreach(suffix IN ITEMS "" "_restricted" "_copyleft") ++ if(NOT targets MATCHES "igl${suffix}") ++ continue() ++ endif() install(EXPORT LibiglTargets${suffix} DESTINATION ${export_dest_dir} NAMESPACE igl${suffix}:: diff --git a/cmake/igl/libigl-config.cmake.in b/cmake/igl/libigl-config.cmake.in -index d3ff19f..60e50c7 100644 +index d3ff19f..df11bf5 100644 --- a/cmake/igl/libigl-config.cmake.in +++ b/cmake/igl/libigl-config.cmake.in -@@ -4,4 +4,27 @@ include(CMakeFindDependencyMacro) +@@ -3,5 +3,30 @@ + include(CMakeFindDependencyMacro) find_dependency(Eigen3 REQUIRED) find_dependency(Threads REQUIRED) - include("${CMAKE_CURRENT_LIST_DIR}/LibiglConfigTargets.cmake") -+if(TARGET igl::igl_embree) -+ find_dependency(embree 3) ++if("@LIBIGL_EMBREE@") ++ find_dependency(embree CONFIG) +endif() -+if(TARGET igl::igl_glfw) ++if("@LIBIGL_GLFW@") + find_dependency(glfw3) +endif() -+if(TARGET igl::igl_imgui) ++if("@LIBIGL_IMGUI@") + find_dependency(imgui) + find_dependency(imguizmo) +endif() -+if(TARGET igl::igl_opengl) ++if("@LIBIGL_OPENGL@") + find_dependency(OpenGL) + find_dependency(glad) +endif() -+if(TARGET igl::igl_xml) ++if("@LIBIGL_XML@") + find_dependency(tinyxml2) +endif() -+ -+include("${CMAKE_CURRENT_LIST_DIR}/LibiglConfigTargets_copyleft.cmake" OPTIONAL) -+if(TARGET igl_copyleft::igl_copyleft_cgal) -+ find_dependency(CGAL) ++if("@LIBIGL_COPYLEFT_CGAL@") ++ # cf. cmake/recipes/external/cgal.cmake ++ set(CGAL_CMAKE_EXACT_NT_BACKEND "BOOST_BACKEND" CACHE STRING "CGAL exact NT backend") ++ set(CGAL_DISABLE_GMP ON CACHE BOOL "Disable GMP") ++ find_dependency(CGAL CONFIG COMPONENTS Core) +endif() + + include("${CMAKE_CURRENT_LIST_DIR}/LibiglConfigTargets.cmake") ++include("${CMAKE_CURRENT_LIST_DIR}/LibiglConfigTargets_copyleft.cmake" OPTIONAL) check_required_components(Libigl) diff --git a/cmake/igl/modules/copyleft/cgal.cmake b/cmake/igl/modules/copyleft/cgal.cmake -index 7ee7d84..d06c6ee 100644 +index e3aa831..371dc7a 100644 --- a/cmake/igl/modules/copyleft/cgal.cmake +++ b/cmake/igl/modules/copyleft/cgal.cmake -@@ -9,7 +9,7 @@ target_include_directories(igl_copyleft_cgal ${IGL_SCOPE} - ) +@@ -10,6 +10,7 @@ target_include_directories(igl_copyleft_cgal ${IGL_SCOPE} # 3. Target sources --file(GLOB INC_FILES "${libigl_SOURCE_DIR}/include/igl/copyleft/cgal/*.h") -+file(GLOB INC_FILES "${libigl_SOURCE_DIR}/include/igl/copyleft/cgal/*.h" "${libigl_SOURCE_DIR}/include/igl/copyleft/cgal/*.hpp") + file(GLOB INC_FILES "${libigl_SOURCE_DIR}/include/igl/copyleft/cgal/*.h") ++list(APPEND INC_FILES "${libigl_SOURCE_DIR}/include/igl/copyleft/cgal/CGAL_includes.hpp") file(GLOB SRC_FILES "${libigl_SOURCE_DIR}/include/igl/copyleft/cgal/*.cpp") igl_target_sources(igl_copyleft_cgal ${INC_FILES} ${SRC_FILES}) -@@ -22,6 +22,8 @@ target_link_libraries(igl_copyleft_cgal ${IGL_SCOPE} - CGAL::CGAL +@@ -28,6 +29,9 @@ target_link_libraries(igl_copyleft_cgal ${IGL_SCOPE} + CGAL::CGAL_Core ) ++# n. Install target & headers +igl_install(igl_copyleft_cgal ${INC_FILES} ${SRC_FILES}) + # 5. Unit tests file(GLOB SRC_FILES "${libigl_SOURCE_DIR}/tests/include/igl/copyleft/boolean/*.cpp" -@@ -31,3 +33,4 @@ igl_add_test(igl_copyleft_cgal ${SRC_FILES}) - if(TARGET test_igl_copyleft_cgal) - igl_copy_dll(test_igl_copyleft_cgal) - endif() -+ diff --git a/cmake/igl/modules/copyleft/core.cmake b/cmake/igl/modules/copyleft/core.cmake -index 8d03a90..aff8241 100644 +index 8d03a90..24eb6e5 100644 --- a/cmake/igl/modules/copyleft/core.cmake +++ b/cmake/igl/modules/copyleft/core.cmake -@@ -17,3 +17,5 @@ igl_target_sources(igl_copyleft_core ${INC_FILES} ${SRC_FILES}) +@@ -17,3 +17,6 @@ igl_target_sources(igl_copyleft_core ${INC_FILES} ${SRC_FILES}) target_link_libraries(igl_copyleft_core ${IGL_SCOPE} igl::core ) + ++# n. Install target & headers +igl_install(igl_copyleft_core ${INC_FILES} ${SRC_FILES}) diff --git a/cmake/igl/modules/core.cmake b/cmake/igl/modules/core.cmake -index 137d30b..597c26b 100644 +index 137d30b..187a3ec 100644 --- a/cmake/igl/modules/core.cmake +++ b/cmake/igl/modules/core.cmake -@@ -12,8 +12,8 @@ target_include_directories(igl_core ${IGL_SCOPE} +@@ -12,7 +12,7 @@ target_include_directories(igl_core ${IGL_SCOPE} ) # 3. Target sources -file(GLOB INC_FILES "${libigl_SOURCE_DIR}/include/igl/*.h") --file(GLOB SRC_FILES "${libigl_SOURCE_DIR}/include/igl/*.cpp") +file(GLOB INC_FILES "${libigl_SOURCE_DIR}/include/igl/*.h" "${libigl_SOURCE_DIR}/include/igl/*.hpp") -+file(GLOB SRC_FILES "${libigl_SOURCE_DIR}/include/igl/*.cpp" "${libigl_SOURCE_DIR}/include/igl/*.c") + file(GLOB SRC_FILES "${libigl_SOURCE_DIR}/include/igl/*.cpp") igl_target_sources(igl_core ${INC_FILES} ${SRC_FILES}) - # 4. Install target & headers diff --git a/cmake/igl/modules/embree.cmake b/cmake/igl/modules/embree.cmake -index de85066..c54949c 100644 +index 7f333b0..5fbabe7 100644 --- a/cmake/igl/modules/embree.cmake +++ b/cmake/igl/modules/embree.cmake -@@ -20,6 +20,8 @@ target_link_libraries(igl_embree ${IGL_SCOPE} - $ +@@ -21,6 +21,9 @@ target_link_libraries(igl_embree ${IGL_SCOPE} + embree::embree ) ++# n. Install target & headers +igl_install(igl_embree ${INC_FILES} ${SRC_FILES}) + # 5. Unit tests file(GLOB SRC_FILES "${libigl_SOURCE_DIR}/tests/include/igl/embree/*.cpp") igl_add_test(igl_embree ${SRC_FILES}) diff --git a/cmake/igl/modules/glfw.cmake b/cmake/igl/modules/glfw.cmake -index 6d06775..7126a23 100644 +index 2da8b0a..853759f 100644 --- a/cmake/igl/modules/glfw.cmake +++ b/cmake/igl/modules/glfw.cmake -@@ -22,6 +22,9 @@ target_link_libraries(igl_glfw ${IGL_SCOPE} - $ +@@ -23,6 +23,9 @@ target_link_libraries(igl_glfw ${IGL_SCOPE} + glfw::glfw ) -+ ++# n. Install target & headers +igl_install(igl_glfw ${INC_FILES} ${SRC_FILES}) + # 5. Unit tests if(LIBIGL_GLFW_TESTS) file(GLOB SRC_FILES "${libigl_SOURCE_DIR}/tests/include/igl/opengl/glfw/*.cpp") diff --git a/cmake/igl/modules/imgui.cmake b/cmake/igl/modules/imgui.cmake -index 6152756..34359c6 100644 +index f331854..37fe9c3 100644 --- a/cmake/igl/modules/imgui.cmake +++ b/cmake/igl/modules/imgui.cmake @@ -23,3 +23,6 @@ target_link_libraries(igl_imgui ${IGL_SCOPE} @@ -131,10 +133,10 @@ index 6152756..34359c6 100644 imguizmo::imguizmo ) + ++# n. Install target & headers +igl_install(igl_imgui ${INC_FILES} ${SRC_FILES}) -+ diff --git a/cmake/igl/modules/opengl.cmake b/cmake/igl/modules/opengl.cmake -index dfadb38..d3deaba 100644 +index dfadb38..89ba687 100644 --- a/cmake/igl/modules/opengl.cmake +++ b/cmake/igl/modules/opengl.cmake @@ -22,3 +22,6 @@ target_link_libraries(igl_opengl ${IGL_SCOPE} @@ -142,29 +144,27 @@ index dfadb38..d3deaba 100644 $,OpenGL::OpenGL,OpenGL::GL> ) + ++# n. Install target & headers +igl_install(igl_opengl ${INC_FILES} ${SRC_FILES}) +diff --git a/cmake/igl/modules/stb.cmake b/cmake/igl/modules/stb.cmake +index 14db8cf..23c5c66 100644 +--- a/cmake/igl/modules/stb.cmake ++++ b/cmake/igl/modules/stb.cmake +@@ -33,3 +33,6 @@ if(LIBIGL_OPENGL) + igl::opengl + ) + endif() + ++# n. Install target & headers ++igl_install(igl_stb ${INC_FILES} ${SRC_FILES}) diff --git a/cmake/igl/modules/xml.cmake b/cmake/igl/modules/xml.cmake -index 31ab979..815ea62 100644 +index 31ab979..20c2139 100644 --- a/cmake/igl/modules/xml.cmake +++ b/cmake/igl/modules/xml.cmake -@@ -19,3 +19,5 @@ target_link_libraries(igl_xml ${IGL_SCOPE} +@@ -19,3 +19,6 @@ target_link_libraries(igl_xml ${IGL_SCOPE} igl::core tinyxml2::tinyxml2 ) + ++# n. Install target & headers +igl_install(igl_xml ${INC_FILES} ${SRC_FILES}) - -diff --git a/cmake/igl/modules/stb.cmake b/cmake/igl/modules/stb.cmake -index 20607ec..5bc3211 100644 ---- a/cmake/igl/modules/stb.cmake -+++ b/cmake/igl/modules/stb.cmake -@@ -21,7 +21,7 @@ endif() - igl_target_sources(igl_stb ${INC_FILES} ${SRC_FILES}) - - # 4. Dependencies --include(stb) -+find_package(Stb REQUIRED) - target_link_libraries(igl_stb ${IGL_SCOPE} - igl::core - stb::stb diff --git a/ports/libigl/instantiations.diff b/ports/libigl/instantiations.diff new file mode 100644 index 00000000000000..1b437462766c4a --- /dev/null +++ b/ports/libigl/instantiations.diff @@ -0,0 +1,176 @@ +diff --git a/include/igl/copyleft/cgal/outer_edge.cpp b/include/igl/copyleft/cgal/outer_edge.cpp +index 06abbea..f9043d1 100644 +--- a/include/igl/copyleft/cgal/outer_edge.cpp ++++ b/include/igl/copyleft/cgal/outer_edge.cpp +@@ -147,11 +147,15 @@ IGL_INLINE void igl::copyleft::cgal::outer_edge( + #include + template void igl::copyleft::cgal::outer_edge, Eigen::Matrix, Eigen::Matrix, std::ptrdiff_t, Eigen::Matrix >(Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, std::ptrdiff_t&, std::ptrdiff_t&, Eigen::PlainObjectBase >&); + template void igl::copyleft::cgal::outer_edge,Eigen::Matrix,Eigen::Matrix,std::ptrdiff_t,Eigen::Matrix >(Eigen::MatrixBase > const&,Eigen::MatrixBase > const&,Eigen::MatrixBase > const&,std::ptrdiff_t&,std::ptrdiff_t&,Eigen::PlainObjectBase >&); ++#if PTRDIFF_MAX != INT_MAX + template void igl::copyleft::cgal::outer_edge,Eigen::Matrix,Eigen::Matrix,std::ptrdiff_t,Eigen::Matrix >(Eigen::MatrixBase > const&,Eigen::MatrixBase > const&,Eigen::MatrixBase > const&,std::ptrdiff_t&,std::ptrdiff_t&,Eigen::PlainObjectBase >&); ++#endif + template void igl::copyleft::cgal::outer_edge,Eigen::Matrix,Eigen::Matrix,std::ptrdiff_t,Eigen::Matrix >(Eigen::MatrixBase > const&,Eigen::MatrixBase > const&,Eigen::MatrixBase > const&,std::ptrdiff_t&,std::ptrdiff_t&,Eigen::PlainObjectBase >&); + template void igl::copyleft::cgal::outer_edge,Eigen::Matrix,Eigen::Matrix,std::ptrdiff_t,Eigen::Matrix >(Eigen::MatrixBase > const&,Eigen::MatrixBase > const&,Eigen::MatrixBase > const&,std::ptrdiff_t&,std::ptrdiff_t&,Eigen::PlainObjectBase >&); + template void igl::copyleft::cgal::outer_edge,Eigen::Matrix,Eigen::Matrix,std::ptrdiff_t,Eigen::Matrix >(Eigen::MatrixBase > const &,Eigen::MatrixBase > const &,Eigen::MatrixBase > const &,std::ptrdiff_t &,std::ptrdiff_t &,Eigen::PlainObjectBase > &); ++#if PTRDIFF_MAX != INT_MAX + template void igl::copyleft::cgal::outer_edge,Eigen::Matrix,Eigen::Matrix,std::ptrdiff_t,Eigen::Matrix >(Eigen::MatrixBase > const&,Eigen::MatrixBase > const&,Eigen::MatrixBase > const&,std::ptrdiff_t&,std::ptrdiff_t&,Eigen::PlainObjectBase >&); ++#endif + + #ifdef WIN32 + template void __cdecl igl::copyleft::cgal::outer_edge,class Eigen::Matrix,class Eigen::Matrix,std::ptrdiff_t,class Eigen::Matrix >(class Eigen::MatrixBase > const &,class Eigen::MatrixBase > const &,class Eigen::MatrixBase > const &,std::ptrdiff_t &,std::ptrdiff_t &,class Eigen::PlainObjectBase > &); +diff --git a/include/igl/copyleft/cgal/outer_facet.cpp b/include/igl/copyleft/cgal/outer_facet.cpp +index 0de3f01..e5348a0 100644 +--- a/include/igl/copyleft/cgal/outer_facet.cpp ++++ b/include/igl/copyleft/cgal/outer_facet.cpp +@@ -154,12 +154,18 @@ IGL_INLINE void igl::copyleft::cgal::outer_facet( + // Explicit template instantiation + // generated by autoexplicit.sh + #include ++#if PTRDIFF_MAX != INT_MAX + template void igl::copyleft::cgal::outer_facet, Eigen::Matrix, Eigen::Matrix, std::ptrdiff_t>(Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, std::ptrdiff_t&, bool&); ++#endif + // generated by autoexplicit.sh + template void igl::copyleft::cgal::outer_facet, Eigen::Matrix, Eigen::Matrix, int>(Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, int&, bool&); ++#if PTRDIFF_MAX != INT_MAX + template void igl::copyleft::cgal::outer_facet, Eigen::Matrix, Eigen::Matrix, Eigen::Index>(Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, Eigen::Index &, bool&); ++#endif + template void igl::copyleft::cgal::outer_facet, Eigen::Matrix, Eigen::Matrix, int>(Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, int&, bool&); ++#if PTRDIFF_MAX != INT_MAX + template void igl::copyleft::cgal::outer_facet, Eigen::Matrix, Eigen::Matrix, Eigen::Index>(Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, Eigen::Index&, bool&); ++#endif + template void igl::copyleft::cgal::outer_facet, Eigen::Matrix, Eigen::Matrix, int>(Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, int&, bool&); + template void igl::copyleft::cgal::outer_facet, Eigen::Matrix, Eigen::Matrix, int>(Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, int&, bool&); + //template void igl::copyleft::cgal::outer_facet, Eigen::Matrix, Eigen::Matrix, int>(Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, int&, bool&); +diff --git a/include/igl/copyleft/cgal/outer_vertex.cpp b/include/igl/copyleft/cgal/outer_vertex.cpp +index d6a02e9..b5d057a 100644 +--- a/include/igl/copyleft/cgal/outer_vertex.cpp ++++ b/include/igl/copyleft/cgal/outer_vertex.cpp +@@ -87,10 +87,14 @@ IGL_INLINE void igl::copyleft::cgal::outer_vertex( + #include + template void igl::copyleft::cgal::outer_vertex, Eigen::Matrix, Eigen::Matrix, std::ptrdiff_t, Eigen::Matrix >(Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, std::ptrdiff_t&, Eigen::PlainObjectBase >&); + template void igl::copyleft::cgal::outer_vertex, Eigen::Matrix, Eigen::Matrix, std::ptrdiff_t, Eigen::Matrix >(Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, std::ptrdiff_t&, Eigen::PlainObjectBase >&); ++#if PTRDIFF_MAX != INT_MAX + template void igl::copyleft::cgal::outer_vertex, Eigen::Matrix, Eigen::Matrix, std::ptrdiff_t, Eigen::Matrix >(Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, std::ptrdiff_t&, Eigen::PlainObjectBase >&); ++#endif + template void igl::copyleft::cgal::outer_vertex, Eigen::Matrix, Eigen::Matrix, std::ptrdiff_t, Eigen::Matrix >(Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, std::ptrdiff_t&, Eigen::PlainObjectBase >&); + template void igl::copyleft::cgal::outer_vertex, Eigen::Matrix, Eigen::Matrix, std::ptrdiff_t, Eigen::Matrix >(Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, std::ptrdiff_t&, Eigen::PlainObjectBase >&); ++#if PTRDIFF_MAX != INT_MAX + template void igl::copyleft::cgal::outer_vertex, Eigen::Matrix, Eigen::Matrix, std::ptrdiff_t, Eigen::Matrix >(Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, std::ptrdiff_t&, Eigen::PlainObjectBase >&); ++#endif + // Linux + template void igl::copyleft::cgal::outer_vertex, Eigen::Matrix, Eigen::Matrix, std::ptrdiff_t, Eigen::Matrix >(Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, std::ptrdiff_t&, Eigen::PlainObjectBase >&); + #ifdef WIN32 +diff --git a/include/igl/copyleft/cgal/remesh_intersections.cpp b/include/igl/copyleft/cgal/remesh_intersections.cpp +index d5a73d9..e4d978a 100644 +--- a/include/igl/copyleft/cgal/remesh_intersections.cpp ++++ b/include/igl/copyleft/cgal/remesh_intersections.cpp +@@ -551,9 +551,13 @@ template void igl::copyleft::cgal::remesh_intersections, Eigen::Matrix, CGAL::Epeck, Eigen::Matrix, Eigen::Matrix, Eigen::Matrix, Eigen::Matrix >(Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, std::vector, std::allocator > > const&, std::map::Index, std::vector::Index, CGAL::Object>, std::allocator::Index, CGAL::Object> > >, std::less::Index>, std::allocator::Index const, std::vector::Index, CGAL::Object>, std::allocator::Index, CGAL::Object> > > > > > const&, bool, bool, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&); + template void igl::copyleft::cgal::remesh_intersections, Eigen::Matrix, CGAL::Epick, Eigen::Matrix, Eigen::Matrix, Eigen::Matrix, Eigen::Matrix >(Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, std::vector, std::allocator > > const&, std::map::Index, std::vector::Index, CGAL::Object>, std::allocator::Index, CGAL::Object> > >, std::less::Index>, std::allocator::Index const, std::vector::Index, CGAL::Object>, std::allocator::Index, CGAL::Object> > > > > > const&, bool, bool, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&); + template void igl::copyleft::cgal::remesh_intersections, Eigen::Matrix, CGAL::Epeck, Eigen::Matrix, Eigen::Matrix, Eigen::Matrix, Eigen::Matrix >(Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, std::vector, std::allocator > > const&, std::map::Index, std::vector::Index, CGAL::Object>, std::allocator::Index, CGAL::Object> > >, std::less::Index>, std::allocator::Index const, std::vector::Index, CGAL::Object>, std::allocator::Index, CGAL::Object> > > > > > const&, bool, bool, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&); ++#if PTRDIFF_MAX != INT_MAX + template void igl::copyleft::cgal::remesh_intersections, Eigen::Matrix, CGAL::Epeck, Eigen::Matrix, Eigen::Matrix, Eigen::Matrix, Eigen::Matrix >(Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, std::vector, std::allocator > > const&, std::map::Index, std::vector::Index, CGAL::Object>, std::allocator::Index, CGAL::Object> > >, std::less::Index>, std::allocator::Index const, std::vector::Index, CGAL::Object>, std::allocator::Index, CGAL::Object> > > > > > const&, bool, bool, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&); ++#endif + template void igl::copyleft::cgal::remesh_intersections, Eigen::Matrix, CGAL::Epick, Eigen::Matrix, Eigen::Matrix, Eigen::Matrix, Eigen::Matrix >(Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, std::vector, std::allocator > > const&, std::map::Index, std::vector::Index, CGAL::Object>, std::allocator::Index, CGAL::Object> > >, std::less::Index>, std::allocator::Index const, std::vector::Index, CGAL::Object>, std::allocator::Index, CGAL::Object> > > > > > const&, bool, bool, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&); ++#if PTRDIFF_MAX != INT_MAX + template void igl::copyleft::cgal::remesh_intersections, Eigen::Matrix, CGAL::Epick, Eigen::Matrix, Eigen::Matrix, Eigen::Matrix, Eigen::Matrix >(Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, std::vector, std::allocator > > const&, std::map::Index, std::vector::Index, CGAL::Object>, std::allocator::Index, CGAL::Object> > >, std::less::Index>, std::allocator::Index const, std::vector::Index, CGAL::Object>, std::allocator::Index, CGAL::Object> > > > > > const&, bool, bool, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&); ++#endif + #ifdef WIN32 + template void igl::copyleft::cgal::remesh_intersections,Eigen::Matrix,CGAL::Epick,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix >(Eigen::MatrixBase >const &,Eigen::MatrixBase > const &,std::vector,std::allocator> > const &,std::map<__int64,std::vector,std::allocator > >,struct std::less<__int64>,std::allocator,std::allocator > > > > > const &,bool,bool,Eigen::PlainObjectBase > &,Eigen::PlainObjectBase > &,Eigen::PlainObjectBase > &,Eigen::PlainObjectBase > &); + template void igl::copyleft::cgal::remesh_intersections,Eigen::Matrix,CGAL::Epick,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix >(Eigen::MatrixBase >const &,Eigen::MatrixBase > const &,std::vector,std::allocator> > const &,std::map<__int64,std::vector,std::allocator > >,struct std::less<__int64>,std::allocator,std::allocator > > > > > const &,bool,bool,Eigen::PlainObjectBase > &,Eigen::PlainObjectBase > &,Eigen::PlainObjectBase > &,Eigen::PlainObjectBase > &); +diff --git a/include/igl/copyleft/cgal/remesh_self_intersections.cpp b/include/igl/copyleft/cgal/remesh_self_intersections.cpp +index 415544f..217b90c 100644 +--- a/include/igl/copyleft/cgal/remesh_self_intersections.cpp ++++ b/include/igl/copyleft/cgal/remesh_self_intersections.cpp +@@ -156,7 +156,9 @@ template void igl::copyleft::cgal::remesh_self_intersections,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix >(Eigen::MatrixBase > const&,Eigen::MatrixBase > const&,igl::copyleft::cgal::RemeshSelfIntersectionsParam const&,Eigen::PlainObjectBase >&,Eigen::PlainObjectBase >&,Eigen::PlainObjectBase >&,Eigen::PlainObjectBase >&,Eigen::PlainObjectBase >&); + template void igl::copyleft::cgal::remesh_self_intersections,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix >(Eigen::MatrixBase > const&,Eigen::MatrixBase > const&,igl::copyleft::cgal::RemeshSelfIntersectionsParam const&,Eigen::PlainObjectBase >&,Eigen::PlainObjectBase >&,Eigen::PlainObjectBase >&,Eigen::PlainObjectBase >&,Eigen::PlainObjectBase >&); + template void igl::copyleft::cgal::remesh_self_intersections,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix >(Eigen::MatrixBase > const&,Eigen::MatrixBase > const&,igl::copyleft::cgal::RemeshSelfIntersectionsParam const&,Eigen::PlainObjectBase >&,Eigen::PlainObjectBase >&,Eigen::PlainObjectBase >&,Eigen::PlainObjectBase >&,Eigen::PlainObjectBase >&); ++#if PTRDIFF_MAX != INT_MAX + template void igl::copyleft::cgal::remesh_self_intersections,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix >(Eigen::MatrixBase > const&,Eigen::MatrixBase > const&,igl::copyleft::cgal::RemeshSelfIntersectionsParam const&,Eigen::PlainObjectBase >&,Eigen::PlainObjectBase >&,Eigen::PlainObjectBase >&,Eigen::PlainObjectBase >&,Eigen::PlainObjectBase >&); ++#endif + template void igl::copyleft::cgal::remesh_self_intersections,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix >(Eigen::MatrixBase > const&,Eigen::MatrixBase > const&,igl::copyleft::cgal::RemeshSelfIntersectionsParam const&,Eigen::PlainObjectBase >&,Eigen::PlainObjectBase >&,Eigen::PlainObjectBase >&,Eigen::PlainObjectBase >&,Eigen::PlainObjectBase >&); + template void igl::copyleft::cgal::remesh_self_intersections,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix >(Eigen::MatrixBase > const&,Eigen::MatrixBase > const&,igl::copyleft::cgal::RemeshSelfIntersectionsParam const&,Eigen::PlainObjectBase >&,Eigen::PlainObjectBase >&,Eigen::PlainObjectBase >&,Eigen::PlainObjectBase >&,Eigen::PlainObjectBase >&); + #endif +diff --git a/include/igl/copyleft/cgal/unique.cpp b/include/igl/copyleft/cgal/unique.cpp +index 9ebf98f..c3c1fa2 100644 +--- a/include/igl/copyleft/cgal/unique.cpp ++++ b/include/igl/copyleft/cgal/unique.cpp +@@ -11,5 +11,5 @@ + #ifdef IGL_STATIC_LIBRARY + #undef IGL_STATIC_LIBRARY + #include "../../unique.cpp" +-template void igl::unique >(std::vector, std::allocator > > const&, std::vector, std::allocator > >&, std::vector >&, std::vector >&); ++template void igl::unique >(std::vector, std::allocator > > const&, std::vector, std::allocator > >&, std::vector >&, std::vector >&); + #endif +diff --git a/include/igl/extract_non_manifold_edge_curves.cpp b/include/igl/extract_non_manifold_edge_curves.cpp +index 6cc4464..87dd952 100644 +--- a/include/igl/extract_non_manifold_edge_curves.cpp ++++ b/include/igl/extract_non_manifold_edge_curves.cpp +@@ -126,5 +126,5 @@ IGL_INLINE void igl::extract_non_manifold_edge_curves( + #ifdef IGL_STATIC_LIBRARY + // Explicit template instantiation + // generated by autoexplicit.sh +-template void igl::extract_non_manifold_edge_curves, Eigen::Matrix, int>(Eigen::MatrixBase> const &, Eigen::MatrixBase> const &, std::vector>, std::allocator>>> const &, std::vector>, std::allocator>>> &); ++template void igl::extract_non_manifold_edge_curves, Eigen::Matrix, int>(Eigen::MatrixBase> const &, Eigen::MatrixBase> const &, std::vector>, std::allocator>>> const &, std::vector>, std::allocator>>> &); + #endif +diff --git a/include/igl/flip_edge.cpp b/include/igl/flip_edge.cpp +index bda85b9..9ecc0d1 100644 +--- a/include/igl/flip_edge.cpp ++++ b/include/igl/flip_edge.cpp +@@ -159,7 +159,7 @@ IGL_INLINE void igl::flip_edge( + #ifdef IGL_STATIC_LIBRARY + // Explicit template instantiation + // generated by autoexplicit.sh +-template void igl::flip_edge, Eigen::Matrix, Eigen::Matrix, Eigen::Matrix, int>(Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&, std::vector >, std::allocator > > >&, unsigned long); ++template void igl::flip_edge, Eigen::Matrix, Eigen::Matrix, Eigen::Matrix, int>(Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&, std::vector >, std::allocator > > >&, const size_t); + template void igl::flip_edge, Eigen::Matrix, Eigen::Matrix, Eigen::Matrix, int>(Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&, std::vector >, std::allocator > > >&, const size_t); + #ifdef WIN32 + template void igl::flip_edge, Eigen::Matrix, Eigen::Matrix, Eigen::Matrix, int>(Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&, std::vector >, std::allocator > > >&, unsigned __int64); +diff --git a/include/igl/knn.cpp b/include/igl/knn.cpp +index 9e0e4f8..321297b 100644 +--- a/include/igl/knn.cpp ++++ b/include/igl/knn.cpp +@@ -138,8 +138,8 @@ namespace igl { + // Explicit template instantiation + // generated by autoexplicit.sh + +-template void igl::knn, Eigen::Matrix, int, Eigen::Matrix, Eigen::Matrix, Eigen::Matrix, Eigen::Matrix >(Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, unsigned long, std::vector >, std::allocator > > > const&, Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, Eigen::PlainObjectBase >&); +-template void igl::knn, int, Eigen::Matrix, Eigen::Matrix, Eigen::Matrix, Eigen::Matrix >(Eigen::MatrixBase > const&, unsigned long, std::vector >, std::allocator > > > const&, Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, Eigen::PlainObjectBase >&); ++template void igl::knn, Eigen::Matrix, int, Eigen::Matrix, Eigen::Matrix, Eigen::Matrix, Eigen::Matrix >(Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, size_t, std::vector >, std::allocator > > > const&, Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, Eigen::PlainObjectBase >&); ++template void igl::knn, int, Eigen::Matrix, Eigen::Matrix, Eigen::Matrix, Eigen::Matrix >(Eigen::MatrixBase > const&, size_t, std::vector >, std::allocator > > > const&, Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, Eigen::PlainObjectBase >&); + #ifdef WIN32 + template void igl::knn,int,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix >(Eigen::MatrixBase > const &,unsigned __int64,std::vector >,std::allocator > > > const &,Eigen::MatrixBase > const &,Eigen::MatrixBase > const &,Eigen::MatrixBase > const &,Eigen::PlainObjectBase > &); + template void igl::knn,Eigen::Matrix,int,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix >(Eigen::MatrixBase > const &,Eigen::MatrixBase > const &,unsigned __int64,std::vector >,std::allocator > > > const &,Eigen::MatrixBase > const &,Eigen::MatrixBase > const &,Eigen::MatrixBase > const &,Eigen::PlainObjectBase > &); +diff --git a/include/igl/slice.cpp b/include/igl/slice.cpp +index 091588c..b823c75 100644 +--- a/include/igl/slice.cpp ++++ b/include/igl/slice.cpp +@@ -217,7 +217,7 @@ template void igl::slice(class std::vector(class std::vector > const &,class std::vector > const &,class std::vector > &); + template void igl::slice<__int64>(class std::vector<__int64,class std::allocator<__int64> > const &,class std::vector > const &,class std::vector<__int64,class std::allocator<__int64> > &); + #endif +-template void igl::slice(std::vector > const&, std::vector > const&, std::vector >&); ++template void igl::slice(std::vector > const&, std::vector > const&, std::vector >&); + template void igl::slice(std::vector > const&, std::vector > const&, std::vector >&); + template void igl::slice(std::vector > const&, std::vector > const&, std::vector >&); + template void igl::slice(std::vector > const&, std::vector > const&, std::vector >&); +diff --git a/include/igl/sparse.cpp b/include/igl/sparse.cpp +index be6b561..8eed7f9 100644 +--- a/include/igl/sparse.cpp ++++ b/include/igl/sparse.cpp +@@ -97,11 +97,11 @@ IGL_INLINE Eigen::SparseMatrix igl::sparse( + #ifdef IGL_STATIC_LIBRARY + // Explicit template instantiation + // generated by autoexplicit.sh +-template void igl::sparse, Eigen::Matrix, Eigen::Matrix, int>(Eigen::Matrix const&, Eigen::Matrix const&, Eigen::Matrix const&, unsigned long, unsigned long, Eigen::SparseMatrix&); ++template void igl::sparse, Eigen::Matrix, Eigen::Matrix, int>(Eigen::Matrix const&, Eigen::Matrix const&, Eigen::Matrix const&, size_t, size_t, Eigen::SparseMatrix&); + // generated by autoexplicit.sh +-template void igl::sparse, -1, 1, true>, Eigen::Block, -1, 1, true>, Eigen::CwiseNullaryOp, Eigen::Matrix >, int>(Eigen::Block, -1, 1, true> const&, Eigen::Block, -1, 1, true> const&, Eigen::CwiseNullaryOp, Eigen::Matrix > const&, unsigned long, unsigned long, Eigen::SparseMatrix&); ++template void igl::sparse, -1, 1, true>, Eigen::Block, -1, 1, true>, Eigen::CwiseNullaryOp, Eigen::Matrix >, int>(Eigen::Block, -1, 1, true> const&, Eigen::Block, -1, 1, true> const&, Eigen::CwiseNullaryOp, Eigen::Matrix > const&, size_t, size_t, Eigen::SparseMatrix&); + // generated by autoexplicit.sh +-template void igl::sparse, -1, 1, true>, Eigen::Block, -1, 1, true>, Eigen::CwiseBinaryOp, Eigen::CwiseNullaryOp, Eigen::Array const> const, Eigen::CwiseBinaryOp, Eigen::CwiseNullaryOp, Eigen::Array const> const, Eigen::CwiseUnaryOp, Eigen::CwiseBinaryOp, Eigen::ArrayWrapper, -1, 1, true> > const, Eigen::ArrayWrapper, -1, 1, true> > const> const> const> const>, int>(Eigen::Block, -1, 1, true> const&, Eigen::Block, -1, 1, true> const&, Eigen::CwiseBinaryOp, Eigen::CwiseNullaryOp, Eigen::Array const> const, Eigen::CwiseBinaryOp, Eigen::CwiseNullaryOp, Eigen::Array const> const, Eigen::CwiseUnaryOp, Eigen::CwiseBinaryOp, Eigen::ArrayWrapper, -1, 1, true> > const, Eigen::ArrayWrapper, -1, 1, true> > const> const> const> const> const&, unsigned long, unsigned long, Eigen::SparseMatrix&); ++template void igl::sparse, -1, 1, true>, Eigen::Block, -1, 1, true>, Eigen::CwiseBinaryOp, Eigen::CwiseNullaryOp, Eigen::Array const> const, Eigen::CwiseBinaryOp, Eigen::CwiseNullaryOp, Eigen::Array const> const, Eigen::CwiseUnaryOp, Eigen::CwiseBinaryOp, Eigen::ArrayWrapper, -1, 1, true> > const, Eigen::ArrayWrapper, -1, 1, true> > const> const> const> const>, int>(Eigen::Block, -1, 1, true> const&, Eigen::Block, -1, 1, true> const&, Eigen::CwiseBinaryOp, Eigen::CwiseNullaryOp, Eigen::Array const> const, Eigen::CwiseBinaryOp, Eigen::CwiseNullaryOp, Eigen::Array const> const, Eigen::CwiseUnaryOp, Eigen::CwiseBinaryOp, Eigen::ArrayWrapper, -1, 1, true> > const, Eigen::ArrayWrapper, -1, 1, true> > const> const> const> const> const&, size_t, size_t, Eigen::SparseMatrix&); + // generated by autoexplicit.sh + #ifndef WIN32 + //template void igl::sparse >, Eigen::MatrixBase >, Eigen::CwiseNullaryOp, Eigen::Array >, bool>(Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, Eigen::CwiseNullaryOp, Eigen::Array > const&, unsigned long, unsigned long, Eigen::SparseMatrix&); diff --git a/ports/libigl/portfile.cmake b/ports/libigl/portfile.cmake index a40892f22d9ff6..4593d9f709ec04 100644 --- a/ports/libigl/portfile.cmake +++ b/ports/libigl/portfile.cmake @@ -1,3 +1,18 @@ +# This triplet option enables building an actual binary library. +# Despite the name (which follows upstream's choice), it respects +# the triplet's library linkage for non-Windows targets. +# Missing symbols - i.e. explicit template instantiations - +# must be added to the implementation files (and upstreamed), +# cf. https://libigl.github.io/static-library/ +if(NOT DEFINED LIBIGL_USE_STATIC_LIBRARY) + set(LIBIGL_USE_STATIC_LIBRARY OFF) +endif() +if(NOT LIBIGL_USE_STATIC_LIBRARY) + set(VCPKG_BUILD_TYPE release) # header-only +elseif(VCPKG_TARGET_IS_WINDOWS) + vcpkg_check_linkage(ONLY_STATIC_LIBRARY) +endif() + vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libigl/libigl @@ -6,67 +21,66 @@ vcpkg_from_github( HEAD_REF master PATCHES dependencies.patch + imgui-impl.diff install-extra-targets.patch + instantiations.diff # Fix size_t and ptrdiff_t issues in 32 bit builds (arm32, x86) ) -file(REMOVE - "${SOURCE_PATH}/cmake/find/FindGMP.cmake" - "${SOURCE_PATH}/cmake/find/FindMPFR.cmake" - "${SOURCE_PATH}/cmake/recipes/external/boost.cmake" - "${SOURCE_PATH}/cmake/recipes/external/catch2.cmake" - "${SOURCE_PATH}/cmake/recipes/external/cgal.cmake" - "${SOURCE_PATH}/cmake/recipes/external/eigen.cmake" - "${SOURCE_PATH}/cmake/recipes/external/embree.cmake" - "${SOURCE_PATH}/cmake/recipes/external/glad.cmake" - "${SOURCE_PATH}/cmake/recipes/external/glfw.cmake" - "${SOURCE_PATH}/cmake/recipes/external/gmp.cmake" - "${SOURCE_PATH}/cmake/recipes/external/gmp_mpfr.cmake" - "${SOURCE_PATH}/cmake/recipes/external/imgui.cmake" - "${SOURCE_PATH}/cmake/recipes/external/imguizmo.cmake" - "${SOURCE_PATH}/cmake/recipes/external/libigl_imgui_fonts.cmake" - "${SOURCE_PATH}/cmake/recipes/external/mpfr.cmake" - "${SOURCE_PATH}/cmake/recipes/external/stb.cmake" - "${SOURCE_PATH}/cmake/recipes/external/tinyxml2.cmake" - "${SOURCE_PATH}/cmake/recipes/external/spectra.cmake" -) +file(REMOVE_RECURSE "${SOURCE_PATH}/cmake/recipes") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES cgal LIBIGL_COPYLEFT_CGAL + copyleft LIBIGL_COPYLEFT_CORE embree LIBIGL_EMBREE glfw LIBIGL_GLFW imgui LIBIGL_IMGUI opengl LIBIGL_OPENGL xml LIBIGL_XML - predicates LIBIGL_PREDICATES - tetgen LIBIGL_COPYLEFT_TETGEN - triangle LIBIGL_RESTRICTED_TRIANGLE ) -set(VCPKG_BUILD_TYPE release) # header-only vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS ${FEATURE_OPTIONS} + -DCMAKE_POLICY_DEFAULT_CMP0167=NEW # boost used by cgal + -DHUNTER_ENABLED=OFF -DLIBIGL_BUILD_TESTS=OFF -DLIBIGL_BUILD_TUTORIALS=OFF -DLIBIGL_INSTALL=ON + -DLIBIGL_USE_STATIC_LIBRARY=${LIBIGL_USE_STATIC_LIBRARY} + # cf. cmake/recipes/external/cgal.cmake + -DCGAL_CMAKE_EXACT_NT_BACKEND=BOOST_BACKEND + -DCGAL_DISABLE_GMP=ON + # Permissive modules + -DLIBIGL_PREDICATES=OFF + -DLIBIGL_SPECTRA=OFF + # Copyleft modules + -DLIBIGL_COPYLEFT_COMISO=OFF + -DLIBIGL_COPYLEFT_TETGEN=OFF + # Restricted modules -DLIBIGL_RESTRICTED_MATLAB=OFF -DLIBIGL_RESTRICTED_MOSEK=OFF - -DLIBIGL_USE_STATIC_LIBRARY=OFF - -DHUNTER_ENABLED=OFF - -DLIBIGL_SPECTRA=OFF - ${ADDITIONAL_OPTIONS} + -DLIBIGL_RESTRICTED_TRIANGLE=OFF + MAYBE_UNUSED_VARIABLES + CGAL_CMAKE_EXACT_NT_BACKEND + CGAL_DISABLE_GMP ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/igl) vcpkg_copy_pdbs() -file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") - -if(NOT LIBIGL_COPYLEFT_CGAL) - vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.MPL2") +if(LIBIGL_USE_STATIC_LIBRARY) + file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") + file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") else() - vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.MPL2" "${SOURCE_PATH}/LICENSE.GPL" COMMENT "GPL for targets in \"igl_copyleft::\" namespace.") + file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") + file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") +endif() + +set(comment "") +if(LIBIGL_COPYLEFT_CORE) + set(comment "GPL-2.0 terms apply to include/igl/copyleft/marching_cubes_tables.h.") endif() +vcpkg_install_copyright(COMMENT "${comment}" FILE_LIST "${SOURCE_PATH}/LICENSE.MPL2") diff --git a/ports/libigl/vcpkg.json b/ports/libigl/vcpkg.json index 582d84cd2e1cd2..57c599949c2399 100644 --- a/ports/libigl/vcpkg.json +++ b/ports/libigl/vcpkg.json @@ -1,9 +1,11 @@ { "name": "libigl", "version": "2.6.0", + "port-version": 1, "description": "libigl is a simple C++ geometry processing library. We have a wide functionality including construction of sparse discrete differential geometry operators and finite-elements matrices such as the cotangent Laplacian and diagonalized mass matrix, simple facet and edge-based topology data structures, mesh-viewing utilities for OpenGL and GLSL, and many core functions for matrix manipulation which make Eigen feel a lot more like MATLAB.", "homepage": "https://github.com/libigl/libigl", - "license": null, + "license": "MPL-2.0", + "supports": "!uwp", "dependencies": [ "eigen3", "stb", @@ -19,18 +21,30 @@ "features": { "cgal": { "description": "Build with cgal", + "supports": "!(x86 & windows & !mingw)", "dependencies": [ { "name": "cgal", "default-features": false + }, + { + "name": "libigl", + "default-features": false, + "features": [ + "copyleft" + ] } ] }, + "copyleft": { + "description": "Build copyleft core module", + "license": "MPL-2.0 AND GPL-2.0" + }, "embree": { "description": "Build with embree", "dependencies": [ { - "name": "embree3", + "name": "embree", "default-features": false } ] diff --git a/scripts/ci.baseline.txt b/scripts/ci.baseline.txt index 138d09a872903f..6ec6dff883e916 100644 --- a/scripts/ci.baseline.txt +++ b/scripts/ci.baseline.txt @@ -1181,6 +1181,19 @@ vcpkg-ci-itk:x64-windows-static-md=pass vcpkg-ci-itk:x64-windows-static=pass vcpkg-ci-itk:x64-windows=pass vcpkg-ci-itk:x86-windows=pass +vcpkg-ci-libigl:arm-neon-android=pass +vcpkg-ci-libigl:arm64-android=pass +vcpkg-ci-libigl:arm64-osx=pass +vcpkg-ci-libigl:arm64-windows-static-md=pass +vcpkg-ci-libigl:arm64-windows=pass +vcpkg-ci-libigl:x64-android=pass +vcpkg-ci-libigl:x64-linux=pass +vcpkg-ci-libigl:x64-osx=pass +vcpkg-ci-libigl:x64-windows-release=pass +vcpkg-ci-libigl:x64-windows-static-md=pass +vcpkg-ci-libigl:x64-windows-static=pass +vcpkg-ci-libigl:x64-windows=pass +vcpkg-ci-libigl:x86-windows=pass vcpkg-ci-llvm:x64-linux=pass vcpkg-ci-llvm:x64-osx=pass vcpkg-ci-llvm:x64-windows-release=pass diff --git a/scripts/ci.feature.baseline.txt b/scripts/ci.feature.baseline.txt index 86031bee89e956..bb5aa4a6b57c56 100644 --- a/scripts/ci.feature.baseline.txt +++ b/scripts/ci.feature.baseline.txt @@ -218,6 +218,7 @@ libgpod:x64-linux=fail # Missing system libraries on linux to run/prepare autoco libgpod:x64-osx=fail libgxps:x64-windows-static-md=fail libgxps:x64-windows-static=fail +libigl[opengl](android)=feature-fails libirecovery:x64-windows-static-md=fail libjxl:arm-uwp=skip # 120 min build time for libjxl arm-uwp-rel, reason unknown liblemon:arm-uwp=fail @@ -604,6 +605,7 @@ zyre:x64-windows-static-md=fail # testing all features would be too slow: aws-sdk-cpp[access-management,accessanalyzer,account,acm,acm-pca,alexaforbusiness,amp,amplify,amplifybackend,amplifyuibuilder,apigateway,apigatewaymanagementapi,apigatewayv2,appconfig,appconfigdata,appfabric,appflow,appintegrations,application-autoscaling,application-insights,applicationcostprofiler,appmesh,apprunner,appstream,appsync,arc-zonal-shift,athena,auditmanager,autoscaling,autoscaling-plans,awsmigrationhub,awstransfer,backup,backup-gateway,backupstorage,batch,billingconductor,braket,budgets,ce,chime,chime-sdk-identity,chime-sdk-media-pipelines,chime-sdk-meetings,chime-sdk-messaging,chime-sdk-voice,cleanrooms,cloud9,cloudcontrol,clouddirectory,cloudformation,cloudfront,cloudhsm,cloudhsmv2,cloudsearch,cloudsearchdomain,cloudtrail,cloudtrail-data,codeartifact,codebuild,codecatalyst,codecommit,codedeploy,codeguru-reviewer,codeguru-security,codeguruprofiler,codepipeline,codestar,codestar-connections,codestar-notifications,cognito-identity,cognito-idp,cognito-sync,comprehend,comprehendmedical,compute-optimizer,config,connect,connect-contact-lens,connectcampaigns,connectcases,connectparticipant,controltower,cur,customer-profiles,databrew,dataexchange,datapipeline,datasync,dax,detective,devicefarm,devops-guru,directconnect,discovery,dlm,dms,docdb,docdb-elastic,drs,ds,dynamodb,dynamodbstreams,ebs,ec2,ec2-instance-connect,ecr,ecr-public,ecs,eks,elastic-inference,elasticache,elasticbeanstalk,elasticfilesystem,elasticloadbalancing,elasticloadbalancingv2,elasticmapreduce,elastictranscoder,email,emr-containers,emr-serverless,entityresolution,es,eventbridge,events,evidently,finspace,finspace-data,firehose,fis,fms,forecast,forecastquery,frauddetector,fsx,gamelift,gamesparks,glacier,globalaccelerator,glue,grafana,greengrass,greengrassv2,groundstation,guardduty,health,healthlake,honeycode,iam,identity-management,identitystore,imagebuilder,importexport,inspector,inspector2,internetmonitor,iot,iot-data,iot-jobs-data,iot-roborunner,iot1click-devices,iot1click-projects,iotanalytics,iotdeviceadvisor,iotevents,iotevents-data,iotfleethub,iotfleetwise,iotsecuretunneling,iotsitewise,iotthingsgraph,iottwinmaker,iotwireless,ivs,ivs-realtime,ivschat,kafka,kafkaconnect,kendra,kendra-ranking,keyspaces,kinesis,kinesis-video-archived-media,kinesis-video-media,kinesis-video-signaling,kinesis-video-webrtc-storage,kinesisanalytics,kinesisanalyticsv2,kinesisvideo,kms,lakeformation,lambda,lex,lex-models,lexv2-models,lexv2-runtime,license-manager,license-manager-linux-subscriptions,license-manager-user-subscriptions,lightsail,location,logs,lookoutequipment,lookoutmetrics,lookoutvision,m2,machinelearning,macie,macie2,managedblockchain,managedblockchain-query,marketplace-catalog,marketplace-entitlement,marketplacecommerceanalytics,mediaconnect,mediaconvert,medialive,mediapackage,mediapackage-vod,mediapackagev2,mediastore,mediastore-data,mediatailor,medical-imaging,memorydb,meteringmarketplace,mgn,migration-hub-refactor-spaces,migrationhub-config,migrationhuborchestrator,migrationhubstrategy,mobile,monitoring,mq,mturk-requester,mwaa,neptune,neptunedata,network-firewall,networkmanager,nimble,oam,omics,opensearch,opensearchserverless,opsworks,opsworkscm,organizations,osis,outposts,panorama,payment-cryptography,payment-cryptography-data,pca-connector-ad,personalize,personalize-events,personalize-runtime,pi,pinpoint,pinpoint-email,pinpoint-sms-voice-v2,pipes,polly,pricing,privatenetworks,proton,qldb,qldb-session,queues,quicksight,ram,rbin,rds,rds-data,redshift,redshift-data,redshift-serverless,rekognition,resiliencehub,resource-explorer-2,resource-groups,resourcegroupstaggingapi,robomaker,rolesanywhere,route53,route53-recovery-cluster,route53-recovery-control-config,route53-recovery-readiness,route53domains,route53resolver,rum,s3,s3-crt,s3-encryption,s3control,s3outposts,sagemaker,sagemaker-a2i-runtime,sagemaker-edge,sagemaker-featurestore-runtime,sagemaker-geospatial,sagemaker-metrics,sagemaker-runtime,savingsplans,scheduler,schemas,sdb,secretsmanager,securityhub,securitylake,serverlessrepo,service-quotas,servicecatalog,servicecatalog-appregistry,servicediscovery,sesv2,shield,signer,simspaceweaver,sms,sms-voice,snow-device-management,snowball,sns,sqs,ssm,ssm-contacts,ssm-incidents,ssm-sap,sso,sso-admin,sso-oidc,states,storagegateway,sts,support,support-app,swf,synthetics,text-to-speech,textract,timestream-query,timestream-write,tnb,transcribe,transcribestreaming,transfer,translate,verifiedpermissions,voice-id,vpc-lattice,waf,waf-regional,wafv2,wellarchitected,wisdom,workdocs,worklink,workmail,workmailmessageflow,workspaces,workspaces-web,xray] = no-separate-feature-test +embree[backface-culling,compact-polys,filter-function,geometry-curve,geometry-grid,geometry-instance,geometry-point,geometry-quad,geometry-subdivision,geometry-triangle,geometry-user,ray-mask,ray-packets] = no-separate-feature-test gdal[aws-ec2-windows,curl,expat,geos,gif,iconv,jpeg,lerc,libkml,libspatialite,libxml2,lzma,openjpeg,openssl,pcre2,png,qhull,sqlite3,webp,zstd] = no-separate-feature-test google-cloud-cpp[accessapproval,accesscontextmanager,advisorynotifications,alloydb,apigateway,apigeeconnect,apikeys,appengine,artifactregistry,asset,assuredworkloads,automl,baremetalsolution,batch,beyondcorp,bigquery,bigtable,billing,binaryauthorization,certificatemanager,channel,cloudbuild,commerce,composer,confidentialcomputing,connectors,contactcenterinsights,container,containeranalysis,datacatalog,datafusion,datamigration,dataplex,dataproc,datastore,datastream,debugger,deploy,dialogflow-cx,dialogflow-es,discoveryengine,dlp,documentai,edgecontainer,eventarc,experimental-opentelemetry,experimental-storage-grpc,filestore,functions,gameservices,gkehub,gkemulticloud,grafeas,iam,iap,ids,iot,kms,language,logging,managedidentities,memcache,metastore,migrationcenter,monitoring,networkconnectivity,networkmanagement,networksecurity,notebooks,optimization,orgpolicy,osconfig,oslogin,policysimulator,policytroubleshooter,privateca,profiler,pubsub,rapidmigrationassessment,recommender,redis,resourcemanager,resourcesettings,retail,run,scheduler,secretmanager,securitycenter,servicecontrol,servicedirectory,servicemanagement,serviceusage,shell,spanner,speech,storage,storageinsights,storagetransfer,support,talent,tasks,texttospeech,tpu,trace,translate,video,videointelligence,vision,vmmigration,vmwareengine,vpcaccess,webrisk,websecurityscanner,workflows,workstations] = no-separate-feature-test halide[target-aarch64,target-all,target-amdgpu,target-arm,target-d3d12compute,target-hexagon,target-metal,target-nvptx,target-opencl,target-opengl-compute,target-powerpc,target-riscv,target-webassembly,target-x86] = no-separate-feature-test @@ -801,8 +803,6 @@ ecal:x64-uwp = cascade egl:x64-uwp = cascade elements:arm64-uwp = cascade elements:x64-uwp = cascade -embree3:x64-uwp = fail -embree3[tasking-tbb]:x64-uwp = cascade etcd-cpp-apiv3:arm64-uwp = cascade etcd-cpp-apiv3:x64-uwp = cascade evpp:arm64-uwp = cascade @@ -2108,7 +2108,6 @@ dcmtk(android) = fail # try_run dcmtk(uwp) = fail # Please set the C++ runtime location (required for running applications targeting Windows). See https://github.com/microsoft/vcpkg/issues/35112 dmlc[openmp](osx) = feature-fails # No openmp on osx dv-processing[tools](osx) = feature-fails # Broke with compiler version. See https://github.com/microsoft/vcpkg/issues/39852 -embree3[core,avx,avx2,avx512,default-features,sse2,sse42](osx) = combination-fails # CMake Error at CMakeLists.txt:447 (MESSAGE): Using Embree as static library is not supported with AppleClang >= 9.0 when multiple ISAs are selected. Please either build a shared library or enable only one ISA. ffmpeg[all,all-gpl](x64 & android) = feature-fails ffmpeg[nvcodec,ffplay,opengl](android) = feature-fails fftw3[openmp](osx) = feature-fails # waits for https://github.com/microsoft/vcpkg/pull/30833 diff --git a/scripts/test_ports/vcpkg-ci-libigl/portfile.cmake b/scripts/test_ports/vcpkg-ci-libigl/portfile.cmake new file mode 100644 index 00000000000000..cf5bbb5a5b68ed --- /dev/null +++ b/scripts/test_ports/vcpkg-ci-libigl/portfile.cmake @@ -0,0 +1,17 @@ +set(VCPKG_POLICY_EMPTY_PACKAGE enabled) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO libigl/libigl + REF v2.6.0 + SHA512 7c6ae5b94020a01df5d6d0a358592293595d8d8bf04bf42e6acc09bcd6ed012071069373a71ed6f24ce878aa79447dd189b42bc8a3a70819ef05dccc60a2cf68 + HEAD_REF master +) + +vcpkg_cmake_configure( + SOURCE_PATH "${CURRENT_PORT_DIR}/project" + OPTIONS + "-DSOURCE_PATH=${SOURCE_PATH}" + "-DFEATURES=${FEATURES}" +) +vcpkg_cmake_build() diff --git a/scripts/test_ports/vcpkg-ci-libigl/project/CMakeLists.txt b/scripts/test_ports/vcpkg-ci-libigl/project/CMakeLists.txt new file mode 100644 index 00000000000000..e3b185128dafbd --- /dev/null +++ b/scripts/test_ports/vcpkg-ci-libigl/project/CMakeLists.txt @@ -0,0 +1,47 @@ +cmake_minimum_required(VERSION 3.16) +project(libigl-test C CXX) + +set(CMAKE_CXX_STANDARD 11) + +add_definitions("-DTUTORIAL_SHARED_PATH=\"${SOURCE_PATH}/placeholder\"") + +find_package(libigl CONFIG REQUIRED) + +# Other than in the upstream build ("${SOURCE_PATH}/tutorial/CMakeLists.txt"), +# the imported targets use a different prefix, e.g. +# igl::glfw -> igl::igl_glfw +# igl_copyleft::cgal -> igl_copyleft::igl_copyleft_cgal + +add_executable(101_FileIO "${SOURCE_PATH}/tutorial/101_FileIO/main.cpp") +target_link_libraries(101_FileIO PRIVATE igl::igl_core) + +if("cgal" IN_LIST FEATURES) + add_executable(609_Boolean "${SOURCE_PATH}/tutorial/609_Boolean/main.cpp") + target_link_libraries(609_Boolean PRIVATE igl::igl_glfw igl_copyleft::igl_copyleft_cgal) +endif() + +if("embree" IN_LIST FEATURES) + add_executable(706_FacetOrientation "${SOURCE_PATH}/tutorial/706_FacetOrientation/main.cpp") + target_link_libraries(706_FacetOrientation PRIVATE igl::igl_glfw igl::igl_embree) +endif() + +if("glfw" IN_LIST FEATURES) + add_executable(102_DrawMesh "${SOURCE_PATH}/tutorial/102_DrawMesh/main.cpp") + target_link_libraries(102_DrawMesh PRIVATE igl::igl_glfw) + + add_executable(111_MatCap "${SOURCE_PATH}/tutorial/111_MatCap/main.cpp" "${CMAKE_CURRENT_LIST_DIR}/stb_image_implementation.c") + target_link_libraries(111_MatCap PRIVATE igl::igl_glfw igl::igl_stb) +endif() + +if("imgui" IN_LIST FEATURES) + add_executable(109_ImGuizmo "${SOURCE_PATH}/tutorial/109_ImGuizmo/main.cpp") + target_link_libraries(109_ImGuizmo PRIVATE igl::igl_imgui) + + add_executable(113_Shadows "${SOURCE_PATH}/tutorial/113_Shadows/main.cpp" "${CMAKE_CURRENT_LIST_DIR}/stb_image_implementation.c") + target_link_libraries(113_Shadows PRIVATE igl::igl_imgui igl::igl_stb) +endif() + +if("xml" IN_LIST FEATURES) + add_executable(601_Serialization "${SOURCE_PATH}/tutorial/601_Serialization/main.cpp") + target_link_libraries(601_Serialization PRIVATE igl::igl_xml) +endif() diff --git a/scripts/test_ports/vcpkg-ci-libigl/project/stb_image_implementation.c b/scripts/test_ports/vcpkg-ci-libigl/project/stb_image_implementation.c new file mode 100644 index 00000000000000..917728838259e4 --- /dev/null +++ b/scripts/test_ports/vcpkg-ci-libigl/project/stb_image_implementation.c @@ -0,0 +1,2 @@ +#define STB_IMAGE_IMPLEMENTATION +#include diff --git a/scripts/test_ports/vcpkg-ci-libigl/vcpkg.json b/scripts/test_ports/vcpkg-ci-libigl/vcpkg.json new file mode 100644 index 00000000000000..d288886c0e5009 --- /dev/null +++ b/scripts/test_ports/vcpkg-ci-libigl/vcpkg.json @@ -0,0 +1,100 @@ +{ + "name": "vcpkg-ci-libigl", + "version-string": "ci", + "description": "Port to force features of libigl within CI", + "homepage": "https://github.com/microsoft/vcpkg", + "license": "MIT", + "dependencies": [ + { + "name": "libigl", + "default-features": false + }, + { + "name": "vcpkg-cmake", + "host": true + } + ], + "default-features": [ + { + "name": "cgal", + "platform": "!android & !(x86 & windows)" + }, + { + "name": "embree", + "platform": "linux | osx | (windows & !uwp & !arm)" + }, + { + "name": "glfw", + "platform": "!android" + }, + { + "name": "imgui", + "platform": "!android" + }, + "xml" + ], + "features": { + "cgal": { + "description": "libigl[cgal]", + "dependencies": [ + { + "name": "libigl", + "default-features": false, + "features": [ + "cgal", + "glfw" + ] + } + ] + }, + "embree": { + "description": "libigl[embree]", + "dependencies": [ + { + "name": "libigl", + "default-features": false, + "features": [ + "embree", + "glfw" + ] + } + ] + }, + "glfw": { + "description": "libigl[glfw] and stb", + "dependencies": [ + { + "name": "libigl", + "default-features": false, + "features": [ + "glfw" + ] + } + ] + }, + "imgui": { + "description": "libigl[imgui] and stb", + "dependencies": [ + { + "name": "libigl", + "default-features": false, + "features": [ + "imgui" + ] + } + ] + }, + "xml": { + "description": "libigl[xml]", + "dependencies": [ + { + "name": "libigl", + "default-features": false, + "features": [ + "xml" + ] + } + ] + } + } +} diff --git a/versions/baseline.json b/versions/baseline.json index 3afebf175511b8..a7e723223867f1 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -2708,9 +2708,9 @@ "baseline": "0.3.0-beta.4", "port-version": 0 }, - "embree3": { - "baseline": "3.13.5", - "port-version": 6 + "embree": { + "baseline": "4.4.0", + "port-version": 0 }, "enchantum": { "baseline": "0.3.0", @@ -4990,7 +4990,7 @@ }, "libigl": { "baseline": "2.6.0", - "port-version": 0 + "port-version": 1 }, "libilbc": { "baseline": "3.0.4", diff --git a/versions/e-/embree.json b/versions/e-/embree.json new file mode 100644 index 00000000000000..7c9b8ffde79d03 --- /dev/null +++ b/versions/e-/embree.json @@ -0,0 +1,9 @@ +{ + "versions": [ + { + "git-tree": "b9551ed23e8d3b213337a4128c234e47cf11363e", + "version": "4.4.0", + "port-version": 0 + } + ] +} diff --git a/versions/l-/libigl.json b/versions/l-/libigl.json index 41e8a3d853a97f..e8649f4dbc7874 100644 --- a/versions/l-/libigl.json +++ b/versions/l-/libigl.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "a7399f1d2c70c963c6cc0a92e4ac592d3e4b1ba6", + "version": "2.6.0", + "port-version": 1 + }, { "git-tree": "3b47fec68bb327d7372d5a8d2c5418482fc60fdf", "version": "2.6.0",