Extend LIBRARY_PATH as well as LD_LIBRARY_PATH on Linux

This commit is contained in:
Tristan Keen 2024-07-12 20:38:59 +01:00
parent 39cd14951b
commit 42afbeef7f
2 changed files with 25 additions and 13 deletions

17
dist/setup/index.js vendored
View File

@ -91070,13 +91070,9 @@ function useCpythonVersion(version, architecture, updateEnvironment, checkLatest
core.exportVariable('Python3_ROOT_DIR', installDir);
core.exportVariable('PKG_CONFIG_PATH', installDir + '/lib/pkgconfig');
if (utils_1.IS_LINUX) {
const libPath = process.env.LD_LIBRARY_PATH
? `:${process.env.LD_LIBRARY_PATH}`
: '';
const pyLibPath = path.join(installDir, 'lib');
if (!libPath.split(':').includes(pyLibPath)) {
core.exportVariable('LD_LIBRARY_PATH', pyLibPath + libPath);
}
ensurePathInEnvVar('LIBRARY_PATH', pyLibPath);
ensurePathInEnvVar('LD_LIBRARY_PATH', pyLibPath);
}
core.addPath(installDir);
core.addPath(_binDir);
@ -91099,6 +91095,15 @@ function useCpythonVersion(version, architecture, updateEnvironment, checkLatest
});
}
exports.useCpythonVersion = useCpythonVersion;
/** Ensure a folder is present in a colon-separated env-var */
function ensurePathInEnvVar(envVarName, extraPath) {
const currentPath = process.env[envVarName]
? `:${process.env[envVarName]}`
: '';
if (!currentPath.split(':').includes(extraPath)) {
core.exportVariable(envVarName, extraPath + currentPath);
}
}
/** Convert versions like `3.8-dev` to a version like `~3.8.0-0`. */
function desugarDevVersion(versionSpec) {
const devVersion = /^(\d+)\.(\d+)-dev$/;

View File

@ -121,15 +121,11 @@ export async function useCpythonVersion(
core.exportVariable('PKG_CONFIG_PATH', installDir + '/lib/pkgconfig');
if (IS_LINUX) {
const libPath = process.env.LD_LIBRARY_PATH
? `:${process.env.LD_LIBRARY_PATH}`
: '';
const pyLibPath = path.join(installDir, 'lib');
if (!libPath.split(':').includes(pyLibPath)) {
core.exportVariable('LD_LIBRARY_PATH', pyLibPath + libPath);
}
ensurePathInEnvVar('LIBRARY_PATH', pyLibPath);
ensurePathInEnvVar('LD_LIBRARY_PATH', pyLibPath);
}
core.addPath(installDir);
core.addPath(_binDir);
@ -159,6 +155,17 @@ export async function useCpythonVersion(
return {impl: 'CPython', version: installed};
}
/** Ensure a folder is present in a colon-separated env-var */
function ensurePathInEnvVar(envVarName: string, extraPath: string) {
const currentPath = process.env[envVarName]
? `:${process.env[envVarName]}`
: '';
if (!currentPath.split(':').includes(extraPath)) {
core.exportVariable(envVarName, extraPath + currentPath);
}
}
/** Convert versions like `3.8-dev` to a version like `~3.8.0-0`. */
function desugarDevVersion(versionSpec: string) {
const devVersion = /^(\d+)\.(\d+)-dev$/;