From 49ca1e39064b400d86425cb3cdbbe6184a4897b8 Mon Sep 17 00:00:00 2001
From: "Mulas, Giacomo" <gmulas@oa-cagliari.inaf.it>
Date: Tue, 13 Feb 2024 16:37:45 +0100
Subject: [PATCH] Add more compiler tests

---
 .gitlab-ci.yml                                |  20 +++++++++++-------
 containers/docker/Dockerfile                  |  15 +++++++++++--
 .../docker/dockerstuff/intelcomps/oneAPI.list |   1 +
 .../intelcomps/oneapi-archive-keyring.gpg     | Bin 0 -> 3206 bytes
 4 files changed, 26 insertions(+), 10 deletions(-)
 create mode 100644 containers/docker/dockerstuff/intelcomps/oneAPI.list
 create mode 100644 containers/docker/dockerstuff/intelcomps/oneapi-archive-keyring.gpg

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 5e1a7dab..a4282e2b 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 b72c8b11..0d11a3db 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 00000000..4e52297c
--- /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
GIT binary patch
literal 3206
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

literal 0
HcmV?d00001

-- 
GitLab