summaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
authorTongliang Liao <xkszltl@gmail.com>2020-05-12 21:16:50 -0700
committerFacebook GitHub Bot <facebook-github-bot@users.noreply.github.com>2020-05-12 21:18:29 -0700
commit244797aa4b2779ce791161b39d1f5f445e291a2e (patch)
treea468e34ce2ce55cc3afc6d8aa02659688f12dcb5 /cmake
parent07204837ce8d66e1e6e4893178f3fd040f9c1044 (diff)
Add `find_dependency()` in cmake config file. (#6791)
Summary: Currently when building PyTorch with latest RocksDB we get errors like "missing target Snappy::snappy", because they are simply not there. With old `${VAR}` approach we essentially hard-code the abs path found during RocksDB build, which is: - Not relocatable. - Doesn't work when changed to modern target-based design because that requires target to present when used for expansion. This fix allows cmake to setup imported target, if enabled during RocksDB build, when downstream uses `find_package(RocksDB)`. This is for https://github.com/facebook/rocksdb/issues/6179 tchaikov Please help review, thanks! Pull Request resolved: https://github.com/facebook/rocksdb/pull/6791 Reviewed By: riversand963 Differential Revision: D21471553 fbshipit-source-id: 8d4ff2ab589a97ca6e6ba27e1f17b97a00f06206
Diffstat (limited to 'cmake')
-rw-r--r--cmake/RocksDBConfig.cmake.in51
1 files changed, 51 insertions, 0 deletions
diff --git a/cmake/RocksDBConfig.cmake.in b/cmake/RocksDBConfig.cmake.in
index b3cb2b27a..0bd14be11 100644
--- a/cmake/RocksDBConfig.cmake.in
+++ b/cmake/RocksDBConfig.cmake.in
@@ -1,3 +1,54 @@
@PACKAGE_INIT@
+
+list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/modules")
+
+include(CMakeFindDependencyMacro)
+
+set(GFLAGS_USE_TARGET_NAMESPACE @GFLAGS_USE_TARGET_NAMESPACE@)
+
+if(@WITH_JEMALLOC@)
+ find_dependency(JeMalloc)
+endif()
+
+if(@WITH_GFLAGS@)
+ find_dependency(gflags CONFIG)
+ if(NOT gflags_FOUND)
+ find_dependency(gflags)
+ endif()
+endif()
+
+if(@WITH_SNAPPY@)
+ find_dependency(Snappy CONFIG)
+ if(NOT Snappy_FOUND)
+ find_dependency(Snappy)
+ endif()
+endif()
+
+if(@WITH_ZLIB@)
+ find_dependency(ZLIB)
+endif()
+
+if(@WITH_BZ2@)
+ find_dependency(BZip2)
+endif()
+
+if(@WITH_LZ4@)
+ find_dependency(lz4)
+endif()
+
+if(@WITH_ZSTD@)
+ find_dependency(zstd)
+endif()
+
+if(@WITH_NUMA@)
+ find_dependency(NUMA)
+endif()
+
+if(@WITH_TBB@)
+ find_dependency(TBB)
+endif()
+
+find_dependency(Threads)
+
include("${CMAKE_CURRENT_LIST_DIR}/RocksDBTargets.cmake")
check_required_components(RocksDB)