Skip to content

Commit 6bdd198

Browse files
Lumengineclaude
andcommitted
Merge Windows and Linux builds into single workflow
- Add ubuntu-latest to build matrix - Add debug output to see compiler/ contents - Remove separate Linux workflow file - Add fail-fast: false to continue other builds on failure Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent d41cb7f commit 6bdd198

2 files changed

Lines changed: 59 additions & 107 deletions

File tree

.github/workflows/BuildPhysX-Linux.yml

Lines changed: 0 additions & 66 deletions
This file was deleted.

.github/workflows/BuildPhysX.yml

Lines changed: 59 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -3,77 +3,95 @@ name: Build PhysX
33
on:
44
push:
55
tags:
6-
- 'v[0-9]+.[0-9]+.[0-9]+'
6+
- 'v[0-9]+.[0-9]+.[0-9]+*'
77
workflow_dispatch:
88

99
jobs:
1010
build:
11-
name: Build on ${{ matrix.os }} - ${{ matrix.config }}
11+
name: Build ${{ matrix.os }} - ${{ matrix.config }}
1212
runs-on: ${{ matrix.os }}
1313

1414
strategy:
15+
fail-fast: false
1516
matrix:
16-
os: [windows-latest]
17+
os: [windows-latest, ubuntu-latest]
1718
config: [debug, release, profile, checked]
18-
platform: [x86_64, aarch64]
1919

2020
steps:
2121
- name: Checkout repository
2222
uses: actions/checkout@v4
2323
with:
2424
repository: NVIDIA-Omniverse/PhysX
2525
ref: 107.0-physx-5.6.0
26-
- name: Install dependencies (Linux)
27-
if: matrix.os == 'ubuntu-latest'
28-
run: |
29-
sudo apt update
30-
sudo apt install -y ninja-build cmake g++ python3
31-
- name: Download file from GitHub
32-
run: |
33-
curl -L -o vc17win64-cpu-only-md.xml https://raw.githubusercontent.com/Lumengine/PhysXBuild/main/vc17win64-cpu-only-md.xml
34-
- name: Copy file into repo
26+
27+
# === WINDOWS ===
28+
- name: Download preset (Windows)
29+
if: matrix.os == 'windows-latest'
3530
run: |
36-
cp vc17win64-cpu-only-md.xml ./physx/buildtools/presets/public/
31+
curl -L -o vc17win64-cpu-only-md.xml https://raw.githubusercontent.com/Lumengine/PhysXBuild/main/vc17win64-cpu-only-md.xml
32+
cp vc17win64-cpu-only-md.xml ./physx/buildtools/presets/public/
33+
3734
- name: Generate Projects (Windows)
3835
if: matrix.os == 'windows-latest'
39-
run: |
40-
./generate_projects.bat vc17win64-cpu-only-md
36+
run: ./generate_projects.bat vc17win64-cpu-only-md
4137
working-directory: physx
4238

43-
- name: Build-Windows
39+
- name: Build (Windows)
4440
if: matrix.os == 'windows-latest'
45-
continue-on-error: true
46-
run: cmake --build ./compiler/vc17win64-cpu-only-md --config ${{matrix.config}}
41+
run: cmake --build ./compiler/vc17win64-cpu-only-md --config ${{ matrix.config }}
4742
working-directory: physx
4843

49-
- name: Package build output
50-
id: build
44+
- name: Package (Windows)
45+
if: matrix.os == 'windows-latest'
46+
id: package-windows
5147
shell: bash
5248
run: |
53-
mkdir -p output
54-
mkdir -p output/bin
55-
mkdir -p output/lib
56-
if [[ "${{ runner.os }}" == "Windows" ]]; then
57-
binArchiveName="PhysX-5.6.0.win.${{ matrix.platform }}.vc143.md.${{ matrix.config }}.zip"
58-
echo "PHYSX_BINARY_ARCHIVE=$binArchiveName" >> "$GITHUB_OUTPUT"
59-
cp physx/bin/win.x86_64.vc143.md/${{matrix.config}}/*.dll output/bin/
60-
cp physx/bin/win.x86_64.vc143.md/${{matrix.config}}/*.lib output/lib/
61-
62-
7z a "$binArchiveName" ./output/bin/ ./output/lib/ ./physx/include/ ./physx/documentation/
49+
mkdir -p output/bin output/lib
50+
binArchiveName="PhysX-5.6.0.win.x86_64.vc143.md.${{ matrix.config }}.zip"
51+
echo "PHYSX_BINARY_ARCHIVE=$binArchiveName" >> "$GITHUB_OUTPUT"
52+
cp physx/bin/win.x86_64.vc143.md/${{ matrix.config }}/*.dll output/bin/
53+
cp physx/bin/win.x86_64.vc143.md/${{ matrix.config }}/*.lib output/lib/
54+
7z a "$binArchiveName" ./output/bin/ ./output/lib/ ./physx/include/ ./physx/documentation/
55+
56+
# === LINUX ===
57+
- name: Install dependencies (Linux)
58+
if: matrix.os == 'ubuntu-latest'
59+
run: |
60+
sudo apt update
61+
sudo apt install -y ninja-build cmake clang python3 libx11-dev libxcursor-dev libxrandr-dev libxinerama-dev libxi-dev libgl1-mesa-dev
62+
63+
- name: Generate Projects (Linux)
64+
if: matrix.os == 'ubuntu-latest'
65+
run: |
66+
chmod +x ./generate_projects.sh
67+
./generate_projects.sh linux-clang-cpu-only
68+
echo "=== Contents of compiler/ ==="
69+
ls -la ./compiler/ || echo "compiler/ does not exist"
70+
working-directory: physx
71+
72+
- name: Build (Linux)
73+
if: matrix.os == 'ubuntu-latest'
74+
run: cmake --build ./compiler/linux-clang-cpu-only --config ${{ matrix.config }}
75+
working-directory: physx
76+
77+
- name: Package (Linux)
78+
if: matrix.os == 'ubuntu-latest'
79+
id: package-linux
80+
run: |
81+
mkdir -p output/lib output/include output/documentation
82+
binArchiveName="PhysX-5.6.0.linux.x86_64.clang.${{ matrix.config }}.tar.gz"
83+
echo "PHYSX_BINARY_ARCHIVE=$binArchiveName" >> "$GITHUB_OUTPUT"
84+
cp physx/bin/linux.clang/${{ matrix.config }}/*.a output/lib/ 2>/dev/null || true
85+
cp -r physx/include/* output/include/
86+
cp -r physx/documentation/* output/documentation/ 2>/dev/null || true
87+
tar -czf "$binArchiveName" -C output .
6388
64-
else
65-
echo "PHYSX_BINARY_ARCHIVE=PhysX-5.6.0.linux.${{ matrix.platform }}.${{ matrix.config }}.tar.gz" >> "$GITHUB_OUTPUT"
66-
# Linux: .so and .a
67-
cp physx/bin/*.so output/bin/
68-
cp physx/bin/*.a output/lib/
69-
cp -r physx/include output/include
70-
cp -r physx/documentation output/documentation
71-
tar -czf PhysX-5.6.0.linux.${{ matrix.platform }}.${{ matrix.config }}.tar.gz output/*
72-
fi
89+
# === PUBLISH ===
7390
- name: Publish
7491
uses: softprops/action-gh-release@v1
7592
with:
7693
files: |
77-
${{ steps.build.outputs.PHYSX_BINARY_ARCHIVE }}
94+
${{ steps.package-windows.outputs.PHYSX_BINARY_ARCHIVE }}
95+
${{ steps.package-linux.outputs.PHYSX_BINARY_ARCHIVE }}
7896
env:
7997
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

0 commit comments

Comments
 (0)