From 1b0a026fc0bac7bb3674b803356bdfa3ecb48f4f Mon Sep 17 00:00:00 2001 From: xieziang Date: Wed, 11 Jun 2025 15:29:28 +0800 Subject: [PATCH] support set es2panda by env variables Signed-off-by: xieziang Change-Id: Ib8f80bd33a4dc1a43eaa2f6c581ffc26823b0b32 --- koala-wrapper/native/src/common.cc | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/koala-wrapper/native/src/common.cc b/koala-wrapper/native/src/common.cc index 553a1079b..d95f378fd 100644 --- a/koala-wrapper/native/src/common.cc +++ b/koala-wrapper/native/src/common.cc @@ -50,6 +50,19 @@ const char *LIB_DIR = "lib"; static std::string ES2PANDA_LIB_PATH; +std::string joinPath(vector &paths) +{ + std::string res; + for (int i = 0; i < paths.size(); ++i) { + if (i == 0) { + res = paths[i]; + } else { + res += SEPARATOR + paths[i]; + } + } + return res; +} + void impl_SetUpSoPath(KStringPtr &soPath) { ES2PANDA_LIB_PATH = std::string(soPath.c_str()); @@ -57,8 +70,16 @@ void impl_SetUpSoPath(KStringPtr &soPath) KOALA_INTEROP_V1(SetUpSoPath, KStringPtr); void* FindLibrary() { - std::string soFullPath = ES2PANDA_LIB_PATH + SEPARATOR + LIB_DIR + SEPARATOR + LIB_ES2PANDA_PUBLIC; - return loadLibrary(soFullPath); + std::vector pathArray; + char* envValue = getenv("PANDA_SDK_PATH"); + if (envValue) { + pathArray = {envValue, PLUGIN_DIR, LIB_DIR, LIB_ES2PANDA_PUBLIC}; + } else if (!ES2PANDA_LIB_PATH.empty()) { + pathArray = {ES2PANDA_LIB_PATH, LIB_DIR, LIB_ES2PANDA_PUBLIC}; + } else { + pathArray = {LIB_ES2PANDA_PUBLIC}; + } + return loadLibrary(joinPath(pathArray)); } es2panda_Impl *GetImpl() { -- Gitee