Skip to content

Change supported platform targets #16094

@sapphi-red

Description

@sapphi-red

Currently, Oxc supports the following platform targets and ships prebuilt binaries for them:

  • x86_64-pc-windows-msvc
  • aarch64-pc-windows-msvc
  • x86_64-unknown-linux-gnu
  • x86_64-unknown-linux-musl
  • aarch64-unknown-linux-gnu
  • aarch64-unknown-linux-musl
  • armv7-unknown-linux-gnueabihf (not supported by oxlint, oxfmt)
  • armv7-unknown-linux-musleabihf (not supported by oxlint, oxfmt)
  • x86_64-apple-darwin
  • aarch64-apple-darwin
  • wasm32-wasip1-threads (not supported by oxlint, oxfmt)
  • s390x-unknown-linux-gnu (not supported by oxlint, oxfmt)
  • aarch64-linux-android (not supported by oxlint, oxfmt)
  • riscv64gc-unknown-linux-gnu (not supported by oxlint, oxfmt)
  • x86_64-unknown-freebsd (not supported by oxlint, oxfmt)

- os: windows-latest
target: x86_64-pc-windows-msvc
build: pnpm build --target x86_64-pc-windows-msvc
- os: windows-latest
target: aarch64-pc-windows-msvc
build: pnpm build --target aarch64-pc-windows-msvc
- os: ubuntu-latest
target: x86_64-unknown-linux-gnu
build: pnpm build --target x86_64-unknown-linux-gnu --use-napi-cross
- os: ubuntu-latest
target: x86_64-unknown-linux-musl
build: pnpm build --target x86_64-unknown-linux-musl -x
- os: ubuntu-latest
target: aarch64-unknown-linux-gnu
build: pnpm build --target aarch64-unknown-linux-gnu --use-napi-cross
- os: ubuntu-latest
target: aarch64-unknown-linux-musl
build: pnpm build --target aarch64-unknown-linux-musl -x
- os: ubuntu-latest
target: armv7-unknown-linux-gnueabihf
build: pnpm build --target armv7-unknown-linux-gnueabihf --use-napi-cross
- os: ubuntu-latest
target: armv7-unknown-linux-musleabihf
build: pnpm build --target armv7-unknown-linux-musleabihf -x
- os: macos-latest
target: x86_64-apple-darwin
build: pnpm build --target x86_64-apple-darwin
- os: macos-latest
target: aarch64-apple-darwin
build: pnpm build --target aarch64-apple-darwin
- os: ubuntu-latest
target: wasm32-wasip1-threads
build: pnpm build --target wasm32-wasip1-threads
- os: ubuntu-latest
target: s390x-unknown-linux-gnu
build: |
export CFLAGS="-fuse-ld=lld"
pnpm build --target s390x-unknown-linux-gnu --use-napi-cross
- os: ubuntu-latest
target: aarch64-linux-android
build: pnpm build --target aarch64-linux-android
- os: ubuntu-latest
target: riscv64gc-unknown-linux-gnu
build: |
sudo apt-get update
sudo apt-get install gcc-riscv64-linux-gnu g++-riscv64-linux-gnu -y
export TARGET_CC=riscv64-linux-gnu-gcc
export CXX=riscv64-linux-gnu-g++
pnpm build --target riscv64gc-unknown-linux-gnu

- os: windows-latest
target: x86_64-pc-windows-msvc
code-target: win32-x64
build-oxlint-args: ""
- os: windows-latest
target: aarch64-pc-windows-msvc
code-target: win32-arm64
build-oxlint-args: ""
- os: ubuntu-latest
target: x86_64-unknown-linux-gnu
code-target: linux-x64-gnu
build-oxlint-args: --use-napi-cross
- os: ubuntu-latest
target: aarch64-unknown-linux-gnu
code-target: linux-arm64-gnu
build-oxlint-args: --use-napi-cross
- os: ubuntu-latest
target: x86_64-unknown-linux-musl
code-target: linux-x64-musl
build-oxlint-args: -x
- os: ubuntu-latest
target: aarch64-unknown-linux-musl
code-target: linux-arm64-musl
build-oxlint-args: -x
- os: macos-latest
target: x86_64-apple-darwin
code-target: darwin-x64
build-oxlint-args: ""
- os: macos-latest
target: aarch64-apple-darwin
code-target: darwin-arm64
build-oxlint-args: ""

include:
- os: windows-latest
target: x86_64-pc-windows-msvc
code-target: win32-x64
build-oxfmt-args: ""
- os: windows-latest
target: aarch64-pc-windows-msvc
code-target: win32-arm64
build-oxfmt-args: ""
- os: ubuntu-latest
target: x86_64-unknown-linux-gnu
code-target: linux-x64-gnu
build-oxfmt-args: --use-napi-cross
- os: ubuntu-latest
target: aarch64-unknown-linux-gnu
code-target: linux-arm64-gnu
build-oxfmt-args: --use-napi-cross
- os: ubuntu-latest
target: x86_64-unknown-linux-musl
code-target: linux-x64-musl
build-oxfmt-args: -x
- os: ubuntu-latest
target: aarch64-unknown-linux-musl
code-target: linux-arm64-musl
build-oxfmt-args: -x
- os: macos-latest
target: x86_64-apple-darwin
code-target: darwin-x64
build-oxfmt-args: ""
- os: macos-latest
target: aarch64-apple-darwin
code-target: darwin-arm64
build-oxfmt-args: ""

I think we should drop some targets to reduce the maintenance burden and also add some targets to align the support.

The things I think we should do:

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions