mirror of
https://github.com/cp2k/cp2k.git
synced 2026-07-28 22:25:32 -04:00
92 lines
3.8 KiB
Text
92 lines
3.8 KiB
Text
#
|
|
# This file was created by generate_dockerfiles.py.
|
|
# Usage: docker build -f ./Dockerfile.test_cmake ../../
|
|
#
|
|
|
|
FROM ubuntu:22.04
|
|
|
|
# Install requirements for the toolchain.
|
|
WORKDIR /opt/cp2k-toolchain
|
|
COPY ./tools/toolchain/install_requirements*.sh ./
|
|
RUN ./install_requirements.sh ubuntu:22.04
|
|
|
|
# Install the toolchain.
|
|
RUN mkdir scripts
|
|
COPY ./tools/toolchain/scripts/VERSION \
|
|
./tools/toolchain/scripts/parse_if.py \
|
|
./tools/toolchain/scripts/tool_kit.sh \
|
|
./tools/toolchain/scripts/common_vars.sh \
|
|
./tools/toolchain/scripts/signal_trap.sh \
|
|
./tools/toolchain/scripts/get_openblas_arch.sh \
|
|
./scripts/
|
|
COPY ./tools/toolchain/install_cp2k_toolchain.sh .
|
|
RUN ./install_cp2k_toolchain.sh \
|
|
--install-all \
|
|
--with-gcc=system \
|
|
--dry-run
|
|
|
|
# Dry-run leaves behind config files for the followup install scripts.
|
|
# This breaks up the lengthy installation into smaller docker build steps.
|
|
COPY ./tools/toolchain/scripts/stage0/ ./scripts/stage0/
|
|
RUN ./scripts/stage0/install_stage0.sh && rm -rf ./build
|
|
|
|
COPY ./tools/toolchain/scripts/stage1/ ./scripts/stage1/
|
|
RUN ./scripts/stage1/install_stage1.sh && rm -rf ./build
|
|
|
|
COPY ./tools/toolchain/scripts/stage2/ ./scripts/stage2/
|
|
RUN ./scripts/stage2/install_stage2.sh && rm -rf ./build
|
|
|
|
COPY ./tools/toolchain/scripts/stage3/ ./scripts/stage3/
|
|
RUN ./scripts/stage3/install_stage3.sh && rm -rf ./build
|
|
|
|
COPY ./tools/toolchain/scripts/stage4/ ./scripts/stage4/
|
|
RUN ./scripts/stage4/install_stage4.sh && rm -rf ./build
|
|
|
|
COPY ./tools/toolchain/scripts/stage5/ ./scripts/stage5/
|
|
RUN ./scripts/stage5/install_stage5.sh && rm -rf ./build
|
|
|
|
COPY ./tools/toolchain/scripts/stage6/ ./scripts/stage6/
|
|
RUN ./scripts/stage6/install_stage6.sh && rm -rf ./build
|
|
|
|
COPY ./tools/toolchain/scripts/stage7/ ./scripts/stage7/
|
|
RUN ./scripts/stage7/install_stage7.sh && rm -rf ./build
|
|
|
|
COPY ./tools/toolchain/scripts/stage8/ ./scripts/stage8/
|
|
RUN ./scripts/stage8/install_stage8.sh && rm -rf ./build
|
|
|
|
COPY ./tools/toolchain/scripts/arch_base.tmpl \
|
|
./tools/toolchain/scripts/generate_arch_files.sh \
|
|
./scripts/
|
|
RUN ./scripts/generate_arch_files.sh && rm -rf ./build
|
|
|
|
|
|
COPY ./tools/build_utils/fypp /bin/fypp
|
|
# temporary solution we build dbcsr without using the cloned repo. It will eventually be moved inside the toolchain
|
|
COPY ./tools/docker/scripts/install_dbcsr.sh ./scripts/
|
|
RUN ./scripts/install_dbcsr.sh && rm -rf ./build
|
|
|
|
# Install CP2K using CMake.
|
|
|
|
WORKDIR /opt/cp2k
|
|
COPY ./src ./src
|
|
COPY ./exts ./exts
|
|
COPY ./tools/build_utils ./tools/build_utils
|
|
COPY ./cmake ./cmake
|
|
COPY ./CMakeLists.txt .
|
|
COPY ./cp2k.pc.in .
|
|
WORKDIR ./build
|
|
RUN /bin/bash -c " \
|
|
echo 'Compiling cp2k...' && \
|
|
ls /opt/cp2k-toolchain/install/scalapack-2.2.1 && \
|
|
ls /opt/cp2k-toolchain/install/fftw-3.3.10/lib && \
|
|
source /opt/cp2k-toolchain/install/setup && \
|
|
export PKG_CONFIG_PATH=/opt/cp2k-toolchain/install/libxsmm-1.17/lib:/opt/cp2k-toolchain/install/openblas-0.3.21/lib/pkgconfig:/opt/cp2k-toolchain/install/libxc-6.0.0/lib/pkgconfig:/opt/cp2k-toolchain/install/fftw-3.3.10/lib/pkgconfig:/opt/cp2k-toolchain/install/libint-v2.6.0-cp2k-lmax-5/lib/pkgconfig:/opt/cp2k-toolchain/install/plumed-2.8.0/lib/pkgconfig:/opt/cp2k-toolchain/install/superlu_dist-6.1.0/lib/pkgconfig && \
|
|
cmake -DCP2K_USE_COSMA=OFF -DCP2K_USE_LIBXSMM=NO -DSCALAPACK_ROOT=/opt/cp2k-toolchain/install/scalapack-2.2.1 -DCP2K_BLAS_VENDOR=OpenBLAS -DLibXC_ROOT=/opt/cp2k-toolchain/install/libxc-6.0.0 -DLibint2_ROOT=/opt/cp2k-toolchain/install/libint-v2.6.0-cp2k-lmax-5 -DDBCSR_ROOT=/opt/cp2k-toolchain/install/DBCSR-2.4.1 -DCP2K_USE_SPGLIB=ON -DCP2K_USE_LIBINT2=NO -DCP2K_USE_LIBXC=ON -DLibSPG_ROOT=/opt/cp2k-toolchain/install/spglib-1.16.2 .. && \
|
|
make -j"
|
|
COPY ./data ./data
|
|
COPY ./tests ./tests
|
|
COPY ./tools/regtesting ./tools/regtesting
|
|
|
|
RUN echo "\nSummary: Compilation works fine.\nStatus: OK\n"
|
|
|
|
#EOF
|