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/openvdb | |
Diffstat (limited to 'vcpkg/ports/openvdb')
| -rw-r--r-- | vcpkg/ports/openvdb/fix_cmake.patch | 136 | ||||
| -rw-r--r-- | vcpkg/ports/openvdb/portfile.cmake | 83 | ||||
| -rw-r--r-- | vcpkg/ports/openvdb/usage | 4 | ||||
| -rw-r--r-- | vcpkg/ports/openvdb/vcpkg-cmake-wrapper.cmake.in | 12 | ||||
| -rw-r--r-- | vcpkg/ports/openvdb/vcpkg.json | 66 |
5 files changed, 301 insertions, 0 deletions
diff --git a/vcpkg/ports/openvdb/fix_cmake.patch b/vcpkg/ports/openvdb/fix_cmake.patch new file mode 100644 index 0000000..4b05066 --- /dev/null +++ b/vcpkg/ports/openvdb/fix_cmake.patch @@ -0,0 +1,136 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 34df130..70351ef 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -311,12 +311,9 @@ endif() + + if(OPENVDB_INSTALL_CMAKE_MODULES) + set(OPENVDB_CMAKE_MODULES +- cmake/FindBlosc.cmake + cmake/FindJemalloc.cmake + cmake/FindLog4cplus.cmake +- cmake/FindOpenEXR.cmake + cmake/FindOpenVDB.cmake +- cmake/FindTBB.cmake + cmake/OpenVDBGLFW3Setup.cmake + cmake/OpenVDBHoudiniSetup.cmake + cmake/OpenVDBMayaSetup.cmake +diff --git a/cmake/FindOpenVDB.cmake b/cmake/FindOpenVDB.cmake +index 33b0838..c1e9d00 100644 +--- a/cmake/FindOpenVDB.cmake ++++ b/cmake/FindOpenVDB.cmake +@@ -488,7 +488,7 @@ endif() + + # Add standard dependencies + +-find_package(TBB REQUIRED COMPONENTS tbb) ++find_package(TBB CONFIG REQUIRED) + + # Add deps for pyopenvdb + +@@ -613,7 +613,7 @@ elseif(NOT OPENVDB_USE_STATIC_LIBS) + endif() + + if(OpenVDB_USES_BLOSC) +- find_package(Blosc REQUIRED) ++ find_package(blosc CONFIG REQUIRED) + endif() + + if(OpenVDB_USES_ZLIB) +@@ -670,7 +670,7 @@ set(_OPENVDB_HIDDEN_DEPENDENCIES) + + if(NOT OPENVDB_USE_STATIC_LIBS) + if(OpenVDB_USES_BLOSC) +- list(APPEND _OPENVDB_HIDDEN_DEPENDENCIES Blosc::blosc) ++ list(APPEND _OPENVDB_HIDDEN_DEPENDENCIES blosc) + endif() + if(OpenVDB_USES_ZLIB) + list(APPEND _OPENVDB_HIDDEN_DEPENDENCIES ZLIB::ZLIB) +diff --git a/nanovdb/nanovdb/CMakeLists.txt b/nanovdb/nanovdb/CMakeLists.txt +index 4e0284e..ca3449b 100644 +--- a/nanovdb/nanovdb/CMakeLists.txt ++++ b/nanovdb/nanovdb/CMakeLists.txt +@@ -122,15 +122,15 @@ if(NANOVDB_USE_OPENVDB) + endif() + + if(NANOVDB_USE_TBB AND NOT TARGET TBB::tbb) +- find_package(TBB ${MINIMUM_TBB_VERSION} REQUIRED) ++ find_package(TBB CONFIG REQUIRED) + endif() + + if(NANOVDB_USE_BLOSC AND NOT TARGET Blosc::blosc) +- find_package(Blosc ${MINIMUM_BLOSC_VERSION} REQUIRED) ++ find_package(blosc CONFIG REQUIRED) + endif() + + if(NANOVDB_USE_ZLIB AND NOT TARGET ZLIB::ZLIB) +- find_package(ZLIB ${MINIMUM_ZLIB_VERSION} REQUIRED) ++ find_package(ZLIB REQUIRED) + endif() + + if(NANOVDB_USE_MAGICAVOXEL) +@@ -290,7 +290,7 @@ if(NANOVDB_USE_TBB) + endif() + + if(NANOVDB_USE_BLOSC) +- target_link_libraries(nanovdb INTERFACE Blosc::blosc) ++ target_link_libraries(nanovdb INTERFACE $<IF:$<TARGET_EXISTS:blosc_shared>,blosc_shared,blosc_static>) + target_compile_definitions(nanovdb INTERFACE -DNANOVDB_USE_BLOSC) + endif() + +diff --git a/openvdb/openvdb/CMakeLists.txt b/openvdb/openvdb/CMakeLists.txt +index 3db0e4e..9475709 100644 +--- a/openvdb/openvdb/CMakeLists.txt ++++ b/openvdb/openvdb/CMakeLists.txt +@@ -121,7 +121,7 @@ if(OPENVDB_USE_DELAYED_LOADING) + endif() + endif() + +-find_package(TBB ${MINIMUM_TBB_VERSION} REQUIRED COMPONENTS tbb) ++find_package(TBB CONFIG REQUIRED) + if(OPENVDB_FUTURE_DEPRECATION AND FUTURE_MINIMUM_TBB_VERSION) + if(${TBB_VERSION} VERSION_LESS FUTURE_MINIMUM_TBB_VERSION) + message(DEPRECATION "Support for TBB versions < ${FUTURE_MINIMUM_TBB_VERSION} " +@@ -150,6 +150,7 @@ endif() + + if(USE_BLOSC) + # Find Blosc libraries ++ if(0) + find_package(Blosc ${MINIMUM_BLOSC_VERSION} REQUIRED) + if(Blosc_VERSION) + if(OPENVDB_FUTURE_DEPRECATION AND FUTURE_MINIMUM_BLOSC_VERSION) +@@ -170,6 +171,8 @@ if(USE_BLOSC) + "strongly recommend using the new future minimum version '${FUTURE_MINIMUM_BLOSC_VERSION}'") + endif() + endif() ++ endif() ++ find_package(blosc CONFIG REQUIRED) + else() + message(WARNING "Blosc support is disabled. It is strongly recommended to " + "enable blosc for optimal builds of OpenVDB and to support compatible " +@@ -226,7 +229,11 @@ endif() + # /usr/local + + if(USE_BLOSC) +- list(APPEND OPENVDB_CORE_DEPENDENT_LIBS Blosc::blosc) ++ if(BUILD_SHARED_LIBS) ++ list(APPEND OPENVDB_CORE_DEPENDENT_LIBS blosc_shared) ++ else() ++ list(APPEND OPENVDB_CORE_DEPENDENT_LIBS blosc_static) ++ endif() + endif() + + if(USE_BLOSC OR USE_ZLIB) +diff --git a/openvdb_cmd/CMakeLists.txt b/openvdb_cmd/CMakeLists.txt +index edbb1a4..463d3ed 100644 +--- a/openvdb_cmd/CMakeLists.txt ++++ b/openvdb_cmd/CMakeLists.txt +@@ -53,7 +53,7 @@ if(CONCURRENT_MALLOC STREQUAL "Jemalloc") + find_package(Jemalloc REQUIRED) + list(APPEND OPENVDB_BINARIES_DEPENDENT_LIBS Jemalloc::jemalloc) + elseif(CONCURRENT_MALLOC STREQUAL "Tbbmalloc") +- find_package(TBB ${MINIMUM_TBB_VERSION} REQUIRED COMPONENTS tbbmalloc) ++ find_package(TBB CONFIG REQUIRED) + list(APPEND OPENVDB_BINARIES_DEPENDENT_LIBS TBB::tbbmalloc) + endif() + diff --git a/vcpkg/ports/openvdb/portfile.cmake b/vcpkg/ports/openvdb/portfile.cmake new file mode 100644 index 0000000..58f0d0e --- /dev/null +++ b/vcpkg/ports/openvdb/portfile.cmake @@ -0,0 +1,83 @@ +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO AcademySoftwareFoundation/openvdb + REF "v${VERSION}" + SHA512 67b859bf77c53e68116faa7915bb6a5a50a8cff10435762890e13348625e8aebdb6661b722017632471648afe31e2f9d4cd2e18456c728192bfd0accd70a40ef + PATCHES + fix_cmake.patch +) + +file(REMOVE "${SOURCE_PATH}/cmake/FindTBB.cmake") +file(REMOVE "${SOURCE_PATH}/cmake/FindIlmBase.cmake") +file(REMOVE "${SOURCE_PATH}/cmake/FindBlosc.cmake") +file(REMOVE "${SOURCE_PATH}/cmake/FindOpenEXR.cmake") + +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" OPENVDB_STATIC) +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" OPENVDB_SHARED) + +vcpkg_check_features( + OUT_FEATURE_OPTIONS FEATURE_OPTIONS + FEATURES + "tools" OPENVDB_BUILD_TOOLS + "ax" OPENVDB_BUILD_AX + "nanovdb" OPENVDB_BUILD_NANOVDB + "nanovdb-tools" NANOVDB_BUILD_TOOLS +) + +if (OPENVDB_BUILD_NANOVDB) + set(NANOVDB_OPTIONS + -DNANOVDB_USE_INTRINSICS=ON + -DNANOVDB_USE_CUDA=ON + -DNANOVDB_CUDA_KEEP_PTX=ON + -DNANOVDB_USE_OPENVDB=ON + ) + vcpkg_find_cuda(OUT_CUDA_TOOLKIT_ROOT cuda_toolkit_root) + list(APPEND FEATURE_OPTIONS + "-DCMAKE_CUDA_COMPILER=${NVCC}" + "-DCUDAToolkit_ROOT=${cuda_toolkit_root}" + ) +endif() + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + -DOPENVDB_BUILD_UNITTESTS=OFF + -DOPENVDB_BUILD_PYTHON_MODULE=OFF + -DOPENVDB_3_ABI_COMPATIBLE=OFF + -DUSE_EXR=ON + -DUSE_IMATH_HALF=ON + -DOPENVDB_CORE_STATIC=${OPENVDB_STATIC} + -DOPENVDB_CORE_SHARED=${OPENVDB_SHARED} + -DOPENVDB_BUILD_VDB_PRINT=${OPENVDB_BUILD_TOOLS} + -DOPENVDB_BUILD_VDB_VIEW=${OPENVDB_BUILD_TOOLS} + -DOPENVDB_BUILD_VDB_RENDER=${OPENVDB_BUILD_TOOLS} + -DOPENVDB_BUILD_VDB_LOD=${OPENVDB_BUILD_TOOLS} + -DUSE_PKGCONFIG=OFF + ${FEATURE_OPTIONS} + -DUSE_EXPLICIT_INSTANTIATION=OFF + ${NANOVDB_OPTIONS} + MAYBE_UNUSED_VARIABLES + OPENVDB_3_ABI_COMPATIBLE + OPENVDB_BUILD_TOOLS + NANOVDB_BUILD_TOOLS +) + +vcpkg_cmake_install() + +vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/OpenVDB) + +vcpkg_copy_pdbs() + +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") + +if (OPENVDB_BUILD_TOOLS) + vcpkg_copy_tools(TOOL_NAMES vdb_print vdb_render vdb_view vdb_lod AUTO_CLEAN) +endif() + +if (NANOVDB_BUILD_TOOLS) + vcpkg_copy_tools(TOOL_NAMES nanovdb_convert nanovdb_print nanovdb_validate AUTO_CLEAN) +endif() + +configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-cmake-wrapper.cmake" @ONLY) +file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") diff --git a/vcpkg/ports/openvdb/usage b/vcpkg/ports/openvdb/usage new file mode 100644 index 0000000..8540787 --- /dev/null +++ b/vcpkg/ports/openvdb/usage @@ -0,0 +1,4 @@ +The package openvdb provides CMake targets:
+
+ find_package(OpenVDB CONFIG REQUIRED)
+ target_link_libraries(main PRIVATE OpenVDB::openvdb)
diff --git a/vcpkg/ports/openvdb/vcpkg-cmake-wrapper.cmake.in b/vcpkg/ports/openvdb/vcpkg-cmake-wrapper.cmake.in new file mode 100644 index 0000000..7b9e5ac --- /dev/null +++ b/vcpkg/ports/openvdb/vcpkg-cmake-wrapper.cmake.in @@ -0,0 +1,12 @@ +set(OPENVDB_PREV_MODULE_PATH ${CMAKE_MODULE_PATH})
+list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR})
+
+list(REMOVE_ITEM ARGS "NO_MODULE")
+list(REMOVE_ITEM ARGS "CONFIG")
+list(REMOVE_ITEM ARGS "MODULE")
+
+set(OPENVDB_USE_STATIC_LIBS @OPENVDB_STATIC@)
+
+_find_package(${ARGS})
+
+set(CMAKE_MODULE_PATH ${OPENVDB_PREV_MODULE_PATH})
diff --git a/vcpkg/ports/openvdb/vcpkg.json b/vcpkg/ports/openvdb/vcpkg.json new file mode 100644 index 0000000..f4349d1 --- /dev/null +++ b/vcpkg/ports/openvdb/vcpkg.json @@ -0,0 +1,66 @@ +{ + "name": "openvdb", + "version": "12.0.1", + "description": "Sparse volume data structure and tools", + "homepage": "https://www.openvdb.org", + "license": "Apache-2.0", + "supports": "!xbox", + "dependencies": [ + "blosc", + "boost-any", + "boost-date-time", + "boost-interprocess", + "boost-iostreams", + "boost-ptr-container", + "boost-system", + "boost-thread", + "boost-uuid", + "imath", + "openexr", + "tbb", + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ], + "features": { + "ax": { + "description": "Provides a powerful and easy way of interacting with OpenVDB volume and point data.", + "supports": "!windows", + "dependencies": [ + { + "name": "llvm", + "default-features": false + } + ] + }, + "nanovdb": { + "description": "A lightweight GPU friendly version of VDB initially targeting rendering applications", + "dependencies": [ + "cuda" + ] + }, + "nanovdb-tools": { + "description": "NanoVDB tools: print, validate, and convert.", + "dependencies": [ + { + "name": "openvdb", + "features": [ + "nanovdb" + ] + } + ] + }, + "tools": { + "description": "OpenVDB utilities: view, print and render", + "dependencies": [ + "glew", + "glfw3" + ] + } + } +} |