Skip to content

Commit 42a9a34

Browse files
committed
fix: load with direct so path in LIBCLANG_PATH
1 parent cc8621c commit 42a9a34

File tree

1 file changed

+28
-25
lines changed

1 file changed

+28
-25
lines changed

lib/ffi.ts

Lines changed: 28 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -38,47 +38,50 @@ if (Deno.build.os === "windows") {
3838
try {
3939
libclang = Deno.dlopen(libclangPath, IMPORTS);
4040
} catch {
41-
// Ignore
41+
libclang = Deno.dlopen(
42+
join(libclangPath, "libclang.dll"),
43+
IMPORTS,
44+
);
4245
}
4346
}
44-
libclang = Deno.dlopen(
45-
join(libclangPath, "libclang.dll"),
46-
IMPORTS,
47-
);
4847
} else if (Deno.build.os === "darwin") {
4948
if (libclangPath.includes(".dylib")) {
5049
try {
5150
libclang = Deno.dlopen(libclangPath, IMPORTS);
5251
} catch {
53-
// Ignore
52+
libclang = Deno.dlopen(
53+
join(libclangPath, "libclang.dylib"),
54+
IMPORTS,
55+
);
5456
}
5557
}
56-
libclang = Deno.dlopen(
57-
join(libclangPath, "libclang.dylib"),
58-
IMPORTS,
59-
);
6058
} else {
6159
if (libclangPath.includes(".so")) {
6260
try {
6361
libclang = Deno.dlopen(libclangPath, IMPORTS);
6462
} catch {
65-
// Ignore
66-
}
67-
}
68-
// Try plain libclang first, then 14.0.6, then 14, and finally try 13.
69-
try {
70-
libclang = Deno.dlopen(join(libclangPath, "libclang.so"), IMPORTS);
71-
} catch {
72-
try {
73-
libclang = Deno.dlopen(
74-
join(libclangPath, "libclang.so.14.0.6"),
75-
IMPORTS,
76-
);
77-
} catch {
63+
// Try plain libclang first, then 14.0.6, then 14, and finally try 13.
7864
try {
79-
libclang = Deno.dlopen(join(libclangPath, "libclang.so.14"), IMPORTS);
65+
libclang = Deno.dlopen(join(libclangPath, "libclang.so"), IMPORTS);
8066
} catch {
81-
libclang = Deno.dlopen(join(libclangPath, "libclang.so.13"), IMPORTS);
67+
try {
68+
libclang = Deno.dlopen(
69+
join(libclangPath, "libclang.so.14.0.6"),
70+
IMPORTS,
71+
);
72+
} catch {
73+
try {
74+
libclang = Deno.dlopen(
75+
join(libclangPath, "libclang.so.14"),
76+
IMPORTS,
77+
);
78+
} catch {
79+
libclang = Deno.dlopen(
80+
join(libclangPath, "libclang.so.13"),
81+
IMPORTS,
82+
);
83+
}
84+
}
8285
}
8386
}
8487
}

0 commit comments

Comments
 (0)