-
Notifications
You must be signed in to change notification settings - Fork 9
/
ubuntu-intel-oneapi-cpp.dockerfile
104 lines (88 loc) · 4.02 KB
/
ubuntu-intel-oneapi-cpp.dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
FROM intel/oneapi:os-tools-ubuntu20.04 as base
ARG proxy=""
ARG compiler=icpx
ENV https_proxy=${proxy} \
http_proxy=${proxy}
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update -y -q && \
apt-get install -y -q --no-install-recommends \
intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-2022.2.1 \
ca-certificates \
less \
curl \
git \
wget \
zlib1g \
zlib1g-dev \
ninja-build \
valgrind \
make-guile \
libomp5 \
libunwind-dev \
ccache && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
ENV CMAKE_PREFIX_PATH='/opt/intel/oneapi/tbb/latest/env/..' \
CMPLR_ROOT=/opt/intel/oneapi/compiler/latest \
CPATH='/opt/intel/oneapi/tbb/latest/env/../include:/opt/intel/oneapi/dev-utilities/latest/include:/opt/intel/oneapi/compiler/latest/linux/include' \
INFOPATH=/opt/intel/oneapi/debugger/10.1.2/gdb/intel64/lib \
INTEL_LICENSE_FILE='/opt/intel/licenses:/root/intel/licenses:/opt/intel/licenses:/root/intel/licenses:/Users/Shared/Library/Application Support/Intel/Licenses' \
LD_LIBRARY_PATH='/opt/intel/oneapi/tbb/latest/env/../lib/intel64/gcc4.8:/opt/intel/oneapi/debugger/10.1.1/dep/lib:/opt/intel/oneapi/debugger/10.1.1/libipt/intel64/lib:/opt/intel/oneapi/debugger/10.1.1/gdb/intel64/lib:/opt/intel/oneapi/compiler/latest/linux/lib:/opt/intel/oneapi/compiler/latest/linux/lib/x64:/opt/intel/oneapi/compiler/latest/linux/lib/emu:/opt/intel/oneapi/compiler/latest/linux/lib/oclfpga/host/linux64/lib:/opt/intel/oneapi/compiler/latest/linux/lib/oclfpga/linux64/lib:/opt/intel/oneapi/compiler/latest/linux/compiler/lib/intel64_lin:/opt/intel/oneapi/compiler/latest/linux/compiler/lib' \
LIBRARY_PATH='/opt/intel/oneapi/tbb/latest/env/../lib/intel64/gcc4.8:/opt/intel/oneapi/compiler/latest/linux/compiler/lib/intel64_lin:/opt/intel/oneapi/compiler/latest/linux/lib' \
ONEAPI_ROOT='/opt/intel/oneapi' \
PATH='/opt/intel/oneapi/dev-utilities/latest/bin:/opt/intel/oneapi/debugger/10.1.1/gdb/intel64/bin:/opt/intel/oneapi/compiler/latest/linux/lib/oclfpga/llvm/aocl-bin:/opt/intel/oneapi/compiler/latest/linux/lib/oclfpga/bin:/opt/intel/oneapi/compiler/latest/linux/bin/intel64:/opt/intel/oneapi/compiler/latest/linux/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin' \
TBBROOT='/opt/intel/oneapi/tbb/latest/env/..'
RUN ln -s \
"$(which $(echo $compiler | sed 's/p//'))" \
/usr/bin/intel-cc
ENV CC=intel-cc \
CXX=${compiler}
COPY ./ci/deps/mpich.sh mpich.sh
RUN ./mpich.sh 4.0.2 -j4
ENV CC=mpicc \
CXX=mpicxx \
MPICH_CC=intel-cc \
MPICH_CXX=${compiler} \
MPI_EXTRA_FLAGS="" \
LESSCHARSET=utf-8 \
PATH=/usr/lib/ccache/:$PATH
FROM base as build
COPY . /vt
ARG VT_LB_ENABLED
ARG VT_TRACE_ENABLED
ARG VT_TRACE_RUNTIME_ENABLED
ARG VT_MIMALLOC_ENABLED
ARG VT_DOXYGEN_ENABLED
ARG VT_ASAN_ENABLED
ARG VT_WERROR_ENABLED
ARG VT_POOL_ENABLED
ARG VT_PRODUCTION_BUILD_ENABLED
ARG VT_FCONTEXT_ENABLED
ARG CMAKE_BUILD_TYPE
ARG VT_EXTENDED_TESTS_ENABLED
ARG CMAKE_CXX_STANDARD
ARG VT_DEBUG_VERBOSE
ARG VT_CI_BUILD
ENV VT_LB_ENABLED=${VT_LB_ENABLED} \
VT_TRACE_ENABLED=${VT_TRACE_ENABLED} \
VT_MIMALLOC_ENABLED=${VT_MIMALLOC_ENABLED} \
VT_DOXYGEN_ENABLED=${VT_DOXYGEN_ENABLED} \
VT_TRACE_RUNTIME_ENABLED=${VT_TRACE_RUNTIME} \
VT_ASAN_ENABLED=${VT_ASAN_ENABLED} \
VT_WERROR_ENABLED=${VT_WERROR_ENABLED} \
VT_POOL_ENABLED=${VT_POOL_ENABLED} \
VT_MPI_GUARD_ENABLED=${VT_MPI_GUARD_ENABLED} \
VT_EXTENDED_TESTS_ENABLED=${VT_EXTENDED_TESTS_ENABLED} \
VT_UNITY_BUILD_ENABLED=${VT_UNITY_BUILD_ENABLED} \
VT_PRODUCTION_BUILD_ENABLED=${VT_PRODUCTION_BUILD_ENABLED} \
VT_FCONTEXT_ENABLED=${VT_FCONTEXT_ENABLED} \
VT_DIAGNOSTICS_ENABLED=${VT_DIAGNOSTICS_ENABLED} \
VT_DIAGNOSTICS_RUNTIME_ENABLED=${VT_DIAGNOSTICS_RUNTIME_ENABLED} \
CMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD} \
CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} \
VT_DEBUG_VERBOSE=${VT_DEBUG_VERBOSE} \
VT_CI_BUILD=${VT_CI_BUILD}
RUN /vt/ci/build_cpp.sh /vt /build
FROM build as test
RUN /vt/ci/test_cpp.sh /vt /build
RUN /vt/ci/build_vt_sample.sh /vt /build