diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1c7d117092a1f5e8e25ad823e6b666adb096bf34..83c3f3d9dbd3fee1acd700338dd269d2f31cdb56 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -21,15 +21,15 @@ variables: DUNECI_CMAKE_FLAGS: '-DDUNE_RUNNING_IN_CI=TRUE' DUNE_LOG_LEVEL: DEBUG -ubuntu:20.04 gcc-9-17-expensive: +debian:11 gcc-10-20-expensive: extends: .common # This image has Vc - image: registry.dune-project.org/docker/ci/ubuntu:20.04 + image: registry.dune-project.org/docker/ci/debian:11 # allow expensive tests variables: DUNECI_CXXFLAGS: -mavx DUNECI_TEST_LABELS: "" - DUNECI_TOOLCHAIN: gcc-9-17 + DUNECI_TOOLCHAIN: gcc-10-20 DUNE_TEST_EXPECTED_VC_IMPLEMENTATION: AVX # require AVX to properly test Vc tags: [duneci, "iset:avx"] @@ -37,20 +37,6 @@ ubuntu:20.04 gcc-9-17-expensive: # is unavailable allow_failure: true -ubuntu:20.04 gcc-9-17-nopython: - extends: .common - image: registry.dune-project.org/docker/ci/ubuntu:20.04 - variables: - DUNECI_TOOLCHAIN: gcc-9-17 - DUNECI_CMAKE_FLAGS: '-DCMAKE_DISABLE_FIND_PACKAGE_Python3=TRUE' - -debian:11 clang-11-20-nobindings: - extends: .common - image: registry.dune-project.org/docker/ci/debian:11 - variables: - DUNECI_TOOLCHAIN: clang-11-20 - DUNECI_CMAKE_FLAGS: '-DDUNE_ENABLE_PYTHONBINDINGS=OFF' - core-modules-test: stage: downstream variables: diff --git a/INSTALL b/INSTALL index 2a0d67c6c92a2236df04c73b2b88864e43f1b32c..5250023f924822319eb4db89548ffd73a231d6c8 100644 --- a/INSTALL +++ b/INSTALL @@ -67,11 +67,11 @@ by the --opts=<file> option. Specify the options via the variable An example of an options file is - # use a special compiler (g++ version 5.0), + # use a special compiler (g++ version 14.0), # install to a custom directory, default is /usr/local/bin, # disable the external library SuperLU, # and use Ninja-build instead of make as the build-tool - CMAKE_FLAGS="-DCMAKE_CXX_COMPILER=g++-5 -DCMAKE_INSTALL_PREFIX='/tmp/HuHu' -DCMAKE_DISABLE_FIND_PACKAGE_SuperLU=true -GNinja" + CMAKE_FLAGS="-DCMAKE_CXX_COMPILER=g++-14 -DCMAKE_INSTALL_PREFIX='/tmp/HuHu' -DCMAKE_DISABLE_FIND_PACKAGE_SuperLU=true -GNinja" Links ----- diff --git a/README.md b/README.md index efc232851c9125d2feea2a2acfa2a28f592b4a52..4af3ecd0bc7784d6205f204e4fe5d0127cf4a289 100644 --- a/README.md +++ b/README.md @@ -28,10 +28,13 @@ Dependencies dune-common depends on the following software packages - CMake >= 3.16 -- Compiler (C, C++): GNU >= 9 or Clang >= 10 +- Compiler (C, C++): GNU >= 10 or Clang >= 13 +- Library: GNU libstdc++ >= 10 or Clang libc++ >= 13 - Other compilers might work too, they need to support C++17 to the extent the - ones above do. +Other compilers may also work, but they must support C++20 to the same extent as +the above. For an overview of the C++20 features supported by these versions, see +https://en.cppreference.com/w/cpp/compiler_support. For compiling the Python +bindings, libc++ is not currently supported. The following software is recommended but optional: diff --git a/bin/duneproject b/bin/duneproject index eb073981a35ddb6a5b89cfbf422c0f5ee4d4169f..989bd5059313ade506b3455e5b0df7aac974dd20 100755 --- a/bin/duneproject +++ b/bin/duneproject @@ -375,9 +375,9 @@ An example options file might look like this: #use this options to configure and make if no other options are given CMAKE_FLAGS=" \\ --DCMAKE_CXX_COMPILER=g++-5 \\ +-DCMAKE_CXX_COMPILER=g++-14 \\ -DCMAKE_CXX_FLAGS='-Wall -pedantic' \\ --DCMAKE_INSTALL_PREFIX=/install/path" #Force g++-5 and set compiler flags +-DCMAKE_INSTALL_PREFIX=/install/path" #Force g++-14 and set compiler flags If you save this information into example.opts you can pass the opts file to dunecontrol via the --opts option, e. g. diff --git a/doc/dunecontrol.1 b/doc/dunecontrol.1 index 350cb4d2c7256f983ab0c497b63120c3139b93b6..79b350331b32acfeaafe8ff2ac3c31d2d8ffa5c8 100644 --- a/doc/dunecontrol.1 +++ b/doc/dunecontrol.1 @@ -195,7 +195,7 @@ Set options for \fICOMMAND\fP, e.g. CMAKE_FLAGS, to specify parameters passed to the specific command. In case of cmake this might look as follows -CMAKE_FLAGS="-DCMAKE_CXX_COMPILER=g++-11 -DCMAKE_CXX_FLAGS='-fPIC -g -O3' -DFOO_PREFIX=/path/to/libfoo" +CMAKE_FLAGS="-DCMAKE_CXX_COMPILER=g++-14 -DCMAKE_CXX_FLAGS='-fPIC -g -O3' -DFOO_PREFIX=/path/to/libfoo" In case of make a common use case is to enable concurrency, e.g. @@ -206,7 +206,7 @@ MAKE_FLAGS="-j4" .HP .B DUNE_CONTROL_PATH .IP -Colon-separated list to specify where +Colon-separated list to specify where .B dunecontrol searches for Dune modules. Entries are either directories, which are then used recursively for