mirror of https://github.com/aminya/setup-cpp
fix: fix doxygen installation on linux
This commit is contained in:
parent
954f03e554
commit
cc4cfdf4da
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1,13 +1,22 @@
|
|||
import { setupDoxygen } from "../doxygen"
|
||||
import { testBin } from "../../utils/tests/test-helpers"
|
||||
import { cleanupTmpDir, setupTmpDir, testBin } from "../../utils/tests/test-helpers"
|
||||
import { InstallationInfo } from "../../utils/setup/setupBin"
|
||||
import { getVersion } from "../../default_versions"
|
||||
|
||||
jest.setTimeout(300000)
|
||||
describe("setup-doxygen", () => {
|
||||
let directory: string
|
||||
beforeAll(async () => {
|
||||
directory = await setupTmpDir("doxygen")
|
||||
})
|
||||
|
||||
it("should setup doxygen", async () => {
|
||||
const installInfo = await setupDoxygen(getVersion("doxygen", undefined), "", process.arch)
|
||||
const installInfo = await setupDoxygen(getVersion("doxygen", undefined), directory, process.arch)
|
||||
|
||||
await testBin("doxygen", ["--version"], (installInfo as InstallationInfo | undefined)?.binDir)
|
||||
})
|
||||
|
||||
afterAll(async () => {
|
||||
await cleanupTmpDir("doxygen")
|
||||
}, 100000)
|
||||
})
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
import { addPath } from "../utils/path/addPath"
|
||||
import { setupAptPack } from "../utils/setup/setupAptPack"
|
||||
import { PackageInfo, setupBin } from "../utils/setup/setupBin"
|
||||
import { InstallationInfo, PackageInfo, setupBin } from "../utils/setup/setupBin"
|
||||
import { setupBrewPack } from "../utils/setup/setupBrewPack"
|
||||
import { setupChocoPack } from "../utils/setup/setupChocoPack"
|
||||
import { addBinExtension } from "../utils/extension/extension"
|
||||
import { extractTarByExe } from "../utils/setup/extract"
|
||||
import { extractTar } from "../utils/setup/extract"
|
||||
import { warning } from "../utils/io/io"
|
||||
|
||||
/** Get the platform data for cmake */
|
||||
|
@ -17,9 +17,7 @@ function getDoxygenPackageInfo(version: string, platform: NodeJS.Platform, _arch
|
|||
binRelativeDir: "bin/",
|
||||
binFileName: addBinExtension("doxygen"),
|
||||
extractedFolderName: folderName,
|
||||
extractFunction: (file: string, dest: string) => {
|
||||
return extractTarByExe(file, dest, ["--strip-components=1"])
|
||||
},
|
||||
extractFunction: extractTar,
|
||||
url: `https://www.doxygen.nl/files/${folderName}.linux.bin.tar.gz`,
|
||||
}
|
||||
}
|
||||
|
@ -41,18 +39,21 @@ export async function setupDoxygen(version: string, setupDir: string, arch: stri
|
|||
return { binDir }
|
||||
}
|
||||
case "darwin": {
|
||||
setupBrewPack("doxygen", undefined)
|
||||
return setupBrewPack("graphviz", undefined)
|
||||
const installationInfo = setupBrewPack("doxygen", undefined)
|
||||
setupBrewPack("graphviz", undefined)
|
||||
return installationInfo
|
||||
}
|
||||
case "linux": {
|
||||
let installationInfo: InstallationInfo
|
||||
try {
|
||||
// doxygen on stable Ubuntu repositories is very old. So, we use get the binary from the website itself
|
||||
await setupBin("doxygen", version, getDoxygenPackageInfo, setupDir, arch)
|
||||
installationInfo = await setupBin("doxygen", version, getDoxygenPackageInfo, setupDir, arch)
|
||||
} catch (err) {
|
||||
warning(`Failed to download doxygen binary. ${err}. Falling back to apt-get.`)
|
||||
await setupAptPack("doxygen", undefined)
|
||||
installationInfo = await setupAptPack("doxygen", undefined)
|
||||
}
|
||||
return setupAptPack("graphviz", undefined)
|
||||
await setupAptPack("graphviz", undefined)
|
||||
return installationInfo
|
||||
}
|
||||
default: {
|
||||
throw new Error(`Unsupported platform`)
|
||||
|
|
Loading…
Reference in New Issue