Skip to content

Commit

Permalink
Build Ceres and SuiteSparse using CMake and FetchContent
Browse files Browse the repository at this point in the history
  • Loading branch information
Gold856 committed Feb 3, 2025
1 parent 234c509 commit 54c636c
Show file tree
Hide file tree
Showing 14 changed files with 749 additions and 584 deletions.
89 changes: 31 additions & 58 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,35 +7,46 @@ concurrency:
cancel-in-progress: true

jobs:
validation:
name: "Validation"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: gradle/actions/wrapper-validation@v4

build-docker:
strategy:
fail-fast: false
matrix:
include:
- container: wpilib/raspbian-cross-ubuntu:bookworm-22.04
artifact-name: Arm32
build-options: -Pplatform=linux-arm32
- container: wpilib/aarch64-cross-ubuntu:bookworm-22.04
artifact-name: Arm64
build-options: -Pplatform=linux-arm64
- container: wpilib/ubuntu-base:22.04
artifact-name: Linux
build-options: -Pplatform=x64-linux
build-options:

name: "Build - ${{ matrix.artifact-name }}"
runs-on: ubuntu-latest
needs: [validation]
container: ${{ matrix.container }}
steps:
- run: sudo apt-get update && sudo apt-get install -y gfortran
name: install gfortran
- run: sudo apt-get update && sudo apt-get install -y gfortran ninja-build
name: Install dependencies
- uses: actions/checkout@v4
with:
submodules: 'true'
- uses: actions/setup-java@v4
with:
java-version: 17
distribution: 'temurin'
- uses: lukka/[email protected]
with:
vcpkgGitCommitId: '29b2ea2d4b6197e66ef346e62ccbba35b55b7de5'
- run: ./gradlew publish ${{ matrix.build-options }}
name: Build with Gradle
- run: ls vcpkg_installed/*/lib/*
name: List dependent shared libraries
- run: ls build*/install/lib/*
name: List libraries
- uses: actions/upload-artifact@v4
with:
name: ${{ matrix.artifact-name }}
Expand All @@ -48,13 +59,14 @@ jobs:
include:
- artifact-name: WinArm64
tool-arch: amd64_arm64
build-options: -Pplatform=arm64-windows-static-md
build-options: -Pplatform=windows-arm64
- artifact-name: Win64
tool-arch: amd64
build-options:

name: "Build - ${{ matrix.artifact-name }}"
runs-on: windows-2019
runs-on: windows-2022
needs: [validation]
steps:
- uses: actions/checkout@v4
with:
Expand All @@ -63,33 +75,22 @@ jobs:
with:
java-version: 17
distribution: 'temurin'
- uses: lukka/[email protected]
with:
vcpkgGitCommitId: '29b2ea2d4b6197e66ef346e62ccbba35b55b7de5'
- uses: ilammy/[email protected]
with:
arch: ${{ matrix.tool-arch }}
- run: ./gradlew publish ${{ matrix.build-options }}
name: Build with Gradle
- run: ls vcpkg_installed/*/bin/*
name: List dependent DLLs
- run: ls build*/install/lib/*
name: List libraries
- uses: actions/upload-artifact@v4
with:
name: ${{ matrix.artifact-name }}
path: gradleDir/outputs/

build-mac:
strategy:
fail-fast: false
matrix:
include:
- artifact-name: macOSArm
build-options: -Pplatform=arm64-osx
- artifact-name: macOS
build-options: -Pplatform=x64-osx

name: "Build - ${{ matrix.artifact-name }}"
name: "Build - Mac"
runs-on: macOS-14
needs: [validation]
steps:
- uses: actions/checkout@v4
with:
Expand All @@ -100,46 +101,18 @@ jobs:
distribution: 'temurin'
- run: brew install cmake ninja
name: install ninja
- uses: lukka/[email protected]
with:
vcpkgGitCommitId: '29b2ea2d4b6197e66ef346e62ccbba35b55b7de5'
- run: ./gradlew publish ${{ matrix.build-options }}
- run: ./gradlew publish
name: Build with Gradle
- run: ls vcpkg_installed/*/lib/*
name: List dependent shared libraries
- run: ls build*/install/lib/*
name: List libraries
- uses: actions/upload-artifact@v4
with:
name: ${{ matrix.artifact-name }}
name: Mac
path: gradleDir/outputs/

make_universal:
name: Make Universal
needs: [build-mac]
runs-on: macos-14
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: macOS
path: build/downloads
- uses: actions/download-artifact@v4
with:
name: macOSArm
path: build/downloads
- uses: actions/setup-java@v4
with:
java-version: 17
distribution: 'zulu'
- run: ./gradlew copyToUpload -Prunmerge
name: Build with Gradle
- uses: actions/upload-artifact@v4
with:
name: macOSUniversal
path: build/toUpload/

combine:
name: Combine
needs: [build-docker, build-windows, make_universal]
needs: [build-docker, build-windows, build-mac]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
Expand Down
3 changes: 1 addition & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
/vcpkg_installed
/build
/build*
/.gradle
/gradleDir
3 changes: 0 additions & 3 deletions .gitmodules

This file was deleted.

Loading

0 comments on commit 54c636c

Please sign in to comment.