mirror of https://github.com/aminya/setup-cpp
feat: add execPaths when installing python
This commit is contained in:
parent
6637fda894
commit
08aaab1859
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -18,8 +18,33 @@ import { isBinUptoDate } from "../utils/setup/version"
|
||||||
import { execaSync } from "execa"
|
import { execaSync } from "execa"
|
||||||
import { unique } from "../utils/std"
|
import { unique } from "../utils/std"
|
||||||
import { DefaultVersions } from "../versions/default_versions"
|
import { DefaultVersions } from "../versions/default_versions"
|
||||||
|
import assert from "assert"
|
||||||
|
|
||||||
export async function setupPython(version: string, setupDir: string, arch: string): Promise<InstallationInfo> {
|
export async function setupPython(version: string, setupDir: string, arch: string): Promise<InstallationInfo> {
|
||||||
|
const installInfo = await findOrSetupPython(version, setupDir, arch)
|
||||||
|
assert(installInfo.bin !== undefined)
|
||||||
|
const foundPython = installInfo.bin
|
||||||
|
|
||||||
|
// setup pip
|
||||||
|
const foundPip = await findOrSetupPip(foundPython)
|
||||||
|
if (foundPip === undefined) {
|
||||||
|
throw new Error("pip was not installed correctly")
|
||||||
|
}
|
||||||
|
|
||||||
|
// setup wheel
|
||||||
|
try {
|
||||||
|
setupWheel(foundPython)
|
||||||
|
} catch (err) {
|
||||||
|
warning(`Failed to install wheels: ${(err as Error).toString()}. Ignoring...`)
|
||||||
|
}
|
||||||
|
|
||||||
|
// add python bin paths to PATH
|
||||||
|
const _execPaths = await addPythonBaseExecPrefix(foundPython)
|
||||||
|
|
||||||
|
return installInfo
|
||||||
|
}
|
||||||
|
|
||||||
|
async function findOrSetupPython(version: string, setupDir: string, arch: string) {
|
||||||
let installInfo: InstallationInfo | undefined
|
let installInfo: InstallationInfo | undefined
|
||||||
let foundPython = await findPython()
|
let foundPython = await findPython()
|
||||||
|
|
||||||
|
@ -53,19 +78,6 @@ export async function setupPython(version: string, setupDir: string, arch: strin
|
||||||
installInfo.bin = foundPython
|
installInfo.bin = foundPython
|
||||||
}
|
}
|
||||||
|
|
||||||
// setup pip
|
|
||||||
const foundPip = await findOrSetupPip(foundPython)
|
|
||||||
if (foundPip === undefined) {
|
|
||||||
throw new Error("pip was not installed correctly")
|
|
||||||
}
|
|
||||||
|
|
||||||
// setup wheel
|
|
||||||
try {
|
|
||||||
setupWheel(foundPython)
|
|
||||||
} catch (err) {
|
|
||||||
warning(`Failed to install wheels: ${(err as Error).toString()}. Ignoring...`)
|
|
||||||
}
|
|
||||||
|
|
||||||
return installInfo
|
return installInfo
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ import { getVersion } from "../../versions/versions"
|
||||||
|
|
||||||
/* eslint-disable require-atomic-updates */
|
/* eslint-disable require-atomic-updates */
|
||||||
let python: string | undefined
|
let python: string | undefined
|
||||||
let binDirs: string[] | undefined
|
let execPaths: string[] | undefined
|
||||||
|
|
||||||
/** A function that installs a package using pip */
|
/** A function that installs a package using pip */
|
||||||
export async function setupPipPack(name: string, version?: string): Promise<InstallationInfo> {
|
export async function setupPipPack(name: string, version?: string): Promise<InstallationInfo> {
|
||||||
|
@ -24,11 +24,11 @@ export async function setupPipPack(name: string, version?: string): Promise<Inst
|
||||||
stdio: "inherit",
|
stdio: "inherit",
|
||||||
})
|
})
|
||||||
|
|
||||||
if (binDirs === undefined) {
|
if (execPaths === undefined) {
|
||||||
binDirs = await addPythonBaseExecPrefix(python)
|
execPaths = await addPythonBaseExecPrefix(python)
|
||||||
}
|
}
|
||||||
|
|
||||||
const binDir = await findBinDir(binDirs, name)
|
const binDir = await findBinDir(execPaths, name)
|
||||||
|
|
||||||
await addPath(binDir)
|
await addPath(binDir)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue