From e1180d1a0218ce99504174238d22c006227c77fe Mon Sep 17 00:00:00 2001 From: xieziang Date: Fri, 6 Jun 2025 11:25:46 +0800 Subject: [PATCH] load es2panda by absolute path Signed-off-by: xieziang Change-Id: I470114f9e64bad45908e0ce5ae6ad25b41324f39 --- koala-wrapper/native/src/common.cc | 25 +++++++++++++++-------- koala-wrapper/src/Es2pandaNativeModule.ts | 4 ++++ 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/koala-wrapper/native/src/common.cc b/koala-wrapper/native/src/common.cc index e6c30a48b..553a1079b 100644 --- a/koala-wrapper/native/src/common.cc +++ b/koala-wrapper/native/src/common.cc @@ -41,15 +41,24 @@ static es2panda_Impl *impl = nullptr; const char* LIB_ES2PANDA_PUBLIC = LIB_PREFIX "es2panda_public" LIB_SUFFIX; +#ifdef KOALA_WINDOWS + const char *SEPARATOR = "\\"; +#else + const char *SEPARATOR = "/"; +#endif +const char *LIB_DIR = "lib"; + +static std::string ES2PANDA_LIB_PATH; + +void impl_SetUpSoPath(KStringPtr &soPath) +{ + ES2PANDA_LIB_PATH = std::string(soPath.c_str()); +} +KOALA_INTEROP_V1(SetUpSoPath, KStringPtr); + void* FindLibrary() { - std::string libraryName; - char* envValue = getenv("PANDA_SDK_PATH"); - if (envValue) { - libraryName = std::string(envValue) + ("/" PLUGIN_DIR "/lib/") + LIB_ES2PANDA_PUBLIC; - } else { - libraryName = LIB_ES2PANDA_PUBLIC; - } - return loadLibrary(libraryName); + std::string soFullPath = ES2PANDA_LIB_PATH + SEPARATOR + LIB_DIR + SEPARATOR + LIB_ES2PANDA_PUBLIC; + return loadLibrary(soFullPath); } es2panda_Impl *GetImpl() { diff --git a/koala-wrapper/src/Es2pandaNativeModule.ts b/koala-wrapper/src/Es2pandaNativeModule.ts index e509c21e3..b5c6629ec 100644 --- a/koala-wrapper/src/Es2pandaNativeModule.ts +++ b/koala-wrapper/src/Es2pandaNativeModule.ts @@ -917,6 +917,10 @@ export class Es2pandaNativeModule { suggestionInfo?: KNativePointer, range?: KNativePointer): void { throw new Error('Not implemented'); } + + _SetUpSoPath(soPath: string): void { + throw new Error('Not implemented'); + } } export function initEs2panda(): Es2pandaNativeModule { -- Gitee