From: Kefu Chai Date: Thu, 28 Jul 2022 15:11:08 +0000 (+0800) Subject: tools/ceph-dencoder: register dencoders in "lib" in dev env X-Git-Tag: v16.2.11~358^2~3 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=0265fe4b958a1103cfa90e9e92e019affb8bdedb;p=ceph.git tools/ceph-dencoder: register dencoders in "lib" in dev env if "CMakeCache.txt" is found in current directory, try to load dencoder shared libraries from ./lib. this heuristics is used by `ceph.in` also for relaunching itself to get access to python bindings. Signed-off-by: Kefu Chai (cherry picked from commit 3dec0345e72f2491b12486f69d3b9d21cece493f) --- diff --git a/src/tools/ceph-dencoder/ceph_dencoder.cc b/src/tools/ceph-dencoder/ceph_dencoder.cc index 9ade1a4d7b89..c8993398b693 100644 --- a/src/tools/ceph-dencoder/ceph_dencoder.cc +++ b/src/tools/ceph-dencoder/ceph_dencoder.cc @@ -68,6 +68,8 @@ vector load_plugins() fs::path mod_dir{CEPH_DENC_MOD_DIR}; if (auto ceph_lib = getenv("CEPH_LIB"); ceph_lib) { mod_dir = ceph_lib; + } else if (fs::is_regular_file("CMakeCache.txt")) { + mod_dir = std::filesystem::canonical("lib"); } vector dencoder_plugins; for (auto& entry : fs::directory_iterator(mod_dir)) {