Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/workflows/LLVMClang.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
name: LLVM+Clang

on:
pull_request:
branches: [ main ]
workflow_dispatch:

jobs:
Expand Down
51 changes: 36 additions & 15 deletions .github/workflows/buildThirdPartyLibrary.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,33 +19,46 @@ jobs:
fail-fast: false
matrix:
include:
- name: 'Windows release'
- name: 'Windows release (Intel)'
os: windows-latest
target_architecture: Intel
build_type: Release
- name: 'Windows debug'
- name: 'Windows debug (Intel)'
os: windows-latest
target_architecture: Intel
build_type: Debug
- name: 'Linux'
os: ubuntu-20.04
# Note: we must use ubuntu-20.04 rather than ubuntu-latest (i.e. ubuntu-22.04 at this stage). Indeed,
# Ubuntu 22.04's copy of glibc doesn't include libpthread anymore (see
# https://developers.redhat.com/articles/2021/12/17/why-glibc-234-removed-libpthread). Yet, to build
# our Python wheels on Linux, we have no choice but to use manylinux_2_28, which relies on a version
# of glibc with libpthread, hence getting various messages about __libc_single_threaded being
# undefined when trying to build our Python wheels using third-party libraries built on ubuntu-22.04.
- name: 'Windows release (ARM)'
os: windows-latest
target_architecture: ARM
build_type: Release
- name: 'Windows debug (ARM)'
os: windows-latest
target_architecture: ARM
build_type: Debug
- name: 'Linux (Intel)'
os: ubuntu-latest
target_architecture: Intel
build_type: Release
- name: 'Linux (ARM)'
os: ubuntu-latest
target_architecture: ARM
build_type: Release
- name: 'macOS (Intel)'
os: macos-13
os: macos-latest
target_architecture: Intel
build_type: Release
- name: 'macOS (ARM)'
os: macos-latest
target_architecture: ARM
build_type: Release
env:
BUILDCACHE_ACCURACY: STRICT
BUILDCACHE_COMPRESS_FORMAT: ZSTD
BUILDCACHE_DEBUG: -1
BUILDCACHE_LOG_FILE: ""
steps:
- name: Check the version of Clang
run: clang --version
- name: Check out libOpenCOR
uses: actions/checkout@v4
- name: Install CMake and Ninja
Expand All @@ -54,14 +67,22 @@ jobs:
uses: cscouto/buildcache-action@v1
with:
cache_key: libraries-${{ matrix.os }}-${{ matrix.shared_libs }}
- name: Configure MSVC
if: ${{ runner.os == 'Windows' }}
uses: ilammy/msvc-dev-cmd@v1
- name: Install LLVM+Clang
uses: KyleMayes/install-llvm-action@v2
with:
version: 18
- name: Install libncurses5 (Linux only)
if: ${{ matrix.os == 'ubuntu-latest' }}
run: |
sudo apt update
sudo apt install libncurses5
- name: Check the version of Clang
run: clang --version
- name: Configure libOpenCOR
run: |
mkdir build
cd build
${{ matrix.cmake_prereqs }} cmake -G Ninja -DBUILD_TYPE=${{ matrix.build_type }} -DONLY_BUILD_THIRD_PARTY_LIBRARIES=ON -DPREBUILT_${{ inputs.third_party_library_name }}=OFF ..
cmake -G Ninja -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DTARGET_ARCHITECTURE=${{ matrix.target_architecture }} -DBUILD_TYPE=${{ matrix.build_type }} -DONLY_BUILD_THIRD_PARTY_LIBRARIES=ON -DPREBUILT_${{ inputs.third_party_library_name }}=OFF ${{ env.DLLVMCLANG_LLVM_TABLEGEN }} ${{ env.DLLVMCLANG_CLANG_TABLEGEN }} ..
- name: Upload library artifact
if: ${{ !startsWith(github.ref, 'refs/tags/v') }}
uses: actions/upload-artifact@v4
Expand Down
37 changes: 32 additions & 5 deletions .github/workflows/cd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,18 +15,38 @@ jobs:
fail-fast: false
matrix:
include:
- name: 'Windows static library'
- name: 'Windows static library (Intel)'
os: windows-latest
msvc_arch: amd64
shared_libs: OFF
- name: 'Windows shared library'
- name: 'Windows shared library (Intel)'
os: windows-latest
msvc_arch: amd64
shared_libs: ON
- name: 'Linux static library'
- name: 'Windows static library (ARM)'
os: windows-latest
msvc_arch: amd64_arm64
shared_libs: OFF
- name: 'Windows shared library (ARM)'
os: windows-latest
msvc_arch: amd64_arm64
shared_libs: ON
- name: 'Linux static library (Intel)'
os: ubuntu-latest
shared_libs: OFF
- name: 'Linux shared library (Intel)'
os: ubuntu-latest
shared_libs: ON
- name: 'Linux static library (ARM)'
os: ubuntu-latest
arch: arm
shared_libs: OFF
- name: 'Linux shared library'
cmake_prereqs: CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++
- name: 'Linux shared library (ARM)'
os: ubuntu-latest
arch: arm
shared_libs: ON
cmake_prereqs: CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++
- name: 'macOS static library (Intel)'
os: macos-13
shared_libs: OFF
Expand All @@ -47,6 +67,11 @@ jobs:
steps:
- name: Check out libOpenCOR
uses: actions/checkout@v4
- name: Install ARM compiler
if: ${{ matrix.arch == 'arm' }}
run: |
sudo apt update
sudo apt install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu
- name: Install CMake and Ninja
uses: lukka/get-cmake@latest
- name: Install buildcache
Expand All @@ -56,11 +81,13 @@ jobs:
- name: Configure MSVC
if: ${{ runner.os == 'Windows' }}
uses: ilammy/msvc-dev-cmd@v1
with:
arch: ${{ matrix.msvc_arch }}
- name: Configure libOpenCOR
run: |
mkdir build
cd build
cmake -G Ninja -DBUILD_TYPE=Release -DCODE_ANALYSIS=OFF -DCODE_COVERAGE=OFF -DDOCUMENTATION=OFF -DJAVASCRIPT_BINDINGS=OFF -DMEMORY_CHECKS=OFF -DPYTHON_BINDINGS=OFF -DPYTHON_UNIT_TESTING=OFF -DSHARED_LIBS=${{ matrix.shared_libs }} -DUNIT_TESTING=OFF ..
${{ matrix.cmake_prereqs }} cmake -G Ninja -DBUILD_TYPE=Release -DCODE_ANALYSIS=OFF -DCODE_COVERAGE=OFF -DDOCUMENTATION=OFF -DJAVASCRIPT_BINDINGS=OFF -DMEMORY_CHECKS=OFF -DPYTHON_BINDINGS=OFF -DPYTHON_UNIT_TESTING=OFF -DSHARED_LIBS=${{ matrix.shared_libs }} -DUNIT_TESTING=OFF ..
- name: Build libOpenCOR
run: |
cd build
Expand Down
87 changes: 81 additions & 6 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
name: CI

on:
pull_request:
branches: [ main ]
# pull_request:
# branches: [ main ]
workflow_dispatch:

jobs:
Expand All @@ -13,8 +13,9 @@ jobs:
fail-fast: false
matrix:
include:
- name: 'Windows static library'
- name: 'Windows static library (Intel)'
os: windows-latest
msvc_arch: amd64
build_type: Release
code_analysis: OFF
code_coverage: OFF
Expand All @@ -28,8 +29,9 @@ jobs:
unit_testing: ON
target: unit_testing
install_uninstall_and_package: ON
- name: 'Windows shared library'
- name: 'Windows shared library (Intel)'
os: windows-latest
msvc_arch: amd64
build_type: Release
code_analysis: OFF
code_coverage: OFF
Expand All @@ -43,7 +45,39 @@ jobs:
unit_testing: ON
target: unit_testing
install_uninstall_and_package: ON
- name: 'Linux static library'
- name: 'Windows static library (ARM)'
os: windows-latest
msvc_arch: amd64_arm64
build_type: Release
code_analysis: OFF
code_coverage: OFF
documentation: OFF
javascript_bindings: OFF
javascript_unit_testing: OFF
memory_checks: OFF
python_bindings: OFF
python_unit_testing: OFF
shared_libs: OFF
unit_testing: ON
target: unit_testing
install_uninstall_and_package: ON
- name: 'Windows shared library (ARM)'
os: windows-latest
msvc_arch: amd64_arm64
build_type: Release
code_analysis: OFF
code_coverage: OFF
documentation: OFF
javascript_bindings: OFF
javascript_unit_testing: OFF
memory_checks: OFF
python_bindings: OFF
python_unit_testing: OFF
shared_libs: ON
unit_testing: ON
target: unit_testing
install_uninstall_and_package: ON
- name: 'Linux static library (Intel)'
os: ubuntu-latest
build_type: Release
code_analysis: OFF
Expand All @@ -58,7 +92,7 @@ jobs:
unit_testing: ON
target: unit_testing
install_uninstall_and_package: ON
- name: 'Linux shared library'
- name: 'Linux shared library (Intel)'
os: ubuntu-latest
build_type: Release
code_analysis: OFF
Expand All @@ -73,6 +107,40 @@ jobs:
unit_testing: ON
target: unit_testing
install_uninstall_and_package: ON
- name: 'Linux static library (ARM)'
os: ubuntu-latest
arch: arm
build_type: Release
code_analysis: OFF
code_coverage: OFF
documentation: OFF
javascript_bindings: OFF
javascript_unit_testing: OFF
memory_checks: OFF
python_bindings: OFF
python_unit_testing: OFF
shared_libs: OFF
unit_testing: ON
target: unit_testing
install_uninstall_and_package: ON
context: CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++
- name: 'Linux shared library (ARM)'
os: ubuntu-latest
arch: arm
build_type: Release
code_analysis: OFF
code_coverage: OFF
documentation: OFF
javascript_bindings: OFF
javascript_unit_testing: OFF
memory_checks: OFF
python_bindings: OFF
python_unit_testing: OFF
shared_libs: ON
unit_testing: ON
target: unit_testing
install_uninstall_and_package: ON
context: CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++
- name: 'macOS static library (Intel)'
os: macos-13
build_type: Release
Expand Down Expand Up @@ -325,6 +393,11 @@ jobs:
uses: actions/setup-python@v5
with:
python-version: '3.13'
- name: Install ARM compiler
if: ${{ matrix.arch == 'arm' }}
run: |
sudo apt update
sudo apt install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu
- name: Install CMake and Ninja
uses: lukka/get-cmake@latest
- name: Install buildcache
Expand All @@ -334,6 +407,8 @@ jobs:
- name: Configure MSVC
if: ${{ runner.os == 'Windows' }}
uses: ilammy/msvc-dev-cmd@v1
with:
arch: ${{ matrix.msvc_arch }}
- name: Install LLVM
if: ${{ matrix.code_coverage == 'ON' }}
run: |
Expand Down
Loading
Loading