Merge topic 'ci-fedora-40'

acf1179e74 ci: Verify that C++26 modes work with GCC and Clang on Fedora
b05f94fa10 ci: Enable FindOpenACC tests in LLVM/Clang jobs on Fedora
c722bde0e3 ci: Enable FindOpenACC test for each language independently
b84b0fdd89 ci: Enable FindOpenMP tests in LLVM/Clang jobs on Fedora
4590255c63 ci: Subsume GCC C++ modules testing in main Fedora jobs
9c004ddb3d ci: use Fedora 40 images and environments
0f56cc9a4e ci: update Linux image to Fedora 40
21ef873660 clang-tidy module: Update to build against LLVM/Clang 18
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9462
This commit is contained in:
Brad King
2024-04-25 14:37:03 +00:00
committed by Kitware Robot
64 changed files with 230 additions and 234 deletions

View File

@@ -5,12 +5,16 @@ bugprone-*,\
-bugprone-easily-swappable-parameters,\
-bugprone-empty-catch,\
-bugprone-implicit-widening-of-multiplication-result,\
-bugprone-inc-dec-in-conditions,\
-bugprone-macro-parentheses,\
-bugprone-misplaced-widening-cast,\
-bugprone-multi-level-implicit-pointer-conversion,\
-bugprone-narrowing-conversions,\
-bugprone-switch-missing-default-case,\
-bugprone-too-small-loop-variable,\
-bugprone-unchecked-optional-access,\
-bugprone-unused-local-non-trivial-variable,\
-bugprone-unused-return-value,\
misc-*,\
-misc-confusable-identifiers,\
-misc-const-correctness,\
@@ -31,9 +35,12 @@ modernize-*,\
-modernize-use-transparent-functors,\
performance-*,\
-performance-avoid-endl,\
-performance-enum-size,\
-performance-inefficient-vector-operation,\
-performance-noexcept-swap,\
readability-*,\
-readability-avoid-nested-conditional-operator,\
-readability-avoid-return-with-void-value,\
-readability-avoid-unconditional-preprocessor-if,\
-readability-convert-member-functions-to-static,\
-readability-function-cognitive-complexity,\
@@ -45,8 +52,11 @@ readability-*,\
-readability-magic-numbers,\
-readability-make-member-function-const,\
-readability-named-parameter,\
-readability-redundant-casting,\
-readability-redundant-declaration,\
-readability-redundant-inline-specifier,\
-readability-redundant-member-init,\
-readability-reference-to-constructed-temporary,\
-readability-simplify-boolean-expr,\
-readability-static-accessed-through-instance,\
-readability-suspicious-call-argument,\

View File

@@ -59,7 +59,7 @@ p:source-package:
p:doc-package:
extends:
- .fedora39_sphinx_package
- .fedora40_sphinx_package
- .cmake_prep_doc_linux
- .linux_x86_64_tags
- .cmake_doc_artifacts
@@ -108,18 +108,18 @@ l:iwyu-debian12:
- .cmake_cdash_artifacts
- .run_automatically
l:tidy-fedora39:
l:tidy-fedora40:
extends:
- .fedora39_tidy
- .fedora40_tidy
- .cmake_build_linux
- .cmake_tidy_artifacts
- .linux_x86_64_tags
- .cmake_cdash_artifacts
- .run_automatically
l:sphinx-fedora39:
l:sphinx-fedora40:
extends:
- .fedora39_sphinx
- .fedora40_sphinx
- .cmake_build_linux
- .cmake_sphinx_artifacts
- .linux_x86_64_tags
@@ -128,9 +128,9 @@ l:sphinx-fedora39:
CMAKE_CI_JOB_CONTINUOUS: "true"
CMAKE_CI_JOB_HELP: "true"
l:clang-analyzer-fedora39:
l:clang-analyzer-fedora40:
extends:
- .fedora39_clang_analyzer
- .fedora40_clang_analyzer
- .cmake_build_linux
- .linux_x86_64_tags
- .run_automatically
@@ -234,9 +234,9 @@ t:fedora39-hip-radeon:
variables:
CMAKE_CI_JOB_NIGHTLY: "true"
t:fedora39-ninja-clang:
t:fedora40-ninja-clang:
extends:
- .fedora39_ninja_clang
- .fedora40_ninja_clang
- .cmake_test_linux_release
- .linux_x86_64_tags
- .run_dependent
@@ -244,9 +244,9 @@ t:fedora39-ninja-clang:
variables:
CMAKE_CI_JOB_NIGHTLY: "true"
t:fedora39-ninja-multi-clang:
t:fedora40-ninja-multi-clang:
extends:
- .fedora39_ninja_multi_clang
- .fedora40_ninja_multi_clang
- .cmake_test_linux_release
- .linux_x86_64_tags
- .run_dependent
@@ -254,9 +254,9 @@ t:fedora39-ninja-multi-clang:
variables:
CMAKE_CI_JOB_NIGHTLY: "true"
t:fedora39-makefiles-clang:
t:fedora40-makefiles-clang:
extends:
- .fedora39_makefiles_clang
- .fedora40_makefiles_clang
- .cmake_test_linux_release
- .linux_x86_64_tags
- .run_dependent
@@ -264,17 +264,17 @@ t:fedora39-makefiles-clang:
variables:
CMAKE_CI_JOB_NIGHTLY: "true"
t:fedora39-makefiles:
t:fedora40-makefiles:
extends:
- .fedora39_makefiles
- .fedora40_makefiles
- .cmake_test_linux_release
- .linux_x86_64_tags
- .run_dependent
- .needs_centos7_x86_64
t:fedora39-makefiles-nospace:
t:fedora40-makefiles-nospace:
extends:
- .fedora39_makefiles
- .fedora40_makefiles
- .cmake_test_linux_release
- .linux_x86_64_tags
- .cmake_junit_artifacts
@@ -282,7 +282,7 @@ t:fedora39-makefiles-nospace:
- .needs_centos7_x86_64
variables:
GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake-ci"
CMAKE_CI_BUILD_NAME: fedora39_makefiles_nospace
CMAKE_CI_BUILD_NAME: fedora40_makefiles_nospace
CMAKE_CI_JOB_NIGHTLY: "true"
t:nvhpc22.11-ninja:
@@ -406,26 +406,6 @@ t:hip5.5-radeon:
variables:
CMAKE_CI_JOB_NIGHTLY: "true"
t:linux-gcc-cxx-modules-ninja:
extends:
- .gcc_cxx_modules_ninja
- .cmake_test_linux_release
- .linux_x86_64_tags
- .run_dependent
- .needs_centos7_x86_64
variables:
CMAKE_CI_JOB_NIGHTLY: "true"
t:linux-gcc-cxx-modules-ninja-multi:
extends:
- .gcc_cxx_modules_ninja_multi
- .cmake_test_linux_release
- .linux_x86_64_tags
- .run_dependent
- .needs_centos7_x86_64
variables:
CMAKE_CI_JOB_NIGHTLY: "true"
t:debian10-legacy:
extends:
- .debian10_legacy
@@ -437,9 +417,9 @@ t:debian10-legacy:
variables:
CMAKE_CI_JOB_NIGHTLY: "true"
b:fedora39-ninja:
b:fedora40-ninja:
extends:
- .fedora39_ninja
- .fedora40_ninja
- .cmake_build_linux
- .cmake_build_artifacts
- .linux_x86_64_tags
@@ -447,9 +427,9 @@ b:fedora39-ninja:
variables:
CMAKE_CI_JOB_CONTINUOUS: "true"
b:fedora39-makefiles-symlinked:
b:fedora40-makefiles-symlinked:
extends:
- .fedora39_makefiles_symlinked
- .fedora40_makefiles_symlinked
- .cmake_build_linux
- .cmake_build_artifacts
- .linux_x86_64_tags
@@ -484,54 +464,54 @@ b:debian12-aarch64-extdeps:
variables:
CMAKE_CI_JOB_NIGHTLY: "true"
b:fedora39-extdeps:
b:fedora40-extdeps:
extends:
- .fedora39_extdeps
- .fedora40_extdeps
- .cmake_build_linux_standalone
- .linux_x86_64_tags
- .run_manually
variables:
CMAKE_CI_JOB_NIGHTLY: "true"
t:fedora39-ninja:
t:fedora40-ninja:
extends:
- .fedora39_ninja
- .fedora40_ninja
- .cmake_test_linux
- .linux_x86_64_tags_x11
- .cmake_test_artifacts
- .run_dependent
dependencies:
- b:fedora39-ninja
- b:fedora40-ninja
needs:
- b:fedora39-ninja
- b:fedora40-ninja
variables:
CMAKE_CI_JOB_CONTINUOUS: "true"
t:fedora39-makefiles-symlinked:
t:fedora40-makefiles-symlinked:
extends:
- .fedora39_makefiles_symlinked
- .fedora40_makefiles_symlinked
- .cmake_test_linux
- .linux_x86_64_tags_x11
- .cmake_test_artifacts
- .run_dependent
dependencies:
- b:fedora39-makefiles-symlinked
- b:fedora40-makefiles-symlinked
needs:
- b:fedora39-makefiles-symlinked
- b:fedora40-makefiles-symlinked
variables:
CMAKE_CI_JOB_NIGHTLY: "true"
t:fedora39-ninja-multi:
t:fedora40-ninja-multi:
extends:
- .fedora39_ninja_multi
- .fedora40_ninja_multi
- .cmake_test_linux_external
- .linux_x86_64_tags
- .cmake_junit_artifacts
- .run_dependent
dependencies:
- t:fedora39-ninja
- t:fedora40-ninja
needs:
- t:fedora39-ninja
- t:fedora40-ninja
t:intel2016u2-makefiles:
extends:
@@ -786,9 +766,9 @@ u:linux-aarch64-package:
## Sanitizer builds
b:fedora39-asan:
b:fedora40-asan:
extends:
- .fedora39_asan
- .fedora40_asan
- .cmake_build_linux
- .cmake_build_artifacts
- .linux_x86_64_tags
@@ -796,16 +776,16 @@ b:fedora39-asan:
variables:
CMAKE_CI_JOB_NIGHTLY: "true"
t:fedora39-asan:
t:fedora40-asan:
extends:
- .fedora39_asan
- .fedora40_asan
- .cmake_memcheck_linux
- .linux_x86_64_tags
- .run_dependent
dependencies:
- b:fedora39-asan
- b:fedora40-asan
needs:
- b:fedora39-asan
- b:fedora40-asan
variables:
CMAKE_CI_JOB_NIGHTLY: "true"

View File

@@ -64,6 +64,9 @@ set(CMake_TEST_FindMPI_Fortran "ON" CACHE BOOL "")
set(CMake_TEST_FindMPI "ON" CACHE BOOL "")
set(CMake_TEST_FindODBC "ON" CACHE BOOL "")
set(CMake_TEST_FindOpenACC "ON" CACHE BOOL "")
set(CMake_TEST_FindOpenACC_C "ON" CACHE BOOL "")
set(CMake_TEST_FindOpenACC_CXX "ON" CACHE BOOL "")
set(CMake_TEST_FindOpenACC_Fortran "ON" CACHE BOOL "")
set(CMake_TEST_FindOpenAL "ON" CACHE BOOL "")
set(CMake_TEST_FindOpenGL "ON" CACHE BOOL "")
set(CMake_TEST_FindOpenMP_C "ON" CACHE BOOL "")

View File

@@ -69,6 +69,9 @@ set(CMake_TEST_FindMPI_Fortran "ON" CACHE BOOL "")
set(CMake_TEST_FindMPI "ON" CACHE BOOL "")
set(CMake_TEST_FindODBC "ON" CACHE BOOL "")
set(CMake_TEST_FindOpenACC "ON" CACHE BOOL "")
set(CMake_TEST_FindOpenACC_C "ON" CACHE BOOL "")
set(CMake_TEST_FindOpenACC_CXX "ON" CACHE BOOL "")
set(CMake_TEST_FindOpenACC_Fortran "ON" CACHE BOOL "")
set(CMake_TEST_FindOpenAL "ON" CACHE BOOL "")
set(CMake_TEST_FindOpenGL "ON" CACHE BOOL "")
set(CMake_TEST_FindOpenMP_C "ON" CACHE BOOL "")

View File

@@ -1,3 +0,0 @@
set(configure_no_sccache 1)
include("${CMAKE_CURRENT_LIST_DIR}/configure_fedora39_common.cmake")

View File

@@ -1,5 +0,0 @@
set(CMAKE_Fortran_COMPILER "/usr/bin/flang-new" CACHE FILEPATH "")
set(CMAKE_Fortran_COMPILER_ID "LLVMFlang" CACHE STRING "")
set(CMAKE_Fortran_COMPILER_SUPPORTS_F90 "1" CACHE BOOL "")
include("${CMAKE_CURRENT_LIST_DIR}/configure_external_test.cmake")

View File

@@ -1,4 +1,4 @@
set(CMAKE_C_FLAGS "-fsanitize=address" CACHE STRING "")
set(CMAKE_CXX_FLAGS "-fsanitize=address" CACHE STRING "")
include("${CMAKE_CURRENT_LIST_DIR}/configure_fedora39_common.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/configure_fedora40_common.cmake")

View File

@@ -0,0 +1,3 @@
set(configure_no_sccache 1)
include("${CMAKE_CURRENT_LIST_DIR}/configure_fedora40_common.cmake")

View File

@@ -0,0 +1,17 @@
set(CMAKE_Fortran_COMPILER "/usr/bin/flang-new" CACHE FILEPATH "")
set(CMAKE_Fortran_COMPILER_ID "LLVMFlang" CACHE STRING "")
set(CMAKE_Fortran_COMPILER_SUPPORTS_F90 "1" CACHE BOOL "")
set(CMake_TEST_C_STANDARDS "90;99;11;17;23" CACHE STRING "")
set(CMake_TEST_CXX_STANDARDS "98;11;14;17;20;23;26" CACHE STRING "")
set(CMake_TEST_FindOpenACC "ON" CACHE BOOL "")
set(CMake_TEST_FindOpenACC_C "ON" CACHE BOOL "")
set(CMake_TEST_FindOpenACC_CXX "ON" CACHE BOOL "")
set(CMake_TEST_FindOpenACC_Fortran "OFF" CACHE BOOL "") # flang-new fails producing LLVM IR
set(CMake_TEST_FindOpenMP_C "ON" CACHE BOOL "")
set(CMake_TEST_FindOpenMP_CXX "ON" CACHE BOOL "")
set(CMake_TEST_FindOpenMP_Fortran "ON" CACHE BOOL "")
set(CMake_TEST_FindOpenMP "ON" CACHE BOOL "")
include("${CMAKE_CURRENT_LIST_DIR}/configure_external_test.cmake")

View File

@@ -1,5 +1,5 @@
set(CMake_TEST_C_STANDARDS "90;99;11;17;23" CACHE STRING "")
set(CMake_TEST_CXX_STANDARDS "98;11;14;17;20;23" CACHE STRING "")
set(CMake_TEST_CXX_STANDARDS "98;11;14;17;20;23;26" CACHE STRING "")
set(CMake_TEST_CTestUpdate_BZR "ON" CACHE BOOL "")
set(CMake_TEST_CTestUpdate_GIT "ON" CACHE BOOL "")
@@ -67,6 +67,9 @@ set(CMake_TEST_FindMPI_ENVMOD "PATH=path_list_prepend:/usr/lib64/mpich/bin;LD_LI
set(CMake_TEST_FindMPI "ON" CACHE BOOL "")
set(CMake_TEST_FindODBC "ON" CACHE BOOL "")
set(CMake_TEST_FindOpenACC "ON" CACHE BOOL "")
set(CMake_TEST_FindOpenACC_C "ON" CACHE BOOL "")
set(CMake_TEST_FindOpenACC_CXX "ON" CACHE BOOL "")
set(CMake_TEST_FindOpenACC_Fortran "ON" CACHE BOOL "")
set(CMake_TEST_FindOpenAL "ON" CACHE BOOL "")
set(CMake_TEST_FindOpenGL "ON" CACHE BOOL "")
set(CMake_TEST_FindOpenMP_C "ON" CACHE BOOL "")

View File

@@ -2,4 +2,4 @@ if (NOT "$ENV{CMAKE_CI_NIGHTLY}" STREQUAL "")
set(CMAKE_TESTS_CDASH_SERVER "https://open.cdash.org" CACHE STRING "")
endif()
include("${CMAKE_CURRENT_LIST_DIR}/configure_fedora39_common_clang.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/configure_fedora40_common_clang.cmake")

View File

@@ -1,2 +1,2 @@
include("${CMAKE_CURRENT_LIST_DIR}/configure_symlinked_common.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/configure_fedora39_common.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/configure_fedora40_common.cmake")

View File

@@ -2,6 +2,7 @@ set(CMake_TEST_GUI "ON" CACHE BOOL "")
if (NOT "$ENV{CMAKE_CI_NIGHTLY}" STREQUAL "")
set(CMake_TEST_ISPC "ON" CACHE STRING "")
endif()
set(CMake_TEST_MODULE_COMPILATION "named,compile_commands,collation,partitions,internal_partitions,export_bmi,install_bmi,shared,bmionly" CACHE STRING "")
set(CMake_TEST_TLS_VERIFY_URL "https://gitlab.kitware.com" CACHE STRING "")
set(CMake_TEST_TLS_VERSION "1.3" CACHE STRING "")
@@ -12,4 +13,4 @@ set(CMAKE_CXX_FLAGS_RELEASE "-O3" CACHE STRING "")
# Cover compilation with C++11 only and not higher standards.
set(CMAKE_CXX_STANDARD "11" CACHE STRING "")
include("${CMAKE_CURRENT_LIST_DIR}/configure_fedora39_common.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/configure_fedora40_common.cmake")

View File

@@ -1,3 +1,3 @@
set(CMake_TEST_MODULE_COMPILATION "named,compile_commands,collation,partitions,internal_partitions,export_bmi,install_bmi,shared,bmionly" CACHE STRING "")
include("${CMAKE_CURRENT_LIST_DIR}/configure_fedora39_common_clang.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/configure_fedora40_common_clang.cmake")

View File

@@ -1,5 +1,6 @@
if (NOT "$ENV{CMAKE_CI_NIGHTLY}" STREQUAL "")
set(CMake_TEST_ISPC "ON" CACHE STRING "")
endif()
set(CMake_TEST_MODULE_COMPILATION "named,compile_commands,collation,partitions,internal_partitions,export_bmi,install_bmi,shared,bmionly" CACHE STRING "")
include("${CMAKE_CURRENT_LIST_DIR}/configure_external_test.cmake")

View File

@@ -1,3 +1,3 @@
set(CMake_TEST_MODULE_COMPILATION "named,compile_commands,collation,partitions,internal_partitions,export_bmi,install_bmi,shared,bmionly" CACHE STRING "")
include("${CMAKE_CURRENT_LIST_DIR}/configure_fedora39_common_clang.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/configure_fedora40_common_clang.cmake")

View File

@@ -3,4 +3,4 @@ set(CMake_USE_CLANG_TIDY_MODULE ON CACHE BOOL "")
set(CMake_CLANG_TIDY_MODULE "$ENV{CI_PROJECT_DIR}/Utilities/ClangTidyModule/build/libcmake-clang-tidy-module.so" CACHE FILEPATH "")
set(CMake_CLANG_TIDY_EXPORT_FIXES_DIR "$ENV{CI_PROJECT_DIR}/.gitlab/clang-tidy-fixes" CACHE PATH "")
include("${CMAKE_CURRENT_LIST_DIR}/configure_fedora39_common.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/configure_fedora40_common.cmake")

View File

@@ -1,3 +0,0 @@
set(CMake_TEST_MODULE_COMPILATION "named,compile_commands,collation,partitions,internal_partitions,export_bmi,install_bmi,bmionly" CACHE STRING "")
include("${CMAKE_CURRENT_LIST_DIR}/configure_external_test.cmake")

View File

@@ -1,3 +0,0 @@
set(CMake_TEST_MODULE_COMPILATION "named,compile_commands,collation,partitions,internal_partitions,export_bmi,install_bmi,bmionly" CACHE STRING "")
include("${CMAKE_CURRENT_LIST_DIR}/configure_external_test.cmake")

View File

@@ -0,0 +1,27 @@
# syntax=docker/dockerfile:1
ARG BASE_IMAGE=fedora:39
FROM ${BASE_IMAGE} AS dnf-cache
# Populate DNF cache w/ the fresh metadata and prefetch packages.
RUN --mount=type=bind,source=deps_packages.lst,target=/root/deps_packages.lst \
--mount=type=tmpfs,target=/var/log \
--mount=type=tmpfs,target=/tmp \
dnf install \
--setopt=install_weak_deps=False \
--setopt=fastestmirror=True \
--setopt=max_parallel_downloads=10 \
--downloadonly \
-y \
$(grep -h '^[^#]\+$' /root/*.lst)
FROM ${BASE_IMAGE}
LABEL maintainer="Brad King <brad.king@kitware.com>"
RUN --mount=type=bind,source=install_deps.sh,target=/root/install_deps.sh \
--mount=type=bind,source=deps_packages.lst,target=/root/deps_packages.lst \
--mount=type=cache,from=dnf-cache,source=/var/cache/dnf,target=/var/cache/dnf,sharing=private \
--mount=type=cache,target=/var/cache/pip \
--mount=type=tmpfs,target=/var/log \
--mount=type=tmpfs,target=/tmp \
sh /root/install_deps.sh

View File

@@ -0,0 +1,15 @@
# Install development tools.
clang
clang-tools-extra
compiler-rt
gcc-c++
git-core
make
# Install HIP language toolchain.
hsakmt-devel
lld
llvm
rocm-comgr-devel
rocm-hip-devel
rocm-runtime-devel

View File

@@ -0,0 +1,10 @@
#!/bin/sh
set -e
dnf install \
--setopt=install_weak_deps=False \
--setopt=fastestmirror=True \
--setopt=max_parallel_downloads=10 \
-y \
$(grep '^[^#]\+$' /root/deps_packages.lst)

View File

@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:1
ARG BASE_IMAGE=fedora:39
ARG BASE_IMAGE=fedora:40
FROM ${BASE_IMAGE} AS dnf-cache
# Populate DNF cache w/ the fresh metadata and prefetch packages.

View File

@@ -11,7 +11,6 @@ clang-tools-extra
clang-tools-extra-devel
compiler-rt
flang
flang-devel
gcc-c++
git-core
llvm-devel
@@ -32,6 +31,7 @@ zlib-devel
# Install documentation tools.
python3-sphinx
python3-sphinxcontrib-qthelp
texinfo
qt5-qttools-devel
qt6-qttools-devel
@@ -49,13 +49,6 @@ which
# Install ASM_NASM language toolchain.
nasm
# Install HIP language toolchain.
hsakmt-devel
lld
rocm-comgr-devel
rocm-hip-devel
rocm-runtime-devel
# Packages needed to test CTest.
breezy
subversion
@@ -99,6 +92,7 @@ libcurl-devel
libicu-devel
libinput-devel systemd-devel
libjpeg-turbo-devel
libomp-devel
libpng-devel
opensp-devel
postgresql-server-devel
@@ -126,3 +120,6 @@ wxGTK-devel
xalan-c-devel
xerces-c-devel
xz-devel
# Packages needed to test third-party binaries.
ncurses-compat-libs

View File

@@ -18,13 +18,13 @@ readonly llvm_version="$( echo "$llvm_full_version" | cut -d. -f-1 )"
git checkout "clang_$llvm_version"
git apply <<EOF
diff --git a/iwyu_driver.cc b/iwyu_driver.cc
index 42fea35..fbb77a9 100644
index dd4b046..cfd568a 100644
--- a/iwyu_driver.cc
+++ b/iwyu_driver.cc
@@ -167,6 +167,7 @@ CompilerInstance* CreateCompilerInstance(int argc, const char **argv) {
DiagnosticsEngine diagnostics(diagnostic_id, &*diagnostic_options,
diagnostic_client);
Driver driver(path, getDefaultTargetTriple(), diagnostics);
@@ -249,6 +249,7 @@ bool ExecuteAction(int argc, const char** argv,
/*CodeGenOpts=*/nullptr);
Driver driver(path, getDefaultTargetTriple(), *diagnostics);
+ driver.ResourceDir = "/usr/lib64/clang/$llvm_full_version";
driver.setTitle("include what you use");

View File

@@ -1,9 +0,0 @@
FROM fedora:38
MAINTAINER Ben Boeckel <ben.boeckel@kitware.com>
# Install build dependencies for packages.
COPY install_deps.sh /root/install_deps.sh
RUN sh /root/install_deps.sh
COPY install_gcc.sh /root/install_gcc.sh
RUN sh /root/install_gcc.sh

View File

@@ -1,7 +0,0 @@
#!/bin/sh
set -e
dnf install -y --setopt=install_weak_deps=False \
gcc-c++ mpfr-devel libmpc-devel isl-devel flex bison file findutils diffutils git-core
dnf clean all

View File

@@ -1,25 +0,0 @@
#!/bin/sh
set -e
readonly revision="29862e21f6d656eca59284c927d0c4c0698eb99c" # master as of 21 Sep 2023
readonly tarball="git://gcc.gnu.org/git/gcc.git"
readonly workdir="$HOME/gcc"
readonly srcdir="$workdir/gcc"
readonly builddir="$workdir/build"
readonly njobs="$( nproc )"
mkdir -p "$workdir"
cd "$workdir"
git clone "$tarball" "$srcdir"
git -C "$srcdir" checkout "$revision"
mkdir -p "$builddir"
cd "$builddir"
"$srcdir/configure" \
--disable-multilib \
--enable-languages=c,c++ \
--prefix="/opt/gcc-p1689"
make "-j$njobs"
make "-j$njobs" install-strip
rm -rf "$workdir"

View File

@@ -1,3 +0,0 @@
export CC=/usr/bin/clang-17
export CXX=/usr/bin/clang++-17
export FC=/usr/bin/flang-new

View File

@@ -1 +0,0 @@
. .gitlab/ci/env_fedora39_common_clang.sh

View File

@@ -1 +0,0 @@
include("${CMAKE_CURRENT_LIST_DIR}/env_fedora39_makefiles.cmake")

View File

@@ -1 +0,0 @@
. .gitlab/ci/env_fedora39_makefiles.sh

View File

@@ -1 +0,0 @@
. .gitlab/ci/env_fedora39_common_clang.sh

View File

@@ -1 +0,0 @@
. .gitlab/ci/env_fedora39_common_clang.sh

View File

@@ -0,0 +1,3 @@
export CC=/usr/bin/clang-18
export CXX=/usr/bin/clang++-18
export FC=/usr/bin/flang-new

View File

@@ -0,0 +1 @@
. .gitlab/ci/env_fedora40_common_clang.sh

View File

@@ -0,0 +1 @@
include("${CMAKE_CURRENT_LIST_DIR}/env_fedora40_makefiles.cmake")

View File

@@ -0,0 +1 @@
. .gitlab/ci/env_fedora40_makefiles.sh

View File

@@ -0,0 +1 @@
. .gitlab/ci/env_fedora40_common_clang.sh

View File

@@ -0,0 +1 @@
. .gitlab/ci/env_fedora40_common_clang.sh

View File

@@ -5,7 +5,7 @@
### Release
.linux_prep_source:
image: "fedora:39"
image: "fedora:40"
variables:
GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci"
@@ -68,45 +68,53 @@
### Fedora
.fedora39:
image: "kitware/cmake:ci-fedora39-x86_64-2024-04-10"
.fedora40:
image: "kitware/cmake:ci-fedora40-x86_64-2024-04-24"
variables:
GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci/long file name for testing purposes"
CMAKE_ARCH: x86_64
# FIXME(#25932): Our HIP tests do not fully work in CI with Fedora 40.
.fedora39_hip:
image: "kitware/cmake:ci-fedora39-hip-x86_64-2024-04-24"
variables:
GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci"
CMAKE_ARCH: x86_64
#### Lint builds
.fedora39_tidy:
extends: .fedora39
.fedora40_tidy:
extends: .fedora40
variables:
CMAKE_CONFIGURATION: fedora39_tidy
CMAKE_CONFIGURATION: fedora40_tidy
CMAKE_CI_NO_INSTALL: 1
.fedora39_clang_analyzer:
extends: .fedora39
.fedora40_clang_analyzer:
extends: .fedora40
variables:
CMAKE_CONFIGURATION: fedora39_clang_analyzer
CMAKE_CONFIGURATION: fedora40_clang_analyzer
CMAKE_CI_BUILD_TYPE: Debug
CTEST_NO_WARNINGS_ALLOWED: 1
CMAKE_CI_NO_INSTALL: 1
.fedora39_sphinx:
extends: .fedora39
.fedora40_sphinx:
extends: .fedora40
variables:
CMAKE_CONFIGURATION: fedora39_sphinx
CMAKE_CONFIGURATION: fedora40_sphinx
CTEST_NO_WARNINGS_ALLOWED: 1
CTEST_SOURCE_SUBDIRECTORY: "Utilities/Sphinx"
CMAKE_CI_NO_INSTALL: 1
.fedora39_sphinx_package:
extends: .fedora39
.fedora40_sphinx_package:
extends: .fedora40
variables:
CMAKE_CONFIGURATION: fedora39_sphinx_package
CMAKE_CONFIGURATION: fedora40_sphinx_package
CTEST_SOURCE_SUBDIRECTORY: "Utilities/Sphinx"
#### Build and test
@@ -162,43 +170,43 @@
CMAKE_CI_BUILD_TYPE: Release
CTEST_NO_WARNINGS_ALLOWED: 1
.fedora39_extdeps:
extends: .fedora39
.fedora40_extdeps:
extends: .fedora40
variables:
CMAKE_CONFIGURATION: fedora39_extdeps
CMAKE_CONFIGURATION: fedora40_extdeps
CMAKE_CI_BUILD_TYPE: Release
CTEST_NO_WARNINGS_ALLOWED: 1
.fedora39_ninja:
extends: .fedora39
.fedora40_ninja:
extends: .fedora40
variables:
CMAKE_CONFIGURATION: fedora39_ninja
CMAKE_CONFIGURATION: fedora40_ninja
CMAKE_CI_BUILD_TYPE: Release
CTEST_NO_WARNINGS_ALLOWED: 1
.fedora39_ninja_multi:
extends: .fedora39
.fedora40_ninja_multi:
extends: .fedora40
variables:
CMAKE_CONFIGURATION: fedora39_ninja_multi
CMAKE_CONFIGURATION: fedora40_ninja_multi
CTEST_NO_WARNINGS_ALLOWED: 1
CMAKE_GENERATOR: "Ninja Multi-Config"
.fedora39_makefiles:
extends: .fedora39
.fedora40_makefiles:
extends: .fedora40
variables:
CMAKE_CONFIGURATION: fedora39_makefiles
CMAKE_CONFIGURATION: fedora40_makefiles
CTEST_NO_WARNINGS_ALLOWED: 1
CMAKE_GENERATOR: "Unix Makefiles"
.fedora39_makefiles_symlinked:
extends: .fedora39
.fedora40_makefiles_symlinked:
extends: .fedora40
variables:
CMAKE_CONFIGURATION: fedora39_makefiles_symlinked
CMAKE_CONFIGURATION: fedora40_makefiles_symlinked
CTEST_NO_WARNINGS_ALLOWED: 1
CMAKE_GENERATOR: "Unix Makefiles"
CMAKE_CI_IN_SYMLINK_TREE: 1
@@ -219,24 +227,24 @@
variables:
CMAKE_CONFIGURATION: debian12_ninja_clang
.fedora39_makefiles_clang:
extends: .fedora39
.fedora40_makefiles_clang:
extends: .fedora40
variables:
CMAKE_CONFIGURATION: fedora39_makefiles_clang
CMAKE_CONFIGURATION: fedora40_makefiles_clang
CMAKE_GENERATOR: "Unix Makefiles"
.fedora39_ninja_clang:
extends: .fedora39
.fedora40_ninja_clang:
extends: .fedora40
variables:
CMAKE_CONFIGURATION: fedora39_ninja_clang
CMAKE_CONFIGURATION: fedora40_ninja_clang
.fedora39_ninja_multi_clang:
extends: .fedora39
.fedora40_ninja_multi_clang:
extends: .fedora40
variables:
CMAKE_CONFIGURATION: fedora39_ninja_multi_clang
CMAKE_CONFIGURATION: fedora40_ninja_multi_clang
CMAKE_GENERATOR: "Ninja Multi-Config"
### Sanitizers
@@ -252,13 +260,13 @@
CTEST_MEMORYCHECK_TYPE: AddressSanitizer
CTEST_MEMORYCHECK_SANITIZER_OPTIONS: ""
.fedora39_asan:
.fedora40_asan:
extends:
- .fedora39
- .fedora40
- .fedora_asan_addon
variables:
CMAKE_CONFIGURATION: fedora39_asan
CMAKE_CONFIGURATION: fedora40_asan
### Intel Compiler
@@ -410,7 +418,7 @@
CTEST_LABELS: "HIP"
.fedora39_hip_radeon:
extends: .fedora39
extends: .fedora39_hip
variables:
CMAKE_CONFIGURATION: fedora39_hip_radeon
@@ -423,30 +431,6 @@
CMAKE_CONFIGURATION: hip5.5_nvidia
CTEST_LABELS: "HIP"
### C++ modules
.gcc_cxx_modules_x86_64:
image: "kitware/cmake:ci-gcc_cxx_modules-x86_64-2023-09-21"
variables:
GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci"
CMAKE_ARCH: x86_64
CC: "/opt/gcc-p1689/bin/gcc"
CXX: "/opt/gcc-p1689/bin/g++"
.gcc_cxx_modules_ninja:
extends: .gcc_cxx_modules_x86_64
variables:
CMAKE_CONFIGURATION: linux_gcc_cxx_modules_ninja
.gcc_cxx_modules_ninja_multi:
extends: .gcc_cxx_modules_x86_64
variables:
CMAKE_CONFIGURATION: linux_gcc_cxx_modules_ninja_multi
CMAKE_GENERATOR: "Ninja Multi-Config"
### Debian 10 legacy packages
.debian10:
@@ -539,7 +523,7 @@
.cmake_codespell_linux:
stage: build
extends: .fedora39
extends: .fedora40
script:
- .gitlab/ci/codespell.sh
interruptible: true
@@ -682,7 +666,7 @@
.cmake_org_help:
stage: build
extends:
- .fedora39
- .fedora40
- .linux_x86_64_tags
- .cmake_org_help_artifacts
script:

View File

@@ -1,7 +1,7 @@
# Steps for uploading artifacts
.rsync_upload_package:
image: "fedora:39"
image: "fedora:40"
stage: upload
tags:
- cmake
@@ -21,7 +21,7 @@
.rsync_upload_help:
stage: upload
image: "fedora:39"
image: "fedora:40"
tags:
- cmake
- docker

View File

@@ -17,6 +17,7 @@ list(APPEND CTEST_CUSTOM_WARNING_EXCEPTION
"not sorted slower link editing will result"
"stl_deque.h:479"
"Utilities.cmzlib."
"Utilities.cmzstd."
"Utilities.cmbzip2."
"Source.CTest.Curl"
"Source.CursesDialog.form"

View File

@@ -1,11 +1,5 @@
set(langs C CXX)
if(NOT CMAKE_GENERATOR STREQUAL "Ninja")
list(APPEND langs Fortran)
endif()
foreach(lang IN LISTS langs)
if(CMAKE_${lang}_COMPILER)
foreach(lang IN ITEMS C CXX Fortran)
if(CMake_TEST_FindOpenACC_${lang})
add_test(NAME FindOpenACC.Test${lang} COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test

View File

@@ -55,10 +55,10 @@ public:
, FID(FID)
{
SourceManager& SM = this->PP->getSourceManager();
const FileEntry* Entry = SM.getFileEntryForID(FID);
OptionalFileEntryRef Entry = SM.getFileEntryRefForID(FID);
assert(Entry && "Invalid FileID given");
Lexer MyLexer(FID, SM.getMemoryBufferForFileOrFake(Entry), SM,
Lexer MyLexer(FID, SM.getMemoryBufferForFileOrFake(*Entry), SM,
this->PP->getLangOpts());
Token Tok;
@@ -157,9 +157,10 @@ public:
// guards.
SourceManager& SM = this->PP->getSourceManager();
if (Reason == EnterFile && FileType == SrcMgr::C_User) {
if (const FileEntry* FE = SM.getFileEntryForID(SM.getFileID(Loc))) {
if (OptionalFileEntryRef FE =
SM.getFileEntryRefForID(SM.getFileID(Loc))) {
std::string FileName = cleanPath(FE->getName());
this->Files[FileName] = FE;
this->Files.try_emplace(FileName, *FE);
}
}
}
@@ -205,9 +206,9 @@ public:
continue;
}
const FileEntry* FE =
SM.getFileEntryForID(SM.getFileID(MI->getDefinitionLoc()));
std::string FileName = cleanPath(FE->getName());
FileEntryRef FE =
*SM.getFileEntryRefForID(SM.getFileID(MI->getDefinitionLoc()));
std::string FileName = cleanPath(FE.getName());
this->Files.erase(FileName);
// Look up Locations for this guard.
@@ -290,7 +291,7 @@ private:
}
std::vector<std::pair<Token, const MacroInfo*>> Macros;
llvm::StringMap<const FileEntry*> Files;
llvm::StringMap<FileEntryRef> Files;
std::map<const IdentifierInfo*, std::pair<SourceLocation, SourceLocation>>
Ifndefs;
std::map<SourceLocation, SourceLocation> EndIfs;

View File

@@ -1,3 +1,4 @@
list(APPEND CTEST_CUSTOM_WARNING_EXCEPTION
"cmake.texi:[0-9]+: warning: .definfoenclose is obsolete"
"cmake.texi:[0-9]+: warning: @ref should not appear on @item line"
)