mirror of https://github.com/aminya/setup-cpp.git
Compare commits
145 Commits
| Author | SHA1 | Date |
|---|---|---|
|
|
04f0267e50 | |
|
|
1155f23302 | |
|
|
867d72f10a | |
|
|
daf5d4b9da | |
|
|
31141736b3 | |
|
|
9792a2bbe0 | |
|
|
27061795a8 | |
|
|
1f17f92d6a | |
|
|
bd777f32ba | |
|
|
f3c42a2724 | |
|
|
38bbe83367 | |
|
|
156935991e | |
|
|
51ca1f1f80 | |
|
|
5c16b2f2fd | |
|
|
7c7690a1ac | |
|
|
aaf5bb78ea | |
|
|
4878b35f60 | |
|
|
957a3565d3 | |
|
|
aa2e7dbda1 | |
|
|
c9b0b918df | |
|
|
9306008c10 | |
|
|
9bc9b8cd8a | |
|
|
3481e9e840 | |
|
|
cc0e9fb8ec | |
|
|
131fbe52b0 | |
|
|
d93d404f38 | |
|
|
a55b1da658 | |
|
|
24822b26f9 | |
|
|
747e9cfe05 | |
|
|
26bd7cda45 | |
|
|
6f1d3cd81e | |
|
|
bb0daa4e32 | |
|
|
a276e6e3d1 | |
|
|
1c89539b8f | |
|
|
b32feb04d5 | |
|
|
d8571402cb | |
|
|
aa0fcb9bee | |
|
|
988cdb3377 | |
|
|
d09e6b8dab | |
|
|
c43a237684 | |
|
|
6004eca28b | |
|
|
d42bb0b88f | |
|
|
c9eb020813 | |
|
|
3cb32ec74d | |
|
|
fb3f6ad2f8 | |
|
|
559fcdd572 | |
|
|
8e6c0edd38 | |
|
|
8ffe76cee3 | |
|
|
0fa8654824 | |
|
|
928af1ef3b | |
|
|
751b635450 | |
|
|
056bb3b1d9 | |
|
|
fe10751e1c | |
|
|
c0171961c2 | |
|
|
ce9f94db97 | |
|
|
9392dd1bd8 | |
|
|
2e6bb1caa0 | |
|
|
004edc1952 | |
|
|
46cbfc276f | |
|
|
396258ba63 | |
|
|
70e614fd48 | |
|
|
075261cd2b | |
|
|
fcda129998 | |
|
|
42ccc76417 | |
|
|
af7dd8c367 | |
|
|
b21cd99e0b | |
|
|
085eecfbd1 | |
|
|
197080ad94 | |
|
|
15c6190549 | |
|
|
38b4d16f6e | |
|
|
00a96b353f | |
|
|
8d6f65af17 | |
|
|
55470af31b | |
|
|
820b8f3163 | |
|
|
3a19939866 | |
|
|
3b773c4e87 | |
|
|
0d11c74dbd | |
|
|
f0dab3c2eb | |
|
|
f015113d31 | |
|
|
9dc9c217f4 | |
|
|
5649ee9e2d | |
|
|
ecb2ccca2e | |
|
|
2a58e75f05 | |
|
|
f1825e19b6 | |
|
|
e09ae7eb8e | |
|
|
45a956b27e | |
|
|
1cfde8e589 | |
|
|
a4ca8de391 | |
|
|
022729da27 | |
|
|
6b72a94712 | |
|
|
464f3a00d5 | |
|
|
faff663ab1 | |
|
|
da1971da81 | |
|
|
dbf5b5e2bf | |
|
|
3fd1b0b32c | |
|
|
988b5fd210 | |
|
|
c9348d3629 | |
|
|
9b5350fb6e | |
|
|
b7dcc5b7e6 | |
|
|
264de9ab1a | |
|
|
fc5f36e99b | |
|
|
1134b80cc2 | |
|
|
6540167f34 | |
|
|
62036a9dd7 | |
|
|
350b16f518 | |
|
|
4c0bf0acdb | |
|
|
ecc6c767e0 | |
|
|
00fe6df1cf | |
|
|
46ac5adacc | |
|
|
e10853e3f5 | |
|
|
3fffbe9648 | |
|
|
c9145519e3 | |
|
|
5c5dffcda7 | |
|
|
6c94aa9d63 | |
|
|
80ffb63efd | |
|
|
5accdbc0a7 | |
|
|
d8c2b30cb3 | |
|
|
829f53844a | |
|
|
28288fd7bc | |
|
|
5ea110ae8d | |
|
|
9bc8921c0a | |
|
|
e8ac0e7160 | |
|
|
9d12750bbe | |
|
|
c9007c8f5a | |
|
|
05bd2b5297 | |
|
|
3d8c387d48 | |
|
|
55f022dea4 | |
|
|
75890615f7 | |
|
|
a7162273d0 | |
|
|
f40cb3bc3f | |
|
|
ac92a10732 | |
|
|
d10f4b6db0 | |
|
|
8fb6bd1b28 | |
|
|
a993d3ff56 | |
|
|
d0235b0adb | |
|
|
79f7ff95eb | |
|
|
3bc026fd01 | |
|
|
6c5ed96033 | |
|
|
70850773b2 | |
|
|
186f2dc52d | |
|
|
b683fdffce | |
|
|
bb5b6b1b44 | |
|
|
6370aaa025 | |
|
|
95a7de4f2e | |
|
|
d6447bbe91 |
|
|
@ -12,7 +12,7 @@ concurrency:
|
|||
|
||||
env:
|
||||
NODE_OPTIONS: --enable-source-maps
|
||||
version: "1.5.0"
|
||||
version: "1.8.0"
|
||||
|
||||
jobs:
|
||||
Build:
|
||||
|
|
@ -24,30 +24,32 @@ jobs:
|
|||
os:
|
||||
- ubuntu-22.04
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
ref: ${{ github.head_ref || github.ref_name }}
|
||||
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@v4
|
||||
uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version-file: "./.nvmrc"
|
||||
|
||||
- name: Setup Pnpm
|
||||
uses: pnpm/action-setup@v4
|
||||
- name: Setup Bun
|
||||
uses: oven-sh/setup-bun@v2
|
||||
with:
|
||||
bun-version-file: "package.json"
|
||||
|
||||
- name: Install
|
||||
run: |
|
||||
pnpm install
|
||||
bun install
|
||||
|
||||
- name: Build
|
||||
run: |
|
||||
pnpm build
|
||||
pnpm build.docker-ci
|
||||
bun run build
|
||||
bun run build.docker-ci
|
||||
|
||||
- name: Lint
|
||||
run: |
|
||||
pnpm run test.lint
|
||||
bun run test.lint
|
||||
|
||||
- name: Update Dist
|
||||
run: |
|
||||
|
|
@ -67,7 +69,7 @@ jobs:
|
|||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Upload Dist
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@v6
|
||||
if: always()
|
||||
with:
|
||||
name: dist
|
||||
|
|
@ -85,44 +87,45 @@ jobs:
|
|||
fail-fast: false
|
||||
matrix:
|
||||
os:
|
||||
- windows-2019
|
||||
- ubuntu-20.04
|
||||
- windows-2022
|
||||
- ubuntu-22.04
|
||||
- ubuntu-22.04-arm
|
||||
- macos-13 # x64
|
||||
- macos-15-intel # x64
|
||||
- macos-14 # arm64
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v6
|
||||
|
||||
- name: Download Artifacts
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@v7
|
||||
with:
|
||||
name: dist
|
||||
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@v4
|
||||
uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version-file: "./.nvmrc"
|
||||
|
||||
- name: Setup Pnpm
|
||||
uses: pnpm/action-setup@v4
|
||||
- name: Setup Bun
|
||||
uses: oven-sh/setup-bun@v2
|
||||
with:
|
||||
bun-version-file: "package.json"
|
||||
|
||||
- name: Cache node_modules
|
||||
if: ${{ !contains(matrix.os, 'windows') }}
|
||||
uses: actions/cache@v4
|
||||
uses: actions/cache@v5
|
||||
with:
|
||||
path: |
|
||||
~/.pnpm-store
|
||||
D:\.pnpm-store
|
||||
~/.bun
|
||||
./node_modules
|
||||
key: "setupcpp-node_modules-cache-OS:${{ matrix.os }}-${{ hashFiles('./.npmrc', './package.json', './.nvmrc', './pnpm-*.yaml') }}"
|
||||
key: "setupcpp-node_modules-cache-OS:${{ matrix.os }}-${{ hashFiles('./.npmrc', './package.json', './.nvmrc', './bun.lock') }}"
|
||||
restore-keys: |
|
||||
"setupcpp-node_modules-cache-OS:${{ matrix.os }}-"
|
||||
|
||||
- name: Cache Turbo
|
||||
uses: rharkor/caching-for-turbo@v1.6
|
||||
uses: rharkor/caching-for-turbo@v1.8
|
||||
|
||||
- name: Cache .cache
|
||||
uses: actions/cache@v4
|
||||
uses: actions/cache@v5
|
||||
with:
|
||||
path: |
|
||||
./.cache/eslint
|
||||
|
|
@ -134,15 +137,15 @@ jobs:
|
|||
|
||||
- name: Install
|
||||
run: |
|
||||
pnpm install
|
||||
bun install
|
||||
|
||||
# Create self-contained executable that bundles Nodejs
|
||||
- name: Create Executable
|
||||
run: |
|
||||
pnpm run pack.exe
|
||||
bun run pack.exe
|
||||
|
||||
- name: Upload Executables
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@v6
|
||||
with:
|
||||
name: exe-${{ matrix.os }}
|
||||
path: |
|
||||
|
|
@ -158,51 +161,50 @@ jobs:
|
|||
matrix:
|
||||
os:
|
||||
- windows-2022
|
||||
- windows-2019
|
||||
- ubuntu-24.04-arm
|
||||
- ubuntu-24.04
|
||||
- ubuntu-22.04-arm
|
||||
- ubuntu-22.04
|
||||
- ubuntu-20.04
|
||||
# - ubuntu-20.04
|
||||
- macos-15 # arm64
|
||||
# - macos-15-large # x64
|
||||
- macos-14 # arm64
|
||||
# - macos-14-large # x64
|
||||
- macos-15-intel # x64
|
||||
# - macos-14-xlarge #arm64
|
||||
- macos-13 # x64
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
- name: Download Dist
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@v7
|
||||
with:
|
||||
name: dist
|
||||
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@v4
|
||||
uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version-file: "./.nvmrc"
|
||||
|
||||
- name: Setup Pnpm
|
||||
uses: pnpm/action-setup@v4
|
||||
- name: Setup Bun
|
||||
uses: oven-sh/setup-bun@v2
|
||||
with:
|
||||
bun-version-file: "package.json"
|
||||
|
||||
- name: Cache node_modules
|
||||
if: ${{ !contains(matrix.os, 'windows') }}
|
||||
uses: actions/cache@v4
|
||||
uses: actions/cache@v5
|
||||
with:
|
||||
path: |
|
||||
~/.pnpm-store
|
||||
D:\.pnpm-store
|
||||
~/.bun
|
||||
./node_modules
|
||||
key: "setupcpp-node_modules-cache-OS:${{ matrix.os }}-${{ hashFiles('./.npmrc', './package.json', './.nvmrc', './pnpm-*.yaml') }}"
|
||||
key: "setupcpp-node_modules-cache-OS:${{ matrix.os }}-${{ hashFiles('./.npmrc', './package.json', './.nvmrc', './bun.lock') }}"
|
||||
restore-keys: |
|
||||
"setupcpp-node_modules-cache-OS:${{ matrix.os }}-"
|
||||
|
||||
- name: Install
|
||||
run: |
|
||||
pnpm install
|
||||
bun install
|
||||
|
||||
# - name: Setup SSH debugging session
|
||||
# uses: mxschmitt/action-tmate@v3
|
||||
|
|
@ -210,12 +212,12 @@ jobs:
|
|||
- name: Tests
|
||||
if: ${{ !contains(github.event.head_commit.message, '[skip test]') }}
|
||||
run: |
|
||||
pnpm run test
|
||||
bun run test
|
||||
env:
|
||||
RUNNER_OS_NAME: ${{ matrix.os }}
|
||||
|
||||
- name: Setup Node 20
|
||||
uses: actions/setup-node@v4
|
||||
uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version: 20
|
||||
|
||||
|
|
@ -234,7 +236,7 @@ jobs:
|
|||
|
||||
- name: Setup Node 12
|
||||
if: ${{ !contains(matrix.os, 'macos-14') && !contains(matrix.os, 'macos-15') }}
|
||||
uses: actions/setup-node@v4
|
||||
uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version: 12
|
||||
- name: Smoke Test Legacy Bundle
|
||||
|
|
@ -257,7 +259,7 @@ jobs:
|
|||
- { distro: "ubuntu", image: "setup-cpp-ubuntu", tag: "24.04" }
|
||||
- { distro: "ubuntu", image: "setup-cpp-ubuntu", tag: "22.04" }
|
||||
- { distro: "ubuntu", image: "setup-cpp-ubuntu", tag: "20.04" }
|
||||
- { distro: "fedora", image: "setup-cpp-fedora", tag: "40" }
|
||||
- { distro: "fedora", image: "setup-cpp-fedora", tag: "44" }
|
||||
- { distro: "arch", image: "setup-cpp-arch", tag: "base" }
|
||||
- { distro: "alpine", image: "setup-cpp-alpine", tag: "3.21", base_version: "22-alpine3.21" }
|
||||
include:
|
||||
|
|
@ -274,12 +276,12 @@ jobs:
|
|||
platform: linux/arm64
|
||||
container: { distro: "alpine", image: "setup-cpp-alpine", tag: "3.21", base_version: "22-alpine3.21" }
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
- name: Download Dist
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@v7
|
||||
with:
|
||||
name: dist
|
||||
|
||||
|
|
@ -327,7 +329,7 @@ jobs:
|
|||
|
||||
- name: Docker Readme for setup-cpp-${{matrix.container.distro }}
|
||||
if: ${{ github.event_name != 'pull_request' || contains(github.event.head_commit.message, '[push docker]') }}
|
||||
uses: peter-evans/dockerhub-description@v4
|
||||
uses: peter-evans/dockerhub-description@v5
|
||||
with:
|
||||
username: aminya
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
|
|
@ -336,6 +338,7 @@ jobs:
|
|||
|
||||
- name: Build setup-cpp-${{matrix.container.distro }}-llvm
|
||||
id: build_llvm
|
||||
if: ${{ matrix.container.distro != 'arch' }}
|
||||
uses: docker/build-push-action@v6
|
||||
with:
|
||||
context: .
|
||||
|
|
@ -349,19 +352,20 @@ jobs:
|
|||
cache-to: type=inline
|
||||
|
||||
- name: Tag latest locally
|
||||
if: ${{ matrix.container.distro != 'arch' }}
|
||||
run: |
|
||||
docker tag aminya/${{ matrix.container.image }}-llvm:${{ matrix.container.tag }}-${{ env.version }}-${{ steps.platform.outputs.suffix }} aminya/${{ matrix.container.image }}-llvm:latest
|
||||
docker tag aminya/${{ matrix.container.image }}-llvm:${{ matrix.container.tag }}-${{ env.version }}-${{ steps.platform.outputs.suffix }} aminya/${{ matrix.container.image }}-llvm:${{ matrix.container.tag }}
|
||||
|
||||
- name: Push latest to Docker Hub
|
||||
if: ${{ github.event_name != 'pull_request' && matrix.container.distro != 'ubuntu' && matrix.container.distro != 'alpine' }}
|
||||
if: ${{ github.event_name != 'pull_request' && matrix.container.distro != 'ubuntu' && matrix.container.distro != 'alpine' && matrix.container.distro != 'arch' }}
|
||||
run: |
|
||||
docker push aminya/${{ matrix.container.image }}-llvm:latest
|
||||
docker push aminya/${{ matrix.container.image }}-llvm:${{ matrix.container.tag }}
|
||||
|
||||
- name: Docker Readme for setup-cpp-${{matrix.container.distro }}-llvm
|
||||
if: ${{ github.event_name != 'pull_request' || contains(github.event.head_commit.message, '[push docker]') }}
|
||||
uses: peter-evans/dockerhub-description@v4
|
||||
if: ${{ (github.event_name != 'pull_request' || contains(github.event.head_commit.message, '[push docker]')) && matrix.container.distro != 'arch' }}
|
||||
uses: peter-evans/dockerhub-description@v5
|
||||
with:
|
||||
username: aminya
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
|
|
@ -369,7 +373,7 @@ jobs:
|
|||
readme-filepath: ./README_DOCKER.md
|
||||
|
||||
- name: Test LLVM
|
||||
if: ${{ !contains(github.event.head_commit.message, '[skip test]') }}
|
||||
if: ${{ !contains(github.event.head_commit.message, '[skip test]') && matrix.container.distro != 'arch' }}
|
||||
uses: docker/build-push-action@v6
|
||||
with:
|
||||
context: .
|
||||
|
|
@ -405,7 +409,7 @@ jobs:
|
|||
|
||||
- name: Docker Readme for setup-cpp-${{matrix.container.distro }}-gcc
|
||||
if: ${{ github.event_name != 'pull_request' || contains(github.event.head_commit.message, '[push docker]') }}
|
||||
uses: peter-evans/dockerhub-description@v4
|
||||
uses: peter-evans/dockerhub-description@v5
|
||||
with:
|
||||
username: aminya
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
|
|
@ -450,7 +454,7 @@ jobs:
|
|||
|
||||
- name: Docker Readme for setup-cpp-${{matrix.container.distro }}-mingw
|
||||
if: ${{ github.event_name != 'pull_request' && matrix.container.distro != 'fedora' && !(matrix.container.distro == 'alpine' && matrix.platform == 'linux/arm64') }}
|
||||
uses: peter-evans/dockerhub-description@v4
|
||||
uses: peter-evans/dockerhub-description@v5
|
||||
with:
|
||||
username: aminya
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
|
|
@ -493,7 +497,7 @@ jobs:
|
|||
- { distro: "alpine", image: "setup-cpp-alpine", tag: "3.21", suffix: "", latest: true }
|
||||
- { distro: "alpine", image: "setup-cpp-alpine", tag: "3.21", suffix: "-llvm", latest: true }
|
||||
- { distro: "alpine", image: "setup-cpp-alpine", tag: "3.21", suffix: "-gcc", latest: true }
|
||||
- { distro: "alpine", image: "setup-cpp-alpine", tag: "3.21", suffix: "-mingw", latest: true }
|
||||
# - { distro: "alpine", image: "setup-cpp-alpine", tag: "3.21", suffix: "-mingw", latest: true }
|
||||
steps:
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
|
@ -532,7 +536,7 @@ jobs:
|
|||
runs-on: ubuntu-24.04
|
||||
steps:
|
||||
- name: Download Executables
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@v7
|
||||
with:
|
||||
pattern: exe-*
|
||||
path: ./exe/
|
||||
|
|
@ -544,7 +548,7 @@ jobs:
|
|||
chmod +x -R ./exe/
|
||||
|
||||
- name: Download Dist
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@v7
|
||||
with:
|
||||
name: dist
|
||||
path: dist/
|
||||
|
|
|
|||
|
|
@ -24,3 +24,5 @@ coverage
|
|||
/src/llvm/assets/
|
||||
|
||||
/build
|
||||
dist/library
|
||||
*.tgz
|
||||
|
|
|
|||
|
|
@ -0,0 +1,24 @@
|
|||
.DS_Store
|
||||
Thumbs.db
|
||||
**/node_modules
|
||||
**/temp-*
|
||||
**/tsconfig.tsbuildinfo
|
||||
.parcel-cache
|
||||
**/exe/
|
||||
**/log
|
||||
**/exe
|
||||
**/cache
|
||||
**/.cache
|
||||
**/coverage
|
||||
**/.turbo
|
||||
src/llvm/assets/
|
||||
**/build
|
||||
**/__tests__
|
||||
**/dev/cpp_vcpkg_project
|
||||
**/packages/*/dist/
|
||||
**/*.tgz
|
||||
**/.eslintrc.json
|
||||
**/jest.config.mjs
|
||||
.vscode/
|
||||
.github/
|
||||
biome.jsonc
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
import { buildTerserOptions } from "terser-config-atomic/dist/builder.js"
|
||||
const config = buildTerserOptions(process.env.NODE_ENV, undefined, true)
|
||||
|
||||
if (
|
||||
typeof config.compress === "object"
|
||||
&& "unsafe_math" in config.compress
|
||||
) {
|
||||
config.compress.unsafe_math = false
|
||||
}
|
||||
|
||||
export default config
|
||||
|
|
@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.21...3.28)
|
|||
|
||||
project(
|
||||
setup_cpp_tests
|
||||
VERSION 1.5.0
|
||||
VERSION 1.8.0
|
||||
DESCRIPTION "Tests for setup-cpp"
|
||||
HOMEPAGE_URL "https://github.com/aminya/setup-cpp"
|
||||
LANGUAGES CXX C)
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
# Contributing
|
||||
|
||||
You will need [`pnpm`](https://pnpm.io/installation) to build and test `setup-cpp`:
|
||||
You will need [`bun`](https://bun.com/) to build and test `setup-cpp`:
|
||||
|
||||
```shell
|
||||
pnpm install
|
||||
bun install
|
||||
```
|
||||
|
||||
To avoid permenant changes to your system, you can use the test docker images under `./dev/docker/__tests__`.
|
||||
|
|
|
|||
24
README.md
24
README.md
|
|
@ -31,12 +31,12 @@ Setting up a **cross-platform** environment for building and testing C++/C proje
|
|||
| --------------- | ----------------------------------------------------------------------------------------------------------- |
|
||||
| compiler | llvm, gcc, msvc, apple-clang, vcvarsall |
|
||||
| build system | cmake, ninja, meson, make, task, bazel |
|
||||
| package manager | vcpkg, conan, choco, brew, nala, git, setup-cpp |
|
||||
| package manager | vcpkg, conan, choco, brew, apt-fast, nala, git, setup-cpp |
|
||||
| analyzer/linter | clang-tidy, clang-format, cppcheck, cpplint, flawfinder, lizard, infer, cmakelang, cmake-format, cmake-lint |
|
||||
| cache | ccache, sccache |
|
||||
| documentation | doxygen, graphviz |
|
||||
| coverage | gcovr, opencppcoverage, kcov |
|
||||
| other | python, powershell, sevenzip |
|
||||
| other | python, powershell, sevenzip, tar |
|
||||
|
||||
`setup-cpp` automatically handles the dependencies of the selected tool (e.g., `python` is required for `conan`).
|
||||
|
||||
|
|
@ -70,19 +70,19 @@ NOTE: setup-cpp requires Nodejs 12 or higher. If Nodejs shipped with your distri
|
|||
|
||||
#### With executable
|
||||
|
||||
Download the executable for your platform from [here](https://github.com/aminya/setup-cpp/releases/tag/v1.5.0), and run it with the available options. You can also automate downloading using `curl`, or other similar tools.
|
||||
Download the executable for your platform from [here](https://github.com/aminya/setup-cpp/releases/tag/v1.8.0), and run it with the available options. You can also automate downloading using `curl`, or other similar tools.
|
||||
|
||||
```shell
|
||||
# windows x64
|
||||
curl -o ./setup-cpp.exe -LJ "https://github.com/aminya/setup-cpp/releases/download/v1.5.0/setup-cpp-x64-windows.exe"
|
||||
curl -o ./setup-cpp.exe -LJ "https://github.com/aminya/setup-cpp/releases/download/v1.8.0/setup-cpp-x64-windows.exe"
|
||||
# linux x64
|
||||
curl -o ./setup-cpp -LJ "https://github.com/aminya/setup-cpp/releases/download/v1.5.0/setup-cpp-x64-linux"
|
||||
curl -o ./setup-cpp -LJ "https://github.com/aminya/setup-cpp/releases/download/v1.8.0/setup-cpp-x64-linux"
|
||||
# linux arm64
|
||||
curl -o ./setup-cpp -LJ "https://github.com/aminya/setup-cpp/releases/download/v1.5.0/setup-cpp-arm64-linux"
|
||||
curl -o ./setup-cpp -LJ "https://github.com/aminya/setup-cpp/releases/download/v1.8.0/setup-cpp-arm64-linux"
|
||||
# macos arm64
|
||||
curl -o ./setup-cpp -LJ "https://github.com/aminya/setup-cpp/releases/download/v1.5.0/setup-cpp-arm64-macos"
|
||||
curl -o ./setup-cpp -LJ "https://github.com/aminya/setup-cpp/releases/download/v1.8.0/setup-cpp-arm64-macos"
|
||||
# macos x64
|
||||
curl -o ./setup-cpp -LJ "https://github.com/aminya/setup-cpp/releases/download/v1.5.0/setup-cpp-x64-macos"
|
||||
curl -o ./setup-cpp -LJ "https://github.com/aminya/setup-cpp/releases/download/v1.8.0/setup-cpp-x64-macos"
|
||||
```
|
||||
|
||||
An example that installs llvm, cmake, ninja, ccache, and vcpkg:
|
||||
|
|
@ -213,8 +213,8 @@ The tags are in the following template:
|
|||
|
||||
- Base image: `aminya/setup-cpp-ubuntu:24.04`
|
||||
- Compiler image: `aminya/setup-cpp-ubuntu-llvm:24.04`
|
||||
- Base image with pinned setup-cpp version: `aminya/setup-cpp-ubuntu:24.04-v1.5.0`
|
||||
- Compiler image with pinned setup-cpp version: `aminya/setup-cpp-ubuntu-llvm:24.04-v1.5.0`
|
||||
- Base image with pinned setup-cpp version: `aminya/setup-cpp-ubuntu:24.04-v1.8.0`
|
||||
- Compiler image with pinned setup-cpp version: `aminya/setup-cpp-ubuntu-llvm:24.04-v1.8.0`
|
||||
|
||||
The supported platforms are `ubuntu`, `alpine`, `fedora`, and `arch`. The supported compilers are `llvm`, `gcc`, and `mingw`.
|
||||
|
||||
|
|
@ -366,7 +366,7 @@ RUN apt-get update -qq && \
|
|||
# install nodejs
|
||||
apt-get install -y --no-install-recommends nodejs npm && \
|
||||
# install setup-cpp
|
||||
npm install -g setup-cpp@v1.5.0 && \
|
||||
npm install -g setup-cpp@v1.8.0 && \
|
||||
# install the compiler and tools
|
||||
NODE_OPTIONS="--enable-source-maps" \
|
||||
setup-cpp \
|
||||
|
|
@ -476,7 +476,7 @@ stages:
|
|||
apt-get install -y --no-install-recommends nodejs npm
|
||||
|
||||
# install setup-cpp
|
||||
npm install -g setup-cpp@v1.5.0
|
||||
npm install -g setup-cpp@v1.8.0
|
||||
|
||||
# install the compiler and tools
|
||||
./setup-cpp-x64-linux --compiler $compiler --cmake true --ninja true --ccache true --vcpkg true
|
||||
|
|
|
|||
|
|
@ -20,8 +20,8 @@ The tags are in the following template:
|
|||
|
||||
- Base image: `aminya/setup-cpp-ubuntu:24.04`
|
||||
- Compiler image: `aminya/setup-cpp-ubuntu-llvm:24.04`
|
||||
- Base image with pinned setup-cpp version: `aminya/setup-cpp-ubuntu:24.04-v1.5.0`
|
||||
- Compiler image with pinned setup-cpp version: `aminya/setup-cpp-ubuntu-llvm:24.04-v1.5.0`
|
||||
- Base image with pinned setup-cpp version: `aminya/setup-cpp-ubuntu:24.04-v1.8.0`
|
||||
- Compiler image with pinned setup-cpp version: `aminya/setup-cpp-ubuntu-llvm:24.04-v1.8.0`
|
||||
|
||||
The supported platforms are `ubuntu`, `alpine`, `fedora`, and `arch`. The supported compilers are `llvm`, `gcc`, and `mingw`.
|
||||
|
||||
|
|
|
|||
|
|
@ -163,6 +163,12 @@ inputs:
|
|||
node-package-manager:
|
||||
description: "The node package manager to use (npm/yarn/pnpm) when installing setup-cpp globally"
|
||||
required: false
|
||||
git:
|
||||
description: "Wether to install git (true/false) or the specific version to install."
|
||||
required: false
|
||||
tar:
|
||||
description: "Wether to install tar (true/false) or the specific version to install."
|
||||
required: false
|
||||
|
||||
runs:
|
||||
using: "node20"
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import type { TransformOptions } from "@babel/core"
|
||||
// @ts-ignore
|
||||
// @ts-expect-error no types
|
||||
import RemoveNodePrefix from "@upleveled/babel-plugin-remove-node-prefix"
|
||||
|
||||
const babelConfig: TransformOptions = {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,2 @@
|
|||
[install]
|
||||
linker = "hoisted"
|
||||
|
|
@ -31,6 +31,8 @@ words:
|
|||
- clangd
|
||||
- cmake
|
||||
- cmakeformat
|
||||
- cmakelang
|
||||
- cmakelint
|
||||
- cobertura
|
||||
- copr
|
||||
- CPATH
|
||||
|
|
@ -48,6 +50,7 @@ words:
|
|||
- dyld
|
||||
- eabi
|
||||
- envosman
|
||||
- envosmanrc
|
||||
- esac
|
||||
- esbuild
|
||||
- esmodule
|
||||
|
|
@ -57,6 +60,7 @@ words:
|
|||
- gcovr
|
||||
- ghes
|
||||
- Graphviz
|
||||
- gtar
|
||||
- hadolint
|
||||
- iarna
|
||||
- inja
|
||||
|
|
@ -72,6 +76,7 @@ words:
|
|||
- libstdc
|
||||
- libtinfo
|
||||
- liuli
|
||||
- llvmorg
|
||||
- mdimporterdir
|
||||
- memoizee
|
||||
- mkdirp
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
## base image
|
||||
FROM --platform=$BUILDPLATFORM fedora:40 AS fedora-nodejs
|
||||
FROM --platform=$BUILDPLATFORM fedora:44 AS fedora-nodejs
|
||||
|
||||
# install nodejs
|
||||
RUN dnf -y install nodejs npm && \
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ COPY "./dist/modern" "/usr/lib/setup-cpp/"
|
|||
|
||||
# install the cpp tools
|
||||
RUN node --enable-source-maps /usr/lib/setup-cpp/setup-cpp.mjs \
|
||||
--apt-fast true \
|
||||
--cmake true \
|
||||
--ninja true \
|
||||
--task true \
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
## base image
|
||||
FROM fedora:40 AS setup-cpp-fedora
|
||||
FROM fedora:44 AS setup-cpp-fedora
|
||||
|
||||
# install nodejs
|
||||
RUN dnf -y install nodejs npm && \
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
## base image
|
||||
FROM fedora:40 AS setup-cpp-fedora-mingw
|
||||
FROM fedora:44 AS setup-cpp-fedora-mingw
|
||||
|
||||
# install nodejs
|
||||
RUN dnf -y install nodejs npm && \
|
||||
|
|
|
|||
|
|
@ -1 +0,0 @@
|
|||
export {};
|
||||
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
|
|
@ -1 +0,0 @@
|
|||
export declare function setupBazel(version: string, _setupDir: string, _arch: string): Promise<import("../utils/setup/setupBin.js").InstallationInfo>;
|
||||
|
|
@ -1 +0,0 @@
|
|||
export declare function setupCcache(version: string, _setupDir: string, _arch: string): Promise<import("../utils/setup/setupBin.js").InstallationInfo>;
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
import type { InstallationInfo } from "../utils/setup/setupBin.js";
|
||||
export declare function setupChocolatey(_version: string, _setupDir: string, _arch: string): Promise<InstallationInfo | undefined>;
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
export { default as mri } from "mri";
|
||||
export { default as updateNotifier } from "simple-update-notifier";
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1,3 +0,0 @@
|
|||
import { type InstallationInfo } from "../utils/setup/setupBin.js";
|
||||
/** Setup cmake */
|
||||
export declare function setupCmake(version: string, setupDir: string, arch: string): Promise<InstallationInfo>;
|
||||
|
|
@ -1 +0,0 @@
|
|||
export declare function setupCmakelang(version: string | undefined, _setupDir: string, _arch: string): Promise<import("../utils/setup/setupBin.js").InstallationInfo>;
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
export type CompilerInfo = {
|
||||
compiler: string;
|
||||
version: string | undefined;
|
||||
};
|
||||
/**
|
||||
* Detecting the compiler version by looking for a version-like pattern.
|
||||
* Supports compiler names that contain hyphens and various version formats.
|
||||
*
|
||||
* @param compilerAndVersion - The compiler and version string
|
||||
* @returns The compiler and version
|
||||
*
|
||||
* @nothrow It doesn't throw any error, but it logs the error if it fails to parse the compiler info
|
||||
*/
|
||||
export declare function getCompilerInfo(compilerAndVersion: string): CompilerInfo;
|
||||
/** Installing the specified compiler */
|
||||
export declare function installCompiler(compiler: string, version: string | undefined, osVersion: number[] | null, setupCppDir: string, arch: string, successMessages: string[], errorMessages: string[]): Promise<void>;
|
||||
|
|
@ -1 +0,0 @@
|
|||
export declare function setupConan(version: string | undefined, _setupDir: string, _arch: string): Promise<import("../utils/setup/setupBin.js").InstallationInfo>;
|
||||
|
|
@ -1 +0,0 @@
|
|||
export declare function setupCppcheck(version: string | undefined, _setupDir: string, _arch: string): Promise<import("../utils/setup/setupBin.js").InstallationInfo>;
|
||||
|
|
@ -1 +0,0 @@
|
|||
export declare function setupCpplint(version: string | undefined, _setupDir: string, _arch: string): Promise<import("../utils/setup/setupBin.js").InstallationInfo>;
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
export declare function setupDoxygen(version: string, setupDir: string, arch: string): Promise<{
|
||||
binDir: string;
|
||||
}>;
|
||||
|
|
@ -1 +0,0 @@
|
|||
export declare function setupFlawfinder(version: string | undefined, _setupDir: string, _arch: string): Promise<import("../utils/setup/setupBin.js").InstallationInfo>;
|
||||
|
|
@ -1 +0,0 @@
|
|||
export {};
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
import type { InstallationInfo } from "../utils/setup/setupBin.js";
|
||||
export declare const dirname: string;
|
||||
export declare function setupGcc(version: string, setupDir: string, arch: string, priority?: number): Promise<InstallationInfo | undefined>;
|
||||
|
|
@ -1 +0,0 @@
|
|||
export declare function addGccLoggingMatcher(): Promise<void>;
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
import { type InstallationInfo, type PackageInfo } from "../utils/setup/setupBin.js";
|
||||
export declare function setupMingw(version: string, setupDir: string, arch: string): Promise<InstallationInfo | undefined>;
|
||||
export declare function getMinGWPackageInfo(version: string, platform: NodeJS.Platform, arch: string): Promise<PackageInfo>;
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
export declare function setupGcovr(version: string | undefined, _setupDir: string, _arch: string): Promise<import("../utils/setup/setupBin.js").InstallationInfo>;
|
||||
export declare function activateGcovLLVM(): Promise<void>;
|
||||
export declare function activateGcovGCC(gccVersion: string): Promise<void>;
|
||||
|
|
@ -1 +0,0 @@
|
|||
export declare function setupGit(version: string, _setupDir: string, _arch: string): Promise<import("../utils/setup/setupBin.js").InstallationInfo | undefined>;
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1,2 +0,0 @@
|
|||
import type { InstallationInfo } from "../utils/setup/setupBin.js";
|
||||
export declare function setupGraphviz(version: string, _setupDir: string, _arch: string): Promise<InstallationInfo>;
|
||||
|
|
@ -1 +0,0 @@
|
|||
export {};
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
import { type InstallationInfo } from "../utils/setup/setupBin.js";
|
||||
/** Setup infer */
|
||||
export declare function setupInfer(version: string, setupDir: string, arch: string): Promise<InstallationInfo>;
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
import { type ToolName } from "./tool.js";
|
||||
export declare const DEFAULT_TIMEOUT: number;
|
||||
export declare function installTool(tool: ToolName, version: string, osVersion: number[] | null, arch: string, setupCppDir: string, successMessages: string[], errorMessages: string[], _timeout?: number): Promise<void>;
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
import { type InstallationInfo } from "../utils/setup/setupBin.js";
|
||||
export declare function setupKcov(versionGiven: string, setupDir: string, arch: string): Promise<InstallationInfo | undefined>;
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
import packageJson from "../package-version.json";
|
||||
import { type Opts } from "./options.js";
|
||||
export { GITHUB_ACTIONS } from "ci-info";
|
||||
export * from "ci-log";
|
||||
export { packageJson };
|
||||
export { maybeGetInput, type Opts } from "./options.js";
|
||||
export { type Inputs, inputs } from "./tool.js";
|
||||
/**
|
||||
* The result of the setup, with the success and error messages. If the setup was successful, the error messages are empty.
|
||||
*/
|
||||
export type SetupCppResult = {
|
||||
successMessages: string[];
|
||||
errorMessages: string[];
|
||||
};
|
||||
/**
|
||||
* Set up the C++ tools
|
||||
*
|
||||
* @param opts - The options
|
||||
* @returns The result of the setup, with the success and error messages. If the setup was successful, the error messages are empty.
|
||||
*/
|
||||
export declare function setupCpp(opts?: Opts): Promise<SetupCppResult>;
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1 +0,0 @@
|
|||
export declare function setupLizard(version: string | undefined, _setupDir: string, _arch: string): Promise<import("../utils/setup/setupBin.js").InstallationInfo>;
|
||||
|
|
@ -1 +0,0 @@
|
|||
export declare function setupAppleClang(): Promise<void>;
|
||||
|
|
@ -1 +0,0 @@
|
|||
export {};
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
import type { InstallationInfo } from "../utils/setup/setupBin.js";
|
||||
export declare function setupLLVM(version: string, setupDir: string, arch: string): Promise<InstallationInfo>;
|
||||
export declare function activateLLVM(directory: string, version: string): Promise<void>;
|
||||
/**
|
||||
* Setup clang-format
|
||||
*
|
||||
* This uses the LLVM installer on Ubuntu, and the LLVM binaries on other platforms
|
||||
*/
|
||||
export declare function setupClangFormat(version: string, setupDir: string, arch: string): Promise<InstallationInfo>;
|
||||
/** Setup llvm tools (clang tidy, etc.) without activating llvm and using it as the compiler */
|
||||
export declare function setupClangTools(version: string, setupDir: string, arch: string): Promise<InstallationInfo>;
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
import { type InstallationInfo } from "setup-alpine";
|
||||
/**
|
||||
* Try to setup LLVM via the apk package manager
|
||||
*
|
||||
* @param {string} version - The version of LLVM to install
|
||||
*
|
||||
* @returns {InstallationInfo} The installation info if the installation was successful
|
||||
* @returns {undefined} If the installation fails, it will try to remove the repository and will return undefined
|
||||
*/
|
||||
export declare function trySetupLLVMApk(version: string): Promise<InstallationInfo | undefined>;
|
||||
export declare function setupLLVMApk(version: string): Promise<InstallationInfo>;
|
||||
|
|
@ -1,27 +0,0 @@
|
|||
import type { InstallationInfo } from "../utils/setup/setupBin.js";
|
||||
export declare enum LLVMPackages {
|
||||
All = 0,
|
||||
ClangFormat = 1,
|
||||
Core = 2
|
||||
}
|
||||
/**
|
||||
* Try to setup LLVM via the apt package manager
|
||||
*
|
||||
* @param {string} version - The version of LLVM to install
|
||||
* @param {LLVMPackages} packages - The packages to install
|
||||
*
|
||||
* @returns {InstallationInfo} The installation info if the installation was successful
|
||||
* @returns {undefined} If the installation fails, it will try to remove the repository and will return undefined
|
||||
*/
|
||||
export declare function trySetupLLVMApt(version: string, packages?: LLVMPackages): Promise<InstallationInfo | undefined>;
|
||||
/**
|
||||
* Setup LLVM via the apt package manager
|
||||
*
|
||||
* @note assumes this is running on an Ubuntu/Debian system
|
||||
*
|
||||
* @param {string} version - The version of LLVM to install
|
||||
* @param {LLVMPackages} packages - The packages to install
|
||||
*
|
||||
* @returns {InstallationInfo} The installation info if the installation was successful
|
||||
*/
|
||||
export declare function setupLLVMApt(version: string, packages?: LLVMPackages): Promise<InstallationInfo>;
|
||||
|
|
@ -1 +0,0 @@
|
|||
export declare function setupLLVMBin(version: string, setupDir: string, arch: string): Promise<import("../utils/setup/setupBin.js").InstallationInfo>;
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
export declare function trySetupLLVMBrew(version: string, _setupDir: string, _arch: string): Promise<import("setup-brew/dist/InstallationInfo").InstallationInfo | undefined>;
|
||||
export declare function setupLLVMBrew(version: string, _setupDir: string, _arch: string): Promise<import("setup-brew/dist/InstallationInfo").InstallationInfo>;
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
import type { PackageInfo } from "../utils/setup/setupBin.js";
|
||||
export declare function getLLVMPackageInfo(version: string, platform: NodeJS.Platform, arch: string): Promise<PackageInfo>;
|
||||
export declare function getLLVMAssetURL(platform: string, arch: string, version: string): Promise<string>;
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
import memoize from "memoizee";
|
||||
declare function majorLLVMVersion_(version: string): number;
|
||||
export declare const majorLLVMVersion: typeof majorLLVMVersion_ & memoize.Memoized<typeof majorLLVMVersion_>;
|
||||
export {};
|
||||
|
|
@ -143,5 +143,5 @@ if [[ "${VERSION_CODENAME}" == "bookworm" ]]; then
|
|||
add-apt-repository -y "${REPO_NAME}"
|
||||
fi
|
||||
|
||||
add-apt-repository -y --no-update --remove "${REPO_NAME}"
|
||||
add-apt-repository -y --remove "${REPO_NAME}"
|
||||
apt-get update
|
||||
|
|
|
|||
|
|
@ -1 +0,0 @@
|
|||
export declare function setupMacOSSDK(): Promise<void>;
|
||||
|
|
@ -1 +0,0 @@
|
|||
export declare function setupMake(version: string, _setupDir: string, _arch: string): Promise<import("../utils/setup/setupBin.js").InstallationInfo>;
|
||||
|
|
@ -1 +0,0 @@
|
|||
export declare function setupMeson(version: string | undefined, _setupDir: string, _arch: string): Promise<import("../utils/setup/setupBin.js").InstallationInfo>;
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
type MSVCVersion = "2022" | "17.0" | "2019" | "16.0" | "2017" | "15.0" | "2015" | "14.0" | "2013" | "12.0" | string;
|
||||
export declare function setupMSVC(versionGiven: MSVCVersion, _setupDir: string, arch: string, sdk?: string, uwp?: boolean, spectre?: boolean): Promise<void>;
|
||||
export {};
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
export declare function setupNala(version: string, _setupDir: string, _arch: string): Promise<{
|
||||
binDir: string;
|
||||
} | undefined>;
|
||||
export declare function bashWithNala(script: string): string;
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
import { type InstallationInfo } from "../utils/setup/setupBin.js";
|
||||
export declare function setupNinja(version: string, setupDir: string, arch: string): Promise<InstallationInfo>;
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
export declare function setupOpencppcoverage(version: string | undefined, _setupDir: string, _arch: string): Promise<{
|
||||
binDir: string;
|
||||
} | undefined>;
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
import type { AddPathOptions } from "envosman";
|
||||
import type { Inputs } from "./tool.ts";
|
||||
import type { InstallationInfo } from "./utils/setup/setupBin.ts";
|
||||
/**
|
||||
* The options for the setup-cpp function
|
||||
*/
|
||||
export type Opts = Partial<Record<Inputs, string | undefined>> & {
|
||||
"setup-cpp"?: boolean;
|
||||
timeout?: string;
|
||||
"node-package-manager"?: string;
|
||||
};
|
||||
/** Get an object from github actions */
|
||||
export declare function maybeGetInput(key: string): string | undefined;
|
||||
export declare function getSuccessMessage(tool: string, installationInfo: InstallationInfo | undefined | void): string;
|
||||
export declare const rcOptions: AddPathOptions;
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
export declare function setupPowershell(version: string, setupDir: string, arch: string): Promise<import("../utils/setup/setupBin.js").InstallationInfo>;
|
||||
export declare function setupPowershellSystem(version: string | undefined, _setupDir: string, _arch: string): Promise<import("../utils/setup/setupBin.js").InstallationInfo>;
|
||||
|
|
@ -1 +0,0 @@
|
|||
export declare function setupActionsPython(version: string, _setupDir: string, arch: string): Promise<undefined>;
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
import type { InstallationInfo } from "../utils/setup/setupBin.js";
|
||||
export declare function setupPython(version: string, setupDir: string, arch: string): Promise<InstallationInfo & {
|
||||
bin: string;
|
||||
}>;
|
||||
|
|
@ -1 +0,0 @@
|
|||
export declare function setupSccache(version: string, _setupDir: string, _arch: string): Promise<import("../utils/setup/setupBin.js").InstallationInfo>;
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
/**
|
||||
* Install the setup-cpp CLI globally
|
||||
* @param version - The version of setup-cpp to install
|
||||
* @param packageManager - The package manager to use
|
||||
*/
|
||||
export declare function installSetupCpp(version: string, packageManager?: string): Promise<string | Error>;
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
import { type Opts } from "./lib.ts";
|
||||
/**
|
||||
* The options for the setup-cpp function
|
||||
*/
|
||||
type CliOpts = Opts & {
|
||||
help: boolean;
|
||||
version: boolean;
|
||||
};
|
||||
export declare function parseArgs(args: string[]): CliOpts;
|
||||
export {};
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1 +0,0 @@
|
|||
export declare function setupSevenZip(version: string, _setupDir: string, _arch: string): Promise<import("../utils/setup/setupBin.js").InstallationInfo>;
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
import { type InstallationInfo } from "../utils/setup/setupBin.js";
|
||||
export declare function setupTask(version: string, setupDir: string, arch: string): Promise<InstallationInfo>;
|
||||
|
|
@ -1,124 +0,0 @@
|
|||
import { setupBrew } from "setup-brew";
|
||||
import { setupBazel } from "./bazel/bazel.js";
|
||||
import { setupCcache } from "./ccache/ccache.js";
|
||||
import { setupChocolatey } from "./chocolatey/chocolatey.js";
|
||||
import { setupCmake } from "./cmake/cmake.js";
|
||||
import { setupCmakelang } from "./cmakelang/cmakelang.js";
|
||||
import { setupConan } from "./conan/conan.js";
|
||||
import { setupCppcheck } from "./cppcheck/cppcheck.js";
|
||||
import { setupCpplint } from "./cpplint/cpplint.js";
|
||||
import { setupDoxygen } from "./doxygen/doxygen.js";
|
||||
import { setupFlawfinder } from "./flawfinder/flawfinder.js";
|
||||
import { setupGcc } from "./gcc/gcc.js";
|
||||
import { setupMingw } from "./gcc/mingw.js";
|
||||
import { setupGcovr } from "./gcovr/gcovr.js";
|
||||
import { setupGit } from "./git/git.js";
|
||||
import { setupGraphviz } from "./graphviz/graphviz.js";
|
||||
import { setupInfer } from "./infer/infer.js";
|
||||
import { setupKcov } from "./kcov/kcov.js";
|
||||
import { setupLizard } from "./lizard/lizard.js";
|
||||
import { setupAppleClang } from "./llvm/apple-clang.js";
|
||||
import { setupClangFormat, setupClangTools, setupLLVM } from "./llvm/llvm.js";
|
||||
import { setupMake } from "./make/make.js";
|
||||
import { setupMeson } from "./meson/meson.js";
|
||||
import { setupMSVC } from "./msvc/msvc.js";
|
||||
import { setupNala } from "./nala/nala.js";
|
||||
import { setupNinja } from "./ninja/ninja.js";
|
||||
import { setupOpencppcoverage } from "./opencppcoverage/opencppcoverage.js";
|
||||
import { setupPowershell } from "./powershell/powershell.js";
|
||||
import { setupPython } from "./python/python.js";
|
||||
import { setupSccache } from "./sccache/sccache.js";
|
||||
import { setupSevenZip } from "./sevenzip/sevenzip.js";
|
||||
import { setupTask } from "./task/task.js";
|
||||
import { setupVcpkg } from "./vcpkg/vcpkg.js";
|
||||
import { setupVCVarsall } from "./vcvarsall/vcvarsall.js";
|
||||
export declare const llvmSetups: {
|
||||
readonly llvm: typeof setupLLVM;
|
||||
readonly clang: typeof setupLLVM;
|
||||
readonly "clang++": typeof setupLLVM;
|
||||
};
|
||||
export declare const gccSetups: {
|
||||
readonly gcc: typeof setupGcc;
|
||||
readonly "g++": typeof setupGcc;
|
||||
};
|
||||
export declare const mingwSetups: {
|
||||
readonly mingw: typeof setupMingw;
|
||||
};
|
||||
export declare const msvcSetups: {
|
||||
readonly msvc: typeof setupMSVC;
|
||||
readonly cl: typeof setupMSVC;
|
||||
readonly msbuild: typeof setupMSVC;
|
||||
readonly visualstudio: typeof setupMSVC;
|
||||
};
|
||||
export declare const appleClangSetups: {
|
||||
readonly appleclang: typeof setupAppleClang;
|
||||
readonly applellvm: typeof setupAppleClang;
|
||||
readonly "apple-clang": typeof setupAppleClang;
|
||||
readonly "apple-llvm": typeof setupAppleClang;
|
||||
};
|
||||
export declare const llvmTools: string[];
|
||||
/** The setup functions */
|
||||
export declare const setups: {
|
||||
readonly cmake: typeof setupCmake;
|
||||
readonly ninja: typeof setupNinja;
|
||||
readonly vcpkg: typeof setupVcpkg;
|
||||
readonly bazel: typeof setupBazel;
|
||||
readonly conan: typeof setupConan;
|
||||
readonly meson: typeof setupMeson;
|
||||
readonly gcovr: typeof setupGcovr;
|
||||
readonly opencppcoverage: typeof setupOpencppcoverage;
|
||||
readonly OpenCppCoverage: typeof setupOpencppcoverage;
|
||||
readonly ccache: typeof setupCcache;
|
||||
readonly sccache: typeof setupSccache;
|
||||
readonly doxygen: typeof setupDoxygen;
|
||||
readonly graphviz: typeof setupGraphviz;
|
||||
readonly cppcheck: typeof setupCppcheck;
|
||||
readonly cpplint: typeof setupCpplint;
|
||||
readonly flawfinder: typeof setupFlawfinder;
|
||||
readonly lizard: typeof setupLizard;
|
||||
readonly infer: typeof setupInfer;
|
||||
readonly "clang-tidy": typeof setupClangTools;
|
||||
readonly clangtidy: typeof setupClangTools;
|
||||
readonly "clang-format": typeof setupClangFormat;
|
||||
readonly clangformat: typeof setupClangFormat;
|
||||
readonly vcvarsall: typeof setupVCVarsall;
|
||||
readonly kcov: typeof setupKcov;
|
||||
readonly make: typeof setupMake;
|
||||
readonly task: typeof setupTask;
|
||||
readonly sevenzip: typeof setupSevenZip;
|
||||
readonly "7zip": typeof setupSevenZip;
|
||||
readonly "7z": typeof setupSevenZip;
|
||||
readonly cmakelang: typeof setupCmakelang;
|
||||
readonly "cmake-lint": typeof setupCmakelang;
|
||||
readonly "cmake-format": typeof setupCmakelang;
|
||||
readonly cmakelint: typeof setupCmakelang;
|
||||
readonly cmakeformat: typeof setupCmakelang;
|
||||
readonly appleclang: typeof setupAppleClang;
|
||||
readonly applellvm: typeof setupAppleClang;
|
||||
readonly "apple-clang": typeof setupAppleClang;
|
||||
readonly "apple-llvm": typeof setupAppleClang;
|
||||
readonly msvc: typeof setupMSVC;
|
||||
readonly cl: typeof setupMSVC;
|
||||
readonly msbuild: typeof setupMSVC;
|
||||
readonly visualstudio: typeof setupMSVC;
|
||||
readonly mingw: typeof setupMingw;
|
||||
readonly gcc: typeof setupGcc;
|
||||
readonly "g++": typeof setupGcc;
|
||||
readonly llvm: typeof setupLLVM;
|
||||
readonly clang: typeof setupLLVM;
|
||||
readonly "clang++": typeof setupLLVM;
|
||||
readonly git: typeof setupGit;
|
||||
readonly nala: typeof setupNala;
|
||||
readonly brew: typeof setupBrew;
|
||||
readonly choco: typeof setupChocolatey;
|
||||
readonly python: typeof setupPython;
|
||||
readonly powershell: typeof setupPowershell;
|
||||
readonly pwsh: typeof setupPowershell;
|
||||
};
|
||||
export type ToolName = keyof typeof setups;
|
||||
/** The tools that can be installed */
|
||||
export declare const tools: Array<ToolName>;
|
||||
/** The possible inputs to the program */
|
||||
export type Inputs = keyof typeof setups | "compiler" | "architecture" | "timeout";
|
||||
/** An array of possible inputs */
|
||||
export declare const inputs: Array<Inputs>;
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
/**
|
||||
* Save the list of all releases of a GitHub repository to a json file
|
||||
*/
|
||||
export declare function saveGitHubAssetList(owner: string, repo: string, path: string, filterAssets?: (asset: string) => boolean): Promise<void>;
|
||||
|
|
@ -1,27 +0,0 @@
|
|||
type Options = {
|
||||
/**
|
||||
* The directory to download the HTML files
|
||||
*/
|
||||
htmlDownloadDir: string;
|
||||
/**
|
||||
* The path to write the output json file
|
||||
*/
|
||||
path: string;
|
||||
/**
|
||||
* A generator that returns the version and the URL of the asset to download
|
||||
*
|
||||
* The generator should return a tuple of the version and the URL
|
||||
*/
|
||||
getAssetVersionAndURL: () => Generator<[string, string], void, unknown>;
|
||||
/**
|
||||
* Filter the assets
|
||||
*/
|
||||
filterAssets?: (asset: string) => boolean;
|
||||
};
|
||||
/**
|
||||
* Save the assets of the HTML files to a json file
|
||||
*
|
||||
* The assets are extracted from the href of the html files
|
||||
*/
|
||||
export declare function saveHTMLAssets(opts: Options): Promise<void>;
|
||||
export {};
|
||||
|
|
@ -1,69 +0,0 @@
|
|||
/**
|
||||
* The list of assets
|
||||
* @key tag The tag of the release
|
||||
* @value assets The names of the assets of the release
|
||||
*/
|
||||
export type Assets = Record<string, string[] | undefined>;
|
||||
/**
|
||||
* Load the list of assets from a json file
|
||||
*/
|
||||
export declare function loadAssetList(path: string): Promise<Assets>;
|
||||
/**
|
||||
* The options to match the asset
|
||||
*/
|
||||
export type MatchAssetOpts = {
|
||||
/**
|
||||
* The version to match
|
||||
*/
|
||||
version: string;
|
||||
/**
|
||||
* The keywords that must be in the asset name.
|
||||
* If the element is a string, the keyword must be in the asset name.
|
||||
* If the element is an array, one of the keywords must be in the asset name.
|
||||
* @default []
|
||||
*/
|
||||
keywords?: (string | string[])[];
|
||||
/**
|
||||
* Optional keywords that are not required to be in the asset name
|
||||
* but increase the score of the asset if they are present
|
||||
*
|
||||
* if the element is a string, the keyword must be in the asset name
|
||||
* if the element is an array, one of the keywords must be in the asset name
|
||||
* @default []
|
||||
*/
|
||||
optionalKeywords?: (string | string[])[];
|
||||
/**
|
||||
* Custom version compare function
|
||||
* @param candidate The candidate version
|
||||
* @param coeredVersion The coerced version to compare against
|
||||
* @returns true if the candidate version satisfies the version
|
||||
*
|
||||
* @default semverSatisfies
|
||||
*/
|
||||
versionSatisfies?: (candidate: string, coeredVersion: string) => boolean;
|
||||
/**
|
||||
* Custom tag filter and map function
|
||||
* @param tag The tag to filter and map
|
||||
* @returns The mapped tag or undefined if the tag should be
|
||||
* excluded from the search
|
||||
* @default undefined
|
||||
*/
|
||||
filterMapTag?: (tag: string) => string | undefined;
|
||||
/**
|
||||
* Custom asset name filter function
|
||||
* @param asset The asset name to filter
|
||||
* @returns true if the asset should be included in the search
|
||||
* @default undefined
|
||||
*/
|
||||
filterName?: (asset: string) => boolean;
|
||||
};
|
||||
/**
|
||||
* Match the asset that matches the version and given keywords
|
||||
* @param assets The list of assets
|
||||
* @param opts The options to match the asset
|
||||
* @returns The tag and name of the asset that matches the version and keywords
|
||||
*/
|
||||
export declare function matchAsset(assets: Assets, opts: MatchAssetOpts): {
|
||||
tag: string;
|
||||
name: string;
|
||||
} | undefined;
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
export * from "crypto";
|
||||
import * as crypto from "crypto";
|
||||
export default crypto;
|
||||
export { randomUUID } from "./randomuuid.mjs";
|
||||
|
|
@ -1 +0,0 @@
|
|||
export const randomUUID: () => import("crypto").UUID;
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
declare const _default: any;
|
||||
export default _default;
|
||||
export declare const access: any, appendFile: any, chmod: any, chown: any, copyFile: any, lchmod: any, lchown: any, link: any, lstat: any, mkdir: any, mkdtemp: any, open: any, readdir: any, readFile: any, readlink: any, realpath: any, rename: any, rmdir: any, stat: any, symlink: any, truncate: any, unlink: any, utimes: any, writeFile: any;
|
||||
export declare const rm: any;
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
export declare const pipeline: Function;
|
||||
export declare const finished: Function;
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
export declare const x86_64: string[];
|
||||
export declare const x86: string[];
|
||||
export declare const arm64: string[];
|
||||
export declare const armv7: string[];
|
||||
export declare const powerpc64le: string[];
|
||||
export declare const sparc64: string[];
|
||||
export declare const sparcv9: string[];
|
||||
export declare function getDebArch(arch: string): string;
|
||||
|
|
@ -1 +0,0 @@
|
|||
export declare function hasDnf(): boolean;
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue