Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/pr/663' into develop
Browse files Browse the repository at this point in the history
* upstream/pr/663:
  `compiler-versions.cmake`: 2024 edition
  • Loading branch information
LebedevRI committed Feb 13, 2024
2 parents 5fbb89d + a9d2279 commit b1b4b04
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 18 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
matrix:
include:
- os: linux
distro: "debian:trixie-slim"
distro: "debian:bookworm-slim"
uses: ./.github/workflows/CI-rpuu.yml
with:
distro: ${{ matrix.distro }}
Expand Down Expand Up @@ -54,7 +54,7 @@ jobs:
os: [ linux ]
compiler:
- { distro: "debian:bookworm-slim", family: GNU, version: 12, CC: gcc-12, CXX: g++-12 }
- { distro: "debian:trixie-slim", family: LLVM, version: 16, CC: clang-16, CXX: clang++-16 }
- { distro: "debian:bookworm-slim", family: LLVM, version: 16, CC: clang-16, CXX: clang++-16 }
- { distro: "debian:bookworm-slim", family: LLVM, version: 15, CC: clang-15, CXX: clang++-15 }
- { distro: "debian:bookworm-slim", family: LLVM, version: 14, CC: clang-14, CXX: clang++-14 }
flavor: [ ReleaseWithAsserts, Release ]
Expand Down
30 changes: 14 additions & 16 deletions cmake/compiler-versions.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
# * oldest(*) maintained macOS release (assuming current cadence of
# one major macOS release per year, and 3 (three) year shelf-life,
# so last three releases are to be supported)
# * oss-fuzz -provided compiler (LLVM) version
#
# Compiler-wise, that means that we support three compiler families:
# * GCC, with the required version being the newest one that is available
Expand All @@ -15,24 +16,21 @@
# * LLVM, with the required version being the oldest one between
# * the Xcode's underlying LLVM version
# * and the newest one that is available in *both* the
# debian stable *and* the latest ubuntu LTS
# debian stable *and* the latest ubuntu LTS (and on oss-fuzz)
#
# As of the time of writing (2023-10-22), the next (winter) darktable release
# will happen in 2023-12 ish. By that time:
# * debian 12 (Bookworm) will have been released,
# coming with gcc-12 and LLVM15
# * Ubuntu 22.04.1 LTS (Jammy Jellyfish) will be the newest LTS,
# coming with gcc-12 and LLVM15
# * macOS 12 (Big Sur) be the oldest supported macOS version,
# with the newest supported Xcode version being 14.2 (LLVM14-based !)
# As of the time of writing (2024-02-14), the next (summer) darktable release
# will happen in 2024-06 ish. By that time:
# * debian 12 (Bookworm) is the newest debian stable,
# coming with gcc-12 and LLVM16
# * Ubuntu 24.04 LTS (Noble Numbat) will have been released,
# coming with gcc-14 and LLVM18
# * macOS 13 (Ventura) be the oldest supported macOS version,
# with the newest supported Xcode version being 15.2 (LLVM16-based !)
# * (as of 2024-02-14) oss-fuzz provides LLVM15.
#
# Therefore, we require GCC12, macOS 12 + Xcode 14.2, and LLVM14.
#
# The next+1 (fall) darktable release will happen 2023-12 ish,
# and by that time, macOS 11 will have EOL'd on 2023-10 ish,
# so after the spring release, macOS 12 will become required,
# and that will allow us to require Xcode 14.2 (LLVM14-based),
# and that will allow us to require LLVM14,
# Therefore, we currently require GCC12, macOS 12 + Xcode 14.2, and LLVM14.
# but should be able to require GCC12, macOS 13 + Xcode 15.2, and LLVM15,
# and, pending oss-fuzz roll-forward, LLVM16.

if(CMAKE_C_COMPILER_ID STREQUAL "GNU" AND CMAKE_C_COMPILER_VERSION VERSION_LESS 12)
message(SEND_ERROR "GNU C compiler version ${CMAKE_C_COMPILER_VERSION} is too old and is unsupported. Version 12+ is required.")
Expand Down

0 comments on commit b1b4b04

Please sign in to comment.