Skip to content

Commit

Permalink
build and test LLVM version 16
Browse files Browse the repository at this point in the history
Add LLVM-16 to the Nix builds and CI matrix. Also add the option to explicitly
select an LLVM version so the CircleCI build can still work as before.

We should support at least LLVM-17 currently, but there appears to be a
significant performance regression in compiling the generated code for large
variants that I'm going to debug separately. The long term goal is to support
and test all versions 15 and up.

Test plan:
- CI
  • Loading branch information
JakeHillion committed Aug 21, 2024
1 parent 40d3f39 commit 8831269
Show file tree
Hide file tree
Showing 5 changed files with 12 additions and 6 deletions.
2 changes: 1 addition & 1 deletion .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ jobs:
- run:
name: Build
command: |
/tmp/cmake/build/bin/cmake -G Ninja -B build/ -DWITH_FLAKY_TESTS=Off -DCODE_COVERAGE=On -DWARNINGS_AS_ERRORS=<< parameters.warnings_as_errors >>
/tmp/cmake/build/bin/cmake -G Ninja -B build/ -DLLVM_REQUESTED_VERSION=15 -DWITH_FLAKY_TESTS=Off -DCODE_COVERAGE=On -DWARNINGS_AS_ERRORS=<< parameters.warnings_as_errors >>
ninja -C build/
# Testing rubbish:
cp test/ci.oid.toml build/testing.oid.toml
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
runs-on: 16-core-ubuntu
strategy:
matrix:
llvm_version: [15]
llvm_version: [15, 16]
steps:
- uses: actions/[email protected]
- uses: cachix/install-nix-action@v27
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test-report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
steps:
- uses: dorny/test-reporter@v1
with:
artifact: test-results-15
artifact: test-results-16
name: CTest Tests
path: results.xml
reporter: jest-junit
9 changes: 7 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -218,11 +218,16 @@ find_package(Boost REQUIRED COMPONENTS
)
message(STATUS "Linking Boost libraries: ${Boost_LIBRARIES}")

### LLVM and Clang - Preferring Clang 15
find_package(LLVM 15 REQUIRED CONFIG)
### LLVM and Clang
find_package(LLVM ${LLVM_REQUESTED_VERSION} REQUIRED CONFIG)

message(STATUS "Found LLVM ${LLVM_PACKAGE_VERSION}")
message(STATUS "Using LLVMConfig.cmake in: ${LLVM_DIR}")

if((${LLVM_VERSION_MAJOR} VERSION_LESS 15) OR (${LLVM_VERSION_MAJOR} VERSION_GREATER 16))
message(SEND_ERROR "Object Introspection currently requires an LLVM version between 15 and 16!")
endif()

find_package(Clang REQUIRED CONFIG)
message(STATUS "Found Clang ${LLVM_PACKAGE_VERSION}")
message(STATUS "Using ClangConfig.cmake in: ${Clang_DIR}")
Expand Down
3 changes: 2 additions & 1 deletion flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -99,9 +99,10 @@
in
{
packages = rec {
default = oid-llvm15;
default = oid-llvm16;

oid-llvm15 = mkOidPackage pkgs.llvmPackages_15;
oid-llvm16 = mkOidPackage pkgs.llvmPackages_16;
};

apps.default = {
Expand Down

0 comments on commit 8831269

Please sign in to comment.