diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5e1a7dab1eb98615586994b3b72f5158db34502e..a4282e2bf927d83fcc72ef443d7eb9f97ef1d5a3 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -51,14 +51,18 @@ building_stage: - make clean && BUILDDIR=$PWD/../build_gnu11 CXX=g++-11 FC=gfortran-11 make -j - echo "Running make with gnu compilers version 12..." - make clean && BUILDDIR=$PWD/../build_gnu12 CXX=g++-12 FC=gfortran-12 make -j - - echo "Running make with gnu fortran version 12 and clang version 13..." - - make clean && BUILDDIR=$PWD/../build_clang13 CXX="clang++-13 -stdlib=libc++" FC=gfortran-12 make -j - - echo "Running make with gnu fortran version 12 and clang version 14..." - - make clean && BUILDDIR=$PWD/../build_clang14 CXX="clang++-14 -stdlib=libc++" FC=gfortran-12 make -j - - echo "Running make with gnu fortran version 12 and clang version 15..." - - make clean && BUILDDIR=$PWD/../build_clang15 CXX="clang++-15 -stdlib=libc++" FC=gfortran-12 make -j - - echo "Running make with gnu fortran version 12 and clang version 16..." - - make clean && BUILDDIR=$PWD/../build_clang16 CXX="clang++-16 -stdlib=libc++" FC=gfortran-12 make -j + - echo "Running make with flang version 16 and clang version 13..." + - make clean && BUILDDIR=$PWD/../build_clang13-flang16 CXX="clang++-13 -stdlib=libc++" FC=flang-new-16 FCFLAGS=-O3 LDFLAGS=-L/usr/lib/llvm-16/lib make -j + - echo "Running make with flang version 16 and clang version 14..." + - make clean && BUILDDIR=$PWD/../build_clang14-flang16 CXX="clang++-14 -stdlib=libc++" FC=flang-new-16 FCFLAGS=-O3 LDFLAGS=-L/usr/lib/llvm-16/lib make -j + - echo "Running make with flang version 16 and clang version 15..." + - make clean && BUILDDIR=$PWD/../build_clang15-flang16 CXX="clang++-15 -stdlib=libc++" FC=flang-new-16 FCFLAGS=-O3 LDFLAGS=-L/usr/lib/llvm-16/lib make -j + - echo "Running make with flang version 16 and clang version 16..." + - make clean && BUILDDIR=$PWD/../build_clang16-flang16 CXX="clang++-16 -stdlib=libc++" FC=flang-new-16 FCFLAGS=-O3 LDFLAGS=-L/usr/lib/llvm-16/lib make -j + - echo "Running make with Intel ifort and Intel icpx..." + - make clean && PATH=/opt/intel/oneapi/compiler/latest/bin:$PATH BUILDDIR=$PWD/../build_ifort-icpx CXX=icpx FC=ifort FCFLAGS="-O3 -diag-disable=10448" make -j + - echo "Running make with Intel ifx and Intel icpx..." + - make clean && LD_LIBRARY_PATH=/opt/intel/oneapi/compiler/latest/lib PATH=/opt/intel/oneapi/compiler/latest/bin:$PATH BUILDDIR=$PWD/../build_ifx-icpx CXX=icpx FC=ifx FCFLAGS=-O3 make -j - echo "Finally running make with default compilers..." - make clean && make -j - make docs -j && make -C ../doc/build/latex -j diff --git a/containers/docker/Dockerfile b/containers/docker/Dockerfile index b72c8b113ecc29212abc06ce6ac68a3cda7f7363..0d11a3db77d31a6b386bd70f968cd038efb82a6e 100644 --- a/containers/docker/Dockerfile +++ b/containers/docker/Dockerfile @@ -3,10 +3,21 @@ FROM debian:bookworm-slim AS np-tmcode-dev WORKDIR /root +# +#RUN rm -rf /var/lib/apt/lists/* +#RUN ls -l /etc/apt/sources.list.d/oneAPI.list && sleep 5s +#RUN cat /etc/apt/sources.list.d/oneAPI.list && sleep 5s +#RUN ls -l /usr/share/keyrings/oneapi-archive-keyring.gpg && sleep 5s # make sure the debian bullseye us up to date, install needed packages -RUN DEBIAN_FRONTEND=noninteractive apt update && DEBIAN_FRONTEND=noninteractive apt -y upgrade +RUN apt update +RUN DEBIAN_FRONTEND=noninteractive apt -y upgrade # install packages needed to build binaries -RUN DEBIAN_FRONTEND=noninteractive apt -y install g++ gfortran gcc-offload-nvptx g++-11 gfortran-11 gcc-11-offload-nvptx g++-12 gfortran-12 gcc-12-offload-nvptx clang libc++-dev libc++abi-dev clang-13 clang-14 clang-15 clang-16 libhdf5-dev make +RUN DEBIAN_FRONTEND=noninteractive apt -y install g++ gfortran gcc-offload-nvptx g++-11 gfortran-11 gcc-11-offload-nvptx g++-12 gfortran-12 gcc-12-offload-nvptx clang libc++-dev libc++abi-dev clang-13 clang-14 clang-15 clang-16 flang-16 libhdf5-dev make +# install packages needed to test with Intel OneAPI compilers +COPY --chown=root:root containers/docker/dockerstuff/intelcomps/oneapi-archive-keyring.gpg /usr/share/keyrings/ +COPY --chown=root:root containers/docker/dockerstuff/intelcomps/oneAPI.list /etc/apt/sources.list.d/ +RUN apt update +RUN DEBIAN_FRONTEND=noninteractive apt -y install intel-oneapi-compiler-fortran intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic intel-oneapi-compiler-dpcpp-cpp # install packages needed to run python scripts for checks RUN DEBIAN_FRONTEND=noninteractive apt -y install python3 python-is-python3 python3-regex # install packages needed to run doxygen to create html docs diff --git a/containers/docker/dockerstuff/intelcomps/oneAPI.list b/containers/docker/dockerstuff/intelcomps/oneAPI.list new file mode 100644 index 0000000000000000000000000000000000000000..4e52297c71058443c979e528ceacbac403141b53 --- /dev/null +++ b/containers/docker/dockerstuff/intelcomps/oneAPI.list @@ -0,0 +1 @@ +deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] http://apt.repos.intel.com/oneapi all main diff --git a/containers/docker/dockerstuff/intelcomps/oneapi-archive-keyring.gpg b/containers/docker/dockerstuff/intelcomps/oneapi-archive-keyring.gpg new file mode 100644 index 0000000000000000000000000000000000000000..5ff6fbceab7a64df501d6fa260340811e0d2fd66 Binary files /dev/null and b/containers/docker/dockerstuff/intelcomps/oneapi-archive-keyring.gpg differ