8000 C tooling by bitwitch · Pull Request #55 · orca-app/orca · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

C tooling #55

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 21 commits into from
Mar 10, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
03d9447
tooling: building a foundation for the new tooling
bvisness Oct 11, 2023
7d6c573
oc_path_canonical on windows no longer relies on MAX_PATH
bitwitch Feb 18, 2024
c57b6ed
tooling: complete the dev and user tooling
bitwitch Dec 31, 2023
e111146
display custom icon in win32 window
bitwitch Feb 25, 2024
7911108
add build-dawn.sh
martinfouilleul Mar 5, 2024
90cdbdb
Fix copy path in build-dawn.sh
martinfouilleul Mar 5, 2024
214c6f1
fix tool download path in update command
martinfouilleul Mar 6, 2024
0e69026
update macOS sample build scripts
martinfouilleul Mar 6, 2024
7f77e79
Build Orca wasm SDK as part of the runtime-build command
martinfouilleul Mar 7, 2024
118fd56
fix dev.py to explicitly use brew-installed clang on macOS
martinfouilleul Mar 7, 2024
5820ec6
try to find brew llvm@15 first, then fallback on llvm
martinfouilleul Mar 7, 2024
b2593db
add comment about CI in dev.py
martinfouilleul Mar 7, 2024
918cd53
use github m1 runners
martinfouilleul Mar 10, 2024
0c5ef9b
package liborca_wasm.sdk
martinfouilleul Mar 10, 2024
264b629
update mac example build scripts
martinfouilleul Mar 10, 2024
a729c9f
fix update replace and exec tool, for when tool path contains spaces
martinfouilleul Mar 10, 2024
1c42122
allow passing an install dir to
martinfouilleul Mar 10, 2024
e59c2b0
merge orca-libc
martinfouilleul Mar 10, 2024
c564771
fix dev and clock build scripts
8000 martinfouilleul Mar 10, 2024
026d574
update windows build scripts
martinfouilleul Mar 10, 2024
1626655
fix compiling libc to use correct clang in CI
martinfouilleul Mar 10, 2024
File filter

Filter by extension

Filter by extension


10000
Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
77 changes: 77 additions & 0 deletions .github/workflows/build-runtime.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
name: build-runtime

on:
workflow_call:
push:
branches:
- main

jobs:
build-win:
runs-on: windows-2022
steps:
- uses: actions/checkout@v4

- uses: actions/setup-python@v4
with:
python-version: '3.10'

- name: Build
shell: cmd
run: |
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
orcadev.bat build-runtime --release

- name: Tarball
shell: cmd
run: |
rename build orca-runtime-win
rename src src-win
tar -czf orca-runtime-win.tar.gz orca-runtime-win src-win

- uses: actions/upload-artifact@v4
with:
name: orca-runtime-win
path: orca-runtime-win.tar.gz

build-macos-x64:
runs-on: macos-13
steps:
- uses: actions/checkout@v4

- uses: actions/setup-python@v4
with:
python-version: '3.10'

- name: Build
run: |
./orcadev build-runtime --release
mv build orca-runtime-mac-x64
mv src src-mac-x64
tar --format=ustar -czf orca-runtime-mac-x64.tar.gz orca-runtime-mac-x64 src-mac-x64

- uses: actions/upload-artifact@v4
with:
name: orca-runtime-mac-x64
path: orca-runtime-mac-x64.tar.gz

build-macos-arm64:
runs-on: macos-14
steps:
- uses: actions/checkout@v4

- uses: actions/setup-python@v4
with:
python-version: '3.10'

- name: Build
run: |
./orcadev build-runtime --release
mv build orca-runtime-mac-arm64
mv src src-mac-arm64
tar --format=ustar -czf orca-runtime-mac-arm64.tar.gz orca-runtime-mac-arm64 src-mac-arm64

- uses: actions/upload-artifact@v4
with:
name: orca-runtime-mac-arm64
path: orca-runtime-mac-arm64.tar.gz
111 changes: 111 additions & 0 deletions .github/workflows/build-tool.yaml
8000
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
name: build-tool

on:
workflow_call:
push:
branches:
- main

jobs:
build-win:
runs-on: windows-2022
steps:
- uses: actions/checkout@v4

- uses: actions/setup-python@v4
with:
python-version: '3.10'

- name: Build
shell: cmd
run: |
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
orcadev.bat build-tool --release --version ${{github.ref_name}}

- uses: actions/upload-artifact@v4
with:
name: orca-win
path: build/bin/orca.exe

build-macos-x64:
runs-on: macos-13
steps:
- uses: actions/checkout@v4

- uses: actions/setup-python@v4
with:
python-version: '3.10'

- name: Build
run: ./orcadev build-tool --release --version ${{github.ref_name}}

# NOTE: tar is needed to maintain executable file permissions
- name: Tar
run: |
cp build/bin/orca orca
tar -czf orca-mac-x64.tar.gz orca

- uses: actions/upload-artifact@v4
with:
name: orca-mac-x64
path: orca-mac-x64.tar.gz

build-macos-arm64:
runs-on: macos-14
steps:
- uses: actions/checkout@v4

- uses: actions/setup-python@v4
with:
python-version: '3.10'

- name: Build
run: ./orcadev build-tool --release --version ${{github.ref_name}}

# NOTE: tar is needed to maintain executable file permissions
- name: Tar
run: |
cp build/bin/orca orca
tar -czf orca-mac-arm64.tar.gz orca

- uses: actions/upload-artifact@v4
with:
name: orca-mac-arm64
path: orca-mac-arm64.tar.gz

mac-make-universal:
runs-on: macos-latest
needs: [build-macos-x64, build-macos-arm64]
steps:
- name: Check out
uses: actions/checkout@v4

- uses: actions/download-artifact@v4
with:
name: orca-mac-x64

- uses: actions/download-artifact@v4
with:
name: orca-mac-arm64

- name: Untar
run: |
tar -xzf orca-mac-x64.tar.gz
mv orca orca-mac-x64
tar -xzf orca-mac-arm64.tar.gz
mv orca orca-mac-arm64

- name: Make universal binary
run: |
chmod +x orca-mac-x64
chmod +x orca-mac-arm64
lipo -create orca-mac-x64 orca-mac-arm64 -output orca

- name: Tar
run: |
tar --format=ustar -czf orca-mac-universal.tar.gz orca

- uses: actions/upload-artifact@v4
with:
name: orca-mac-universal
path: orca-mac-universal.tar.gz
140 changes: 140 additions & 0 deletions .github/workflows/create-release.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
name: create-release

on:
push:
tags: [ "v[0-9]+.[0-9]+.[0-9]+", "test-release**" ]

jobs:
build-tool:
uses: ./.github/workflows/build-tool.yaml

build-runtime:
uses: ./.github/workflows/build-runtime.yaml

release:
runs-on: ubuntu-latest
permissions:
contents: write
needs: [build-tool, build-runtime]
steps:
- uses: actions/checkout@v4
with:
path: repo
sparse-checkout: |
resources

- uses: actions/download-artifact@v4
with:
# when name is not specified, all artifacts from this run will be downloaded
path: artifacts
merge-multiple: true

- name: Package CLI Tool
run: |
mkdir releases
cp artifacts/orca.exe releases
cp artifacts/orca-mac-universal.tar.gz releases/orca-mac.tar.gz

- name: Package Windows Release
run: |
mkdir -p orca-sdk-windows/bin
mkdir -p orca-sdk-windows/orca-libc
mkdir -p orca-sdk-windows/resources
mkdir -p orca-sdk-windows/src
# gather fonts
cp repo/resources/* orca-sdk-windows/resources
# gather cli-tool
cp artifacts/orca.exe orca-sdk-windows/bin
# gather runtime
cd artifacts
tar -xzf orca-runtime-win.tar.gz
cd ..
cp artifacts/orca-runtime-win/bin/runtime.obj orca-sdk-windows/bin
cp artifacts/orca-runtime-win/bin/orca.dll orca-sdk-windows/bin
cp artifacts/orca-runtime-win/bin/orca.dll.lib orca-sdk-windows/bin
cp artifacts/orca-runtime-win/bin/liborca_wasm.a orca-sdk-windows/bin
cp artifacts/orca-runtime-win/bin/wasm3.lib orca-sdk-windows/bin
cp artifacts/orca-runtime-win/bin/libEGL.dll orca-sdk-windows/bin
cp artifacts/orca-runtime-win/bin/libGLESv2.dll orca-sdk-windows/bin
# gather source code
cp -r artifacts/src-win/* orca-sdk-windows/src

# TODO(shaw): gather orca-libc once it is built by ci

# generate checksum file
find orca-sdk-windows -type f -exec sha1sum {} + | LC_ALL=C sort | sha1sum | cut -z -f 1 -d " " > sha1.sum
# create release tarball
tar --format=ustar -czf orca-sdk-windows.tar.gz orca-sdk-windows sha1.sum
mv orca-sdk-windows.tar.gz releases

- name: Package Mac x64 Release
run: |
mkdir -p orca-sdk-mac-x64/bin
mkdir -p orca-sdk-mac-x64/orca-libc
mkdir -p orca-sdk-mac-x64/resources
mkdir -p orca-sdk-mac-x64/src
# gather fonts
cp repo/resources/* orca-sdk-mac-x64/resources
# gather cli-tool
cd artifacts
tar -xzf orca-mac-universal.tar.gz
cd ..
cp artifacts/orca orca-sdk-mac-x64/bin
# gather runtime
cd artifacts
tar -xzf orca-runtime-mac-x64.tar.gz
cd ..
cp artifacts/orca-runtime-mac-x64/bin/orca_runtime orca-sdk-mac-x64/bin
cp artifacts/orca-runtime-mac-x64/bin/liborca.dylib orca-sdk-mac-x64/bin
cp artifacts/orca-runtime-mac-x64/bin/liborca_wasm.a orca-sdk-mac-x64/bin
cp artifacts/orca-runtime-mac-x64/bin/libEGL.dylib orca-sdk-mac-x64/bin
cp artifacts/orca-runtime-mac-x64/bin/libGLESv2.dylib orca-sdk-mac-x64/bin
cp artifacts/orca-runtime-mac-x64/bin/mtl_renderer.metallib orca-sdk-mac-x64/bin
# gather source code
cp -r artifacts/src-mac-x64/* orca-sdk-mac-x64/src

# TODO(shaw): gather orca-libc once it is built by ci

# generate checksum file
find orca-sdk-mac-x64 -type f -exec sha1sum {} + | LC_ALL=C sort | sha1sum | cut -z -f 1 -d " " > sha1.sum
# create release tarball
tar --format=ustar -czf orca-sdk-mac-x64.tar.gz orca-sdk-mac-x64 sha1.sum
mv orca-sdk-mac-x64.tar.gz releases

- name: Package Mac arm64 Release
run: |
mkdir -p orca-sdk-mac-arm64/bin
mkdir -p orca-sdk-mac-arm64/orca-libc
mkdir -p orca-sdk-mac-arm64/resources
mkdir -p orca-sdk-mac-arm64/src
# gather fonts
cp repo/resources/* orca-sdk-mac-arm64/resources
# gather cli-tool
cd artifacts
tar -xzf orca-mac-universal.tar.gz
cd ..
cp artifacts/orca orca-sdk-mac-arm64/bin
# gather runtime
cd artifacts
tar -xzf orca-runtime-mac-arm64.tar.gz
cd ..
cp artifacts/orca-runtime-mac-arm64/bin/orca_runtime orca-sdk-mac-arm64/bin
cp artifacts/orca-runtime-mac-arm64/bin/liborca.dylib orca-sdk-mac-arm64/bin
cp artifacts/orca-runtime-mac-arm64/bin/liborca_wasm.a orca-sdk-mac-arm64/bin
cp artifacts/orca-runtime-mac-arm64/bin/libEGL.dylib orca-sdk-mac-arm64/bin
cp artifacts/orca-runtime-mac-arm64/bin/libGLESv2.dylib orca-sdk-mac-arm64/bin
cp artifacts/orca-runtime-mac-arm64/bin/mtl_renderer.metallib orca-sdk-mac-arm64/bin
# gather source code
cp -r artifacts/src-mac-arm64/* orca-sdk-mac-arm64/src

# TODO(shaw): gather orca-libc once it is built by ci

# generate checksum file
find orca-sdk-mac-arm64 -type f -exec sha1sum {} + | LC_ALL=C sort | sha1sum | cut -z -f 1 -d " " > sha1.sum
# create release tarball
tar --format=ustar -czf orca-sdk-mac-arm64.tar.gz orca-sdk-mac-arm64 sha1.sum
mv orca-sdk-mac-arm64.tar.gz releases

- uses: ncipollo/release-action@v1
with:
artifacts: "releases/*"
8 changes: 8 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -46,3 +46,11 @@ src/ext/angle
sketches/*/bin

.cache

tags

src/ext/curl/builds/
src/ext/curl/winbuild/*.inc
src/ext/curl/winbuild/*.idb
src/ext/zlib/build/

3 changes: 0 additions & 3 deletions .orcaroot

This file was deleted.

3 changes: 3 additions & 0 deletions .orcasource
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
You are currently at the root of the Orca source. Welcome.

This file exists to help the Orca dev tooling find the project root directory from anywhere inside.
Loading
0