aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhoebe <20694052+PhoebeHui@users.noreply.github.com>2020-11-21 05:25:30 +0800
committerGitHub <noreply@github.com>2020-11-20 13:25:30 -0800
commita6966c202148b29363b4a4ca48a293b2841e55d5 (patch)
treeb2f71fbcd8e67fca02d5720ecab02d0ea6e49fde
parent048d760168046b5141750f211e9f2d47b3375492 (diff)
downloadvcpkg-a6966c202148b29363b4a4ca48a293b2841e55d5.tar.gz
vcpkg-a6966c202148b29363b4a4ca48a293b2841e55d5.zip
[openvdb] Fix dependency issue and usage issue (#14651)
-rw-r--r--ports/openvdb/0003-fix-cmake.patch238
-rw-r--r--ports/openvdb/CONTROL1
-rw-r--r--ports/openvdb/portfile.cmake8
-rw-r--r--ports/openvdb/usage4
-rw-r--r--ports/openvdb/vcpkg-cmake-wrapper.cmake10
5 files changed, 183 insertions, 78 deletions
diff --git a/ports/openvdb/0003-fix-cmake.patch b/ports/openvdb/0003-fix-cmake.patch
index 294596869..1c70da27d 100644
--- a/ports/openvdb/0003-fix-cmake.patch
+++ b/ports/openvdb/0003-fix-cmake.patch
@@ -1,76 +1,162 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index f2e8c2a..4fd3f40 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -360,7 +360,6 @@ if(OPENVDB_INSTALL_CMAKE_MODULES)
- 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 b065192..286e8b6 100644
---- a/cmake/FindOpenVDB.cmake
-+++ b/cmake/FindOpenVDB.cmake
-@@ -430,7 +430,7 @@ endif()
- # Add standard dependencies
-
- find_package(IlmBase REQUIRED COMPONENTS Half)
--find_package(TBB REQUIRED COMPONENTS tbb)
-+find_package(TBB CONFIG REQUIRED)
- find_package(ZLIB REQUIRED)
-
- if(NOT OPENVDB_USE_STATIC_LIBS AND NOT Boost_USE_STATIC_LIBS)
-diff --git a/openvdb/CMakeLists.txt b/openvdb/CMakeLists.txt
-index 45b302c..e208bcf 100644
---- a/openvdb/CMakeLists.txt
-+++ b/openvdb/CMakeLists.txt
-@@ -47,7 +47,7 @@ message(STATUS "----------------------------------------------------")
- ##########################################################################
-
- # Collect and configure lib dependencies
--
-+if(0)
- if(USE_EXR)
- find_package(IlmBase ${MINIMUM_ILMBASE_VERSION} REQUIRED)
- find_package(OpenEXR ${MINIMUM_OPENEXR_VERSION} REQUIRED)
-@@ -57,8 +57,14 @@ if(USE_EXR)
- "is deprecated and will be removed.")
- endif()
- endif()
-+endif()
-+endif()
-+
-+if(USE_EXR)
-+ find_package(IlmBase REQUIRED)
-+ find_package(OpenEXR REQUIRED)
- else()
-- find_package(IlmBase ${MINIMUM_ILMBASE_VERSION} REQUIRED COMPONENTS Half)
-+ find_package(IlmBase REQUIRED COMPONENTS Half)
- endif()
-
- if(OPENVDB_FUTURE_DEPRECATION AND FUTURE_MINIMUM_ILMBASE_VERSION)
-@@ -68,7 +74,7 @@ if(OPENVDB_FUTURE_DEPRECATION AND FUTURE_MINIMUM_ILMBASE_VERSION)
- 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)
-diff --git a/openvdb/cmd/CMakeLists.txt b/openvdb/cmd/CMakeLists.txt
-index 2b831bb..2fa11d4 100644
---- a/openvdb/cmd/CMakeLists.txt
-+++ b/openvdb/cmd/CMakeLists.txt
-@@ -50,7 +50,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/CMakeLists.txt b/CMakeLists.txt
+index f2e8c2a..749e12c 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -353,14 +353,10 @@ endif()
+
+ if(OPENVDB_INSTALL_CMAKE_MODULES)
+ set(OPENVDB_CMAKE_MODULES
+- cmake/FindBlosc.cmake
+ cmake/FindCppUnit.cmake
+ cmake/FindJemalloc.cmake
+- cmake/FindIlmBase.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 b065192..7549843 100644
+--- a/cmake/FindOpenVDB.cmake
++++ b/cmake/FindOpenVDB.cmake
+@@ -224,8 +224,9 @@ foreach(COMPONENT ${OpenVDB_FIND_COMPONENTS})
+ ${OPENVDB_${COMPONENT}_ROOT}
+ ${OPENVDB_${COMPONENT}_INCLUDEDIR}
+ )
+- list(REMOVE_DUPLICATES _VDB_COMPONENT_SEARCH_DIRS)
+-
++ if(_VDB_COMPONENT_SEARCH_DIRS)
++ list(REMOVE_DUPLICATES _VDB_COMPONENT_SEARCH_DIRS)
++ endif()
+ # Look for a standard header files.
+ if(${COMPONENT} STREQUAL "openvdb")
+ # Look for a standard OpenVDB header file.
+@@ -429,8 +430,8 @@ endif()
+
+ # Add standard dependencies
+
+-find_package(IlmBase REQUIRED COMPONENTS Half)
+-find_package(TBB REQUIRED COMPONENTS tbb)
++find_package(IlmBase CONFIG REQUIRED)
++find_package(TBB CONFIG REQUIRED)
+ find_package(ZLIB REQUIRED)
+
+ if(NOT OPENVDB_USE_STATIC_LIBS AND NOT Boost_USE_STATIC_LIBS)
+@@ -540,7 +541,7 @@ if(NOT OPENVDB_USE_STATIC_LIBS)
+ endif()
+
+ if(OpenVDB_USES_BLOSC)
+- find_package(Blosc REQUIRED)
++ find_package(blosc CONFIG REQUIRED)
+ endif()
+
+ if(OpenVDB_USES_LOG4CPLUS)
+@@ -548,8 +549,8 @@ if(OpenVDB_USES_LOG4CPLUS)
+ endif()
+
+ if(OpenVDB_USES_EXR)
+- find_package(IlmBase REQUIRED)
+- find_package(OpenEXR REQUIRED)
++ find_package(IlmBase CONFIG REQUIRED)
++ find_package(OpenEXR CONFIG REQUIRED)
+ endif()
+
+ if(UNIX)
+@@ -610,7 +611,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()
+
+ list(APPEND _OPENVDB_HIDDEN_DEPENDENCIES ZLIB::ZLIB)
+diff --git a/openvdb/CMakeLists.txt b/openvdb/CMakeLists.txt
+index 45b302c..d75cfd1 100644
+--- a/openvdb/CMakeLists.txt
++++ b/openvdb/CMakeLists.txt
+@@ -47,7 +47,7 @@ message(STATUS "----------------------------------------------------")
+ ##########################################################################
+
+ # Collect and configure lib dependencies
+-
++if(0)
+ if(USE_EXR)
+ find_package(IlmBase ${MINIMUM_ILMBASE_VERSION} REQUIRED)
+ find_package(OpenEXR ${MINIMUM_OPENEXR_VERSION} REQUIRED)
+@@ -57,8 +57,14 @@ if(USE_EXR)
+ "is deprecated and will be removed.")
+ endif()
+ endif()
++endif()
++endif()
++
++if(USE_EXR)
++ find_package(IlmBase CONFIG REQUIRED)
++ find_package(OpenEXR CONFIG REQUIRED)
+ else()
+- find_package(IlmBase ${MINIMUM_ILMBASE_VERSION} REQUIRED COMPONENTS Half)
++ find_package(IlmBase CONFIG REQUIRED)
+ endif()
+
+ if(OPENVDB_FUTURE_DEPRECATION AND FUTURE_MINIMUM_ILMBASE_VERSION)
+@@ -68,7 +74,7 @@ if(OPENVDB_FUTURE_DEPRECATION AND FUTURE_MINIMUM_ILMBASE_VERSION)
+ 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)
+@@ -84,14 +90,7 @@ if(USE_LOG4CPLUS)
+ endif()
+
+ if(USE_BLOSC)
+- find_package(Blosc ${MINIMUM_BLOSC_VERSION} REQUIRED)
+- if(Blosc_FOUND AND Blosc_VERSION VERSION_GREATER MINIMUM_BLOSC_VERSION)
+- message(WARNING "The version of Blosc located is greater than ${MINIMUM_BLOSC_VERSION}. "
+- "There have been reported issues with using later versions of Blosc with OpenVDB. "
+- "OpenVDB has been tested fully against Blosc ${MINIMUM_BLOSC_VERSION}, it is "
+- "recommended that you use this version where possible."
+- )
+- 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 "
+@@ -163,7 +162,7 @@ endif()
+ # See FindOpenVDB.cmake
+
+ if(USE_BLOSC)
+- list(APPEND OPENVDB_CORE_DEPENDENT_LIBS Blosc::blosc)
++ list(APPEND OPENVDB_CORE_DEPENDENT_LIBS blosc)
+ endif()
+
+ list(APPEND OPENVDB_CORE_DEPENDENT_LIBS
+diff --git a/openvdb/cmd/CMakeLists.txt b/openvdb/cmd/CMakeLists.txt
+index 2b831bb..a13b63b 100644
+--- a/openvdb/cmd/CMakeLists.txt
++++ b/openvdb/cmd/CMakeLists.txt
+@@ -50,7 +50,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()
+
+@@ -120,8 +120,8 @@ endif()
+ #### vdb_render
+
+ if(OPENVDB_BUILD_VDB_RENDER)
+- find_package(IlmBase ${MINIMUM_ILMBASE_VERSION} REQUIRED COMPONENTS Half Iex IlmThread Imath)
+- find_package(OpenEXR ${MINIMUM_OPENEXR_VERSION} REQUIRED COMPONENTS IlmImf)
++ find_package(IlmBase CONFIG REQUIRED)
++ find_package(OpenEXR CONFIG REQUIRED)
+
+ set(VDB_RENDER_SOURCE_FILES openvdb_render.cc)
+ add_executable(vdb_render ${VDB_RENDER_SOURCE_FILES})
diff --git a/ports/openvdb/CONTROL b/ports/openvdb/CONTROL
index 17e6c12de..f100be3e8 100644
--- a/ports/openvdb/CONTROL
+++ b/ports/openvdb/CONTROL
@@ -1,5 +1,6 @@
Source: openvdb
Version: 7.1.0
+Port-Version: 1
Build-Depends: boost-ptr-container, openexr, tbb, blosc, boost-iostreams, boost-system, boost-thread, boost-date-time, boost-any, boost-uuid, boost-interprocess, ilmbase
Homepage: https://github.com/dreamworksanimation/openvdb
Description: Sparse volume data structure and tools
diff --git a/ports/openvdb/portfile.cmake b/ports/openvdb/portfile.cmake
index 492936c70..fa91fc7f8 100644
--- a/ports/openvdb/portfile.cmake
+++ b/ports/openvdb/portfile.cmake
@@ -9,6 +9,9 @@ vcpkg_from_github(
)
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)
@@ -51,5 +54,6 @@ if (OPENVDB_BUILD_TOOLS)
vcpkg_copy_tools(TOOL_NAMES vdb_print vdb_render vdb_view vdb_lod AUTO_CLEAN)
endif()
-# Handle copyright
-file(INSTALL ${SOURCE_PATH}/openvdb/COPYRIGHT DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) \ No newline at end of file
+file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
+file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
+file(INSTALL ${SOURCE_PATH}/openvdb/COPYRIGHT DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
diff --git a/ports/openvdb/usage b/ports/openvdb/usage
new file mode 100644
index 000000000..854078780
--- /dev/null
+++ b/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/ports/openvdb/vcpkg-cmake-wrapper.cmake b/ports/openvdb/vcpkg-cmake-wrapper.cmake
new file mode 100644
index 000000000..fd1c5d23d
--- /dev/null
+++ b/ports/openvdb/vcpkg-cmake-wrapper.cmake
@@ -0,0 +1,10 @@
+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")
+
+_find_package(${ARGS})
+
+set(CMAKE_MODULE_PATH ${OPENVDB_PREV_MODULE_PATH})