mirror of https://github.com/aminya/setup-cpp
Merge pull request #279 from aminya/vite [skip ci]
This commit is contained in:
commit
ab36eabc6a
|
@ -13,6 +13,9 @@ concurrency:
|
||||||
group: ${{ github.workflow }}-${{ github.head_ref }}
|
group: ${{ github.workflow }}-${{ github.head_ref }}
|
||||||
cancel-in-progress: true
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
env:
|
||||||
|
NODE_OPTIONS: --enable-source-maps
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
Build:
|
Build:
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
|
@ -200,6 +203,14 @@ jobs:
|
||||||
env:
|
env:
|
||||||
RUNNER_OS_NAME: ${{ matrix.os }}
|
RUNNER_OS_NAME: ${{ matrix.os }}
|
||||||
|
|
||||||
|
- name: Modern Integration Tests
|
||||||
|
if: ${{ !contains(github.event.head_commit.message, '[skip test]') }}
|
||||||
|
run: |
|
||||||
|
node ./dist/modern/setup-cpp.mjs --help
|
||||||
|
node ./dist/modern/setup-cpp.mjs --gcc true --cmake true
|
||||||
|
env:
|
||||||
|
RUNNER_OS_NAME: ${{ matrix.os }}
|
||||||
|
|
||||||
- name: Setup Node 12
|
- name: Setup Node 12
|
||||||
uses: actions/setup-node@v4
|
uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
|
@ -214,7 +225,7 @@ jobs:
|
||||||
node-version: 16
|
node-version: 16
|
||||||
- name: Smoke Test Node 16
|
- name: Smoke Test Node 16
|
||||||
run: |
|
run: |
|
||||||
node ./dist/modern/setup-cpp.js --help
|
node ./dist/modern/setup-cpp.mjs --help
|
||||||
|
|
||||||
Docker:
|
Docker:
|
||||||
name: Docker-${{ matrix.container.image }}
|
name: Docker-${{ matrix.container.image }}
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
const { buildTerserOptions } = require("terser-config-atomic/dist/builder")
|
|
||||||
module.exports = buildTerserOptions(process.env.NODE_ENV, undefined, true)
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
import { buildTerserOptions } from "terser-config-atomic/dist/builder.js"
|
||||||
|
export default buildTerserOptions(process.env.NODE_ENV, undefined, true)
|
|
@ -100,7 +100,7 @@ inputs:
|
||||||
|
|
||||||
runs:
|
runs:
|
||||||
using: "node20"
|
using: "node20"
|
||||||
main: "dist/modern/setup-cpp.js"
|
main: "dist/modern/setup-cpp.mjs"
|
||||||
|
|
||||||
branding:
|
branding:
|
||||||
icon: "award"
|
icon: "award"
|
||||||
|
|
|
@ -62,6 +62,7 @@ words:
|
||||||
- libdw
|
- libdw
|
||||||
- libstdc
|
- libstdc
|
||||||
- libtinfo
|
- libtinfo
|
||||||
|
- liuli
|
||||||
- memoizee
|
- memoizee
|
||||||
- msbuild
|
- msbuild
|
||||||
- msvc
|
- msvc
|
||||||
|
|
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
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
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
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
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
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
25
package.json
25
package.json
|
@ -6,8 +6,8 @@
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"author": "Amin Yahyaabadi",
|
"author": "Amin Yahyaabadi",
|
||||||
"main": "dist/legacy/setup-cpp.js",
|
"main": "dist/legacy/setup-cpp.js",
|
||||||
"modern": "./dist/modern/setup-cpp.js",
|
"modern": "./dist/modern/setup-cpp.mjs",
|
||||||
"source": "./src/main.ts",
|
"source": "./src/setup-cpp.ts",
|
||||||
"bin": {
|
"bin": {
|
||||||
"setup-cpp": "dist/legacy/setup-cpp.js"
|
"setup-cpp": "dist/legacy/setup-cpp.js"
|
||||||
},
|
},
|
||||||
|
@ -26,12 +26,13 @@
|
||||||
"tsconfig.json"
|
"tsconfig.json"
|
||||||
],
|
],
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "turbo build && run-p lint.root.tsc build.parcel copy.matchers && run-s build.babel",
|
"build": "turbo build && run-p lint.root.tsc build.parcel build.vite && run-p build.babel copy.json",
|
||||||
"build.parcel": "cross-env NODE_ENV=production parcel build",
|
"build.parcel": "cross-env NODE_ENV=production parcel build",
|
||||||
"build.babel": "babel ./dist --out-dir dist --plugins @upleveled/babel-plugin-remove-node-prefix --plugins @babel/plugin-transform-private-methods --compact --no-babelrc --source-maps true",
|
"build.vite": "cross-env NODE_ENV=production vite build",
|
||||||
|
"build.babel": "babel ./dist/legacy --out-dir ./dist/legacy --plugins @upleveled/babel-plugin-remove-node-prefix --plugins @babel/plugin-transform-private-methods --compact --no-babelrc --source-maps true",
|
||||||
"bump": "ncu -u -x numerous,execa,prettier,@types/node,eslint,@types/eslint && pnpm update && pnpx typesync && pnpm run clean",
|
"bump": "ncu -u -x numerous,execa,prettier,@types/node,eslint,@types/eslint && pnpm update && pnpx typesync && pnpm run clean",
|
||||||
"clean": "shx rm -rf ./dist ./packages/*/dist ./exe ./.parcel-cache && shx mkdir -p ./dist/legacy ./dist/modern ./dist/modern ",
|
"clean": "shx rm -rf ./dist ./packages/*/dist ./exe ./.parcel-cache && shx mkdir -p ./dist/legacy ./dist/modern ./dist/modern ",
|
||||||
"copy.matchers": "shx cp ./src/*/*.json ./dist/legacy/ && shx cp ./dist/legacy/*.json ./dist/modern",
|
"copy.json": "shx cp ./src/*/*.json ./dist/legacy/ && shx cp ./dist/legacy/*.json ./dist/modern",
|
||||||
"dev.parcel": "cross-env NODE_ENV=development parcel watch",
|
"dev.parcel": "cross-env NODE_ENV=development parcel watch",
|
||||||
"dev.packages": "turbo dev",
|
"dev.packages": "turbo dev",
|
||||||
"dev": "run-p dev.packages dev.parcel",
|
"dev": "run-p dev.packages dev.parcel",
|
||||||
|
@ -63,6 +64,7 @@
|
||||||
"@babel/plugin-transform-private-methods": "^7.25.4",
|
"@babel/plugin-transform-private-methods": "^7.25.4",
|
||||||
"@biomejs/biome": "^1.8.3",
|
"@biomejs/biome": "^1.8.3",
|
||||||
"@iarna/toml": "^2.2.5",
|
"@iarna/toml": "^2.2.5",
|
||||||
|
"@liuli-util/vite-plugin-node": "^0.9.0",
|
||||||
"@octokit/core": "^6.1.2",
|
"@octokit/core": "^6.1.2",
|
||||||
"@octokit/openapi-types": "^22.2.0",
|
"@octokit/openapi-types": "^22.2.0",
|
||||||
"@octokit/plugin-paginate-rest": "^11.3.3",
|
"@octokit/plugin-paginate-rest": "^11.3.3",
|
||||||
|
@ -117,6 +119,7 @@
|
||||||
"prettier-config-atomic": "^4.0.0",
|
"prettier-config-atomic": "^4.0.0",
|
||||||
"readme-md-generator": "^1.0.0",
|
"readme-md-generator": "^1.0.0",
|
||||||
"retry-as-promised": "^7.0.4",
|
"retry-as-promised": "^7.0.4",
|
||||||
|
"rollup": "^4.21.2",
|
||||||
"safe-stable-stringify": "^2.5.0",
|
"safe-stable-stringify": "^2.5.0",
|
||||||
"semver": "7.6.3",
|
"semver": "7.6.3",
|
||||||
"setup-apt": "workspace:*",
|
"setup-apt": "workspace:*",
|
||||||
|
@ -124,6 +127,7 @@
|
||||||
"setup-python": "github:aminya/setup-python#a783db655c6e40317e2c0c96f9d162d9c9f4a751",
|
"setup-python": "github:aminya/setup-python#a783db655c6e40317e2c0c96f9d162d9c9f4a751",
|
||||||
"shx": "0.3.4",
|
"shx": "0.3.4",
|
||||||
"simple-update-notifier": "^2.0.0",
|
"simple-update-notifier": "^2.0.0",
|
||||||
|
"terser": "^5.31.6",
|
||||||
"terser-config-atomic": "^1.0.0",
|
"terser-config-atomic": "^1.0.0",
|
||||||
"time-delta": "github:aminya/time-delta#69d91a41cef28e569be9a2991129f5f7d1f0d00e",
|
"time-delta": "github:aminya/time-delta#69d91a41cef28e569be9a2991129f5f7d1f0d00e",
|
||||||
"ts-node": "^10.9.2",
|
"ts-node": "^10.9.2",
|
||||||
|
@ -133,6 +137,8 @@
|
||||||
"ubuntu-version": "^2.0.0",
|
"ubuntu-version": "^2.0.0",
|
||||||
"untildify-user": "workspace:*",
|
"untildify-user": "workspace:*",
|
||||||
"util.types": "^0.0.2",
|
"util.types": "^0.0.2",
|
||||||
|
"vite": "^5.4.3",
|
||||||
|
"vite-plugin-node": "^3.1.0",
|
||||||
"web-streams-polyfill": "^4.0.0",
|
"web-streams-polyfill": "^4.0.0",
|
||||||
"which": "^4.0.0"
|
"which": "^4.0.0"
|
||||||
},
|
},
|
||||||
|
@ -219,15 +225,6 @@
|
||||||
"includeNodeModules": true,
|
"includeNodeModules": true,
|
||||||
"optimize": true,
|
"optimize": true,
|
||||||
"outputFormat": "commonjs"
|
"outputFormat": "commonjs"
|
||||||
},
|
|
||||||
"modern": {
|
|
||||||
"context": "node",
|
|
||||||
"engines": {
|
|
||||||
"node": ">=20.x"
|
|
||||||
},
|
|
||||||
"includeNodeModules": true,
|
|
||||||
"optimize": true,
|
|
||||||
"outputFormat": "commonjs"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"pnpm": {
|
"pnpm": {
|
||||||
|
|
File diff suppressed because one or more lines are too long
1365
pnpm-lock.yaml
1365
pnpm-lock.yaml
File diff suppressed because it is too large
Load Diff
|
@ -1,3 +1,5 @@
|
||||||
|
import path from "path"
|
||||||
|
import { fileURLToPath } from "url"
|
||||||
import { execaSync } from "execa"
|
import { execaSync } from "execa"
|
||||||
import { chmod } from "fs/promises"
|
import { chmod } from "fs/promises"
|
||||||
import { addExeExt, join } from "patha"
|
import { addExeExt, join } from "patha"
|
||||||
|
@ -7,6 +9,8 @@ import { cleanupTmpDir, setupTmpDir, testBin } from "../../utils/tests/test-help
|
||||||
import { getVersion } from "../../versions/versions.js"
|
import { getVersion } from "../../versions/versions.js"
|
||||||
import { setupGcc } from "../gcc.js"
|
import { setupGcc } from "../gcc.js"
|
||||||
|
|
||||||
|
const dirname = typeof __dirname === "string" ? __dirname : path.dirname(fileURLToPath(import.meta.url))
|
||||||
|
|
||||||
jest.setTimeout(3000000)
|
jest.setTimeout(3000000)
|
||||||
describe("setup-gcc", () => {
|
describe("setup-gcc", () => {
|
||||||
let directory: string
|
let directory: string
|
||||||
|
@ -55,13 +59,13 @@ describe("setup-gcc", () => {
|
||||||
expect(process.env.CXX?.includes("g++")).toBeTruthy()
|
expect(process.env.CXX?.includes("g++")).toBeTruthy()
|
||||||
|
|
||||||
// test compilation
|
// test compilation
|
||||||
const file = join(__dirname, "main.cpp")
|
const file = join(dirname, "main.cpp")
|
||||||
const main_exe = join(__dirname, addExeExt("main"))
|
const main_exe = join(dirname, addExeExt("main"))
|
||||||
execaSync("g++", [file, "-o", main_exe], { cwd: __dirname })
|
execaSync("g++", [file, "-o", main_exe], { cwd: dirname })
|
||||||
if (process.platform !== "win32") {
|
if (process.platform !== "win32") {
|
||||||
await chmod(main_exe, "755")
|
await chmod(main_exe, "755")
|
||||||
}
|
}
|
||||||
execaSync(main_exe, { cwd: __dirname, stdio: "inherit" })
|
execaSync(main_exe, { cwd: dirname, stdio: "inherit" })
|
||||||
})
|
})
|
||||||
|
|
||||||
afterAll(async () => {
|
afterAll(async () => {
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
import { addEnv, addPath } from "envosman"
|
import path from "path"
|
||||||
|
import { fileURLToPath } from "url"
|
||||||
import { GITHUB_ACTIONS } from "ci-info"
|
import { GITHUB_ACTIONS } from "ci-info"
|
||||||
import { error, info, warning } from "ci-log"
|
import { error, info, warning } from "ci-log"
|
||||||
|
import { addEnv, addPath } from "envosman"
|
||||||
import { type ExecaReturnValue, execa } from "execa"
|
import { type ExecaReturnValue, execa } from "execa"
|
||||||
import { readdir } from "fs/promises"
|
import { readdir } from "fs/promises"
|
||||||
import { pathExists } from "path-exists"
|
import { pathExists } from "path-exists"
|
||||||
|
@ -23,11 +24,13 @@ import { setupDnfPack } from "../utils/setup/setupDnfPack.js"
|
||||||
import { setupPacmanPack } from "../utils/setup/setupPacmanPack.js"
|
import { setupPacmanPack } from "../utils/setup/setupPacmanPack.js"
|
||||||
import { compareVersion } from "../utils/setup/version.js"
|
import { compareVersion } from "../utils/setup/version.js"
|
||||||
|
|
||||||
|
const dirname = typeof __dirname === "string" ? __dirname : path.dirname(fileURLToPath(import.meta.url))
|
||||||
|
|
||||||
async function getGccPackageInfo(version: string, platform: NodeJS.Platform, arch: string): Promise<PackageInfo> {
|
async function getGccPackageInfo(version: string, platform: NodeJS.Platform, arch: string): Promise<PackageInfo> {
|
||||||
switch (platform) {
|
switch (platform) {
|
||||||
case "win32": {
|
case "win32": {
|
||||||
const mingwAssets = await loadGitHubAssetList(
|
const mingwAssets = await loadGitHubAssetList(
|
||||||
join(__dirname, "github_brechtsanders_winlibs_mingw.json"),
|
join(dirname, "github_brechtsanders_winlibs_mingw.json"),
|
||||||
)
|
)
|
||||||
const asset = matchAsset(
|
const asset = matchAsset(
|
||||||
mingwAssets,
|
mingwAssets,
|
||||||
|
@ -287,8 +290,8 @@ async function getGccCmdVersion(binDir: string, givenVersion: string) {
|
||||||
// try to find the gcc exe in the bin dir
|
// try to find the gcc exe in the bin dir
|
||||||
const files = (await readdir(binDir)).sort(
|
const files = (await readdir(binDir)).sort(
|
||||||
(exe1, exe2) => {
|
(exe1, exe2) => {
|
||||||
const version1 = exe1.match(/^gcc-?(.*)(\.exe)?$/)?.[1] || ""
|
const version1 = exe1.match(/^gcc-?(.*)(\.exe)?$/)?.[1] ?? ""
|
||||||
const version2 = exe2.match(/^gcc-?(.*)(\.exe)?$/)?.[1] || ""
|
const version2 = exe2.match(/^gcc-?(.*)(\.exe)?$/)?.[1] ?? ""
|
||||||
return compareVersion(version1, version2)
|
return compareVersion(version1, version2)
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
@ -321,7 +324,7 @@ async function getGccCmdVersion(binDir: string, givenVersion: string) {
|
||||||
}
|
}
|
||||||
|
|
||||||
async function addGccLoggingMatcher() {
|
async function addGccLoggingMatcher() {
|
||||||
const matcherPath = join(__dirname, "gcc_matcher.json")
|
const matcherPath = join(dirname, "gcc_matcher.json")
|
||||||
if (!(await pathExists(matcherPath))) {
|
if (!(await pathExists(matcherPath))) {
|
||||||
return warning("the gcc_matcher.json file does not exist in the same folder as setup-cpp.js")
|
return warning("the gcc_matcher.json file does not exist in the same folder as setup-cpp.js")
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
import path from "path"
|
||||||
|
import { fileURLToPath } from "url"
|
||||||
import { info } from "ci-log"
|
import { info } from "ci-log"
|
||||||
import { execa } from "execa"
|
import { execa } from "execa"
|
||||||
import { addExeExt, join } from "patha"
|
import { addExeExt, join } from "patha"
|
||||||
|
@ -17,6 +19,8 @@ import { setupPacmanPack } from "../utils/setup/setupPacmanPack.js"
|
||||||
import { addVPrefix, removeVPrefix } from "../utils/setup/version.js"
|
import { addVPrefix, removeVPrefix } from "../utils/setup/version.js"
|
||||||
import { getVersion } from "../versions/versions.js"
|
import { getVersion } from "../versions/versions.js"
|
||||||
|
|
||||||
|
const dirname = typeof __dirname === "string" ? __dirname : path.dirname(fileURLToPath(import.meta.url))
|
||||||
|
|
||||||
function getDownloadKcovPackageInfo(version: string): PackageInfo {
|
function getDownloadKcovPackageInfo(version: string): PackageInfo {
|
||||||
return {
|
return {
|
||||||
url: `https://github.com/SimonKagstrom/kcov/releases/download/${version}/kcov-amd64.tar.gz`,
|
url: `https://github.com/SimonKagstrom/kcov/releases/download/${version}/kcov-amd64.tar.gz`,
|
||||||
|
@ -55,7 +59,7 @@ async function buildKcov(file: string, dest: string) {
|
||||||
// apply gcc13.patch
|
// apply gcc13.patch
|
||||||
try {
|
try {
|
||||||
if (which.sync("patch", { nothrow: true }) !== null) {
|
if (which.sync("patch", { nothrow: true }) !== null) {
|
||||||
const patch = join(__dirname, "gcc13.patch")
|
const patch = join(dirname, "gcc13.patch")
|
||||||
await execa("patch", ["-N", "-p1", "-i", patch], { cwd: out, stdio: "inherit" })
|
await execa("patch", ["-N", "-p1", "-i", patch], { cwd: out, stdio: "inherit" })
|
||||||
} else {
|
} else {
|
||||||
info("`patch` not found, skipping gcc13.patch, kcov may not build on gcc 13")
|
info("`patch` not found, skipping gcc13.patch, kcov may not build on gcc 13")
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
import path from "path"
|
||||||
|
import { fileURLToPath } from "url"
|
||||||
import * as io from "@actions/io"
|
import * as io from "@actions/io"
|
||||||
import { execaSync } from "execa"
|
import { execaSync } from "execa"
|
||||||
import { chmod } from "fs/promises"
|
import { chmod } from "fs/promises"
|
||||||
|
@ -10,6 +12,8 @@ import { getVersion } from "../../versions/versions.js"
|
||||||
import { setupClangFormat, setupClangTools, setupLLVM } from "../llvm.js"
|
import { setupClangFormat, setupClangTools, setupLLVM } from "../llvm.js"
|
||||||
import { VERSIONS, getLinuxUrl, getUrl } from "../llvm_url.js"
|
import { VERSIONS, getLinuxUrl, getUrl } from "../llvm_url.js"
|
||||||
|
|
||||||
|
const dirname = typeof __dirname === "string" ? __dirname : path.dirname(fileURLToPath(import.meta.url))
|
||||||
|
|
||||||
jest.setTimeout(400000)
|
jest.setTimeout(400000)
|
||||||
async function testUrl(version: string) {
|
async function testUrl(version: string) {
|
||||||
const [specificVersion, url] = await getSpecificVersionAndUrl(VERSIONS, process.platform, version, getUrl)
|
const [specificVersion, url] = await getSpecificVersionAndUrl(VERSIONS, process.platform, version, getUrl)
|
||||||
|
@ -98,13 +102,13 @@ describe("setup-llvm", () => {
|
||||||
expect(process.env.CXX?.includes("clang++")).toBeTruthy()
|
expect(process.env.CXX?.includes("clang++")).toBeTruthy()
|
||||||
|
|
||||||
// test compilation
|
// test compilation
|
||||||
const file = join(__dirname, "main.cpp")
|
const file = join(dirname, "main.cpp")
|
||||||
const main_exe = join(__dirname, addExeExt("main"))
|
const main_exe = join(dirname, addExeExt("main"))
|
||||||
execaSync("clang++", [file, "-o", main_exe], { cwd: __dirname })
|
execaSync("clang++", [file, "-o", main_exe], { cwd: dirname })
|
||||||
if (process.platform !== "win32") {
|
if (process.platform !== "win32") {
|
||||||
await chmod(main_exe, "755")
|
await chmod(main_exe, "755")
|
||||||
}
|
}
|
||||||
execaSync(main_exe, { cwd: __dirname, stdio: "inherit" })
|
execaSync(main_exe, { cwd: dirname, stdio: "inherit" })
|
||||||
})
|
})
|
||||||
|
|
||||||
it("should setup clang-format", async () => {
|
it("should setup clang-format", async () => {
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import { delimiter } from "path"
|
import path, { delimiter } from "path"
|
||||||
|
import { fileURLToPath } from "url"
|
||||||
import { GITHUB_ACTIONS } from "ci-info"
|
import { GITHUB_ACTIONS } from "ci-info"
|
||||||
import { info, warning } from "ci-log"
|
import { info, warning } from "ci-log"
|
||||||
import { addEnv } from "envosman"
|
import { addEnv } from "envosman"
|
||||||
|
@ -17,6 +18,8 @@ import { getVersion } from "../versions/versions.js"
|
||||||
import { LLVMPackages, setupLLVMApt } from "./llvm_installer.js"
|
import { LLVMPackages, setupLLVMApt } from "./llvm_installer.js"
|
||||||
import { getLLVMPackageInfo } from "./llvm_url.js"
|
import { getLLVMPackageInfo } from "./llvm_url.js"
|
||||||
|
|
||||||
|
const dirname = typeof __dirname === "string" ? __dirname : path.dirname(fileURLToPath(import.meta.url))
|
||||||
|
|
||||||
export async function setupLLVM(version: string, setupDir: string, arch: string): Promise<InstallationInfo> {
|
export async function setupLLVM(version: string, setupDir: string, arch: string): Promise<InstallationInfo> {
|
||||||
const installationInfo = await setupLLVMWithoutActivation(version, setupDir, arch)
|
const installationInfo = await setupLLVMWithoutActivation(version, setupDir, arch)
|
||||||
await activateLLVM(installationInfo.installDir ?? setupDir)
|
await activateLLVM(installationInfo.installDir ?? setupDir)
|
||||||
|
@ -146,7 +149,7 @@ export async function activateLLVM(directory: string) {
|
||||||
|
|
||||||
async function addLLVMLoggingMatcher() {
|
async function addLLVMLoggingMatcher() {
|
||||||
if (GITHUB_ACTIONS) {
|
if (GITHUB_ACTIONS) {
|
||||||
const matcherPath = join(__dirname, "llvm_matcher.json")
|
const matcherPath = join(dirname, "llvm_matcher.json")
|
||||||
if (!(await pathExists(matcherPath))) {
|
if (!(await pathExists(matcherPath))) {
|
||||||
return warning("the llvm_matcher.json file does not exist in the same folder as setup-cpp.js")
|
return warning("the llvm_matcher.json file does not exist in the same folder as setup-cpp.js")
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,13 +1,16 @@
|
||||||
|
import path from "path"
|
||||||
|
import { fileURLToPath } from "url"
|
||||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
import { GITHUB_ACTIONS } from "ci-info"
|
import { GITHUB_ACTIONS } from "ci-info"
|
||||||
|
import { error, info, warning } from "ci-log"
|
||||||
import { findVcvarsall, vsversion_to_versionnumber } from "msvc-dev-cmd/lib.js"
|
import { findVcvarsall, vsversion_to_versionnumber } from "msvc-dev-cmd/lib.js"
|
||||||
|
import { pathExists } from "path-exists"
|
||||||
import { join } from "patha"
|
import { join } from "patha"
|
||||||
import { setupChocoPack } from "../utils/setup/setupChocoPack.js"
|
import { setupChocoPack } from "../utils/setup/setupChocoPack.js"
|
||||||
import { setupVCVarsall } from "../vcvarsall/vcvarsall.js"
|
import { setupVCVarsall } from "../vcvarsall/vcvarsall.js"
|
||||||
|
|
||||||
import { error, info, warning } from "ci-log"
|
const dirname = typeof __dirname === "string" ? __dirname : path.dirname(fileURLToPath(import.meta.url))
|
||||||
import { pathExists } from "path-exists"
|
|
||||||
|
|
||||||
type MSVCVersion = "2022" | "17.0" | "2019" | "16.0" | "2017" | "15.0" | "2015" | "14.0" | "2013" | "12.0" | string
|
type MSVCVersion = "2022" | "17.0" | "2019" | "16.0" | "2017" | "15.0" | "2015" | "14.0" | "2013" | "12.0" | string
|
||||||
|
|
||||||
|
@ -72,7 +75,7 @@ export async function setupMSVC(
|
||||||
}
|
}
|
||||||
|
|
||||||
async function addMSVCLoggingMatcher() {
|
async function addMSVCLoggingMatcher() {
|
||||||
const matcherPath = join(__dirname, "msvc_matcher.json")
|
const matcherPath = join(dirname, "msvc_matcher.json")
|
||||||
if (!(await pathExists(matcherPath))) {
|
if (!(await pathExists(matcherPath))) {
|
||||||
return warning("the msvc_matcher.json file does not exist in the same folder as setup-cpp.js")
|
return warning("the msvc_matcher.json file does not exist in the same folder as setup-cpp.js")
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,13 +1,16 @@
|
||||||
import { findPyPyVersion } from "setup-python/src/find-pypy.js"
|
import path from "path"
|
||||||
import { useCpythonVersion } from "setup-python/src/find-python.js"
|
import { fileURLToPath } from "url"
|
||||||
|
|
||||||
import { debug } from "@actions/core"
|
import { debug } from "@actions/core"
|
||||||
import { GITHUB_ACTIONS } from "ci-info"
|
import { GITHUB_ACTIONS } from "ci-info"
|
||||||
import { info, warning } from "ci-log"
|
import { info, warning } from "ci-log"
|
||||||
import { pathExists } from "path-exists"
|
import { pathExists } from "path-exists"
|
||||||
import { join } from "patha"
|
import { join } from "patha"
|
||||||
|
import { findPyPyVersion } from "setup-python/src/find-pypy.js"
|
||||||
|
import { useCpythonVersion } from "setup-python/src/find-python.js"
|
||||||
import { IS_MAC } from "setup-python/src/utils.js"
|
import { IS_MAC } from "setup-python/src/utils.js"
|
||||||
|
|
||||||
|
const dirname = typeof __dirname === "string" ? __dirname : path.dirname(fileURLToPath(import.meta.url))
|
||||||
|
|
||||||
function isPyPyVersion(versionSpec: string) {
|
function isPyPyVersion(versionSpec: string) {
|
||||||
return versionSpec.startsWith("pypy")
|
return versionSpec.startsWith("pypy")
|
||||||
}
|
}
|
||||||
|
@ -53,7 +56,7 @@ export async function setupActionsPython(version: string, _setupDir: string, arc
|
||||||
}
|
}
|
||||||
|
|
||||||
async function addPythonLoggingMatcher() {
|
async function addPythonLoggingMatcher() {
|
||||||
const matcherPath = join(__dirname, "python_matcher.json")
|
const matcherPath = join(dirname, "python_matcher.json")
|
||||||
if (!(await pathExists(matcherPath))) {
|
if (!(await pathExists(matcherPath))) {
|
||||||
return warning("the python_matcher.json file does not exist in the same folder as setup-cpp.js")
|
return warning("the python_matcher.json file does not exist in the same folder as setup-cpp.js")
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,7 +21,9 @@
|
||||||
"allowImportingTsExtensions": true,
|
"allowImportingTsExtensions": true,
|
||||||
"noEmit": true,
|
"noEmit": true,
|
||||||
// target Node.js 12 https://node.green/#ES2019
|
// target Node.js 12 https://node.green/#ES2019
|
||||||
"lib": ["ES2019"],
|
"lib": [
|
||||||
|
"ES2019"
|
||||||
|
],
|
||||||
"target": "ESNext",
|
"target": "ESNext",
|
||||||
"allowJs": true,
|
"allowJs": true,
|
||||||
"esModuleInterop": true,
|
"esModuleInterop": true,
|
||||||
|
@ -36,6 +38,7 @@
|
||||||
"./src",
|
"./src",
|
||||||
"./dev/",
|
"./dev/",
|
||||||
"./*.ts",
|
"./*.ts",
|
||||||
"jest.config.mjs"
|
"jest.config.mjs",
|
||||||
|
"vite.config.mts"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
import module from "module"
|
||||||
|
import { type TerserOptions, defineConfig } from "vite"
|
||||||
|
import terserRc from "./.terserrc.mjs"
|
||||||
|
|
||||||
|
const viteConfig = defineConfig({
|
||||||
|
build: {
|
||||||
|
ssr: "./src/setup-cpp.ts",
|
||||||
|
outDir: "./dist/modern",
|
||||||
|
target: "node20",
|
||||||
|
minify: "terser",
|
||||||
|
terserOptions: terserRc as TerserOptions,
|
||||||
|
sourcemap: true,
|
||||||
|
},
|
||||||
|
ssr: {
|
||||||
|
target: "node",
|
||||||
|
noExternal: true,
|
||||||
|
external: module.builtinModules,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
export default viteConfig
|
Loading…
Reference in New Issue