diff --git a/Dockerfile b/Dockerfile index 89a6319..8cb71b2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -58,6 +58,16 @@ RUN wget -O /usr/share/keyrings/chaste.asc https://chaste.github.io/chaste.asc \ RUN apt-get update && \ apt-get install -y --no-install-recommends \ chaste-dependencies \ + xvfb \ + python3-jupyterlab \ + python3-matplotlib \ + python3-numpy \ + python3-petsc4py \ + python3-pip \ + python3-venv \ + python3-vtk9 \ + python3-xvfbwrapper \ + castxml \ clang \ lldb \ gdb \ @@ -83,6 +93,7 @@ ARG CHASTE_DIR="/home/${USER}" ARG CMAKE_BUILD_TYPE="Debug" ARG Chaste_ERROR_ON_WARNING="ON" ARG Chaste_UPDATE_PROVENANCE="OFF" +ARG Chaste_ENABLE_PYCHASTE="ON" # RUN source /home/chaste/scripts/set_env_vars.sh ENV USER=${USER} \ GROUP=${USER} \ @@ -93,6 +104,7 @@ ENV USER=${USER} \ CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} \ Chaste_ERROR_ON_WARNING=${Chaste_ERROR_ON_WARNING} \ Chaste_UPDATE_PROVENANCE=${Chaste_UPDATE_PROVENANCE} \ + Chaste_ENABLE_PYCHASTE=${Chaste_ENABLE_PYCHASTE} \ CHASTE_SOURCE_DIR="${CHASTE_DIR}/src" \ CHASTE_BUILD_DIR="${CHASTE_DIR}/build" \ CHASTE_TEST_OUTPUT="${CHASTE_DIR}/output" \ diff --git a/Makefile b/Makefile index 50d42f8..82d7305 100644 --- a/Makefile +++ b/Makefile @@ -7,7 +7,7 @@ help: BASE ?= questing -GIT_TAG ?= 2024.2 +# GIT_TAG ?= 2024.2 TEST_SUITE ?= - CHASTE_IMAGE ?= chaste/release CHASTE_DIR ?= "/home/chaste" @@ -66,18 +66,21 @@ develop main release: BUILD_ARGS += --build-arg GIT_TAG=$(GIT_TAG) \ --build-arg CMAKE_BUILD_TYPE=$(CMAKE_BUILD_TYPE) \ --build-arg Chaste_ERROR_ON_WARNING=$(Chaste_ERROR_ON_WARNING) \ --build-arg Chaste_UPDATE_PROVENANCE=$(Chaste_UPDATE_PROVENANCE) \ + --build-arg Chaste_ENABLE_PYCHASTE=${Chaste_ENABLE_PYCHASTE} \ --build-arg TEST_SUITE=$(TEST_SUITE) develop main: CMAKE_BUILD_TYPE="Debug" develop main: Chaste_ERROR_ON_WARNING ?= "ON" develop main: Chaste_UPDATE_PROVENANCE="OFF" -develop main: GIT_TAG=$@ +develop main: GIT_TAG?=$@ release: CMAKE_BUILD_TYPE="Release" release: Chaste_ERROR_ON_WARNING ?= "OFF" release: Chaste_UPDATE_PROVENANCE="ON" # release: TEST_SUITE = "Continuous" +release: GIT_TAG ?= 2024.2 +develop main release: Chaste_ENABLE_PYCHASTE="ON" base develop main release: CHASTE_IMAGE = chaste/$@ base develop main release: DOCKER_TAGS = -t $(CHASTE_IMAGE) base develop main: DOCKER_TAGS += -t $(CHASTE_IMAGE):$(BASE) diff --git a/scripts/build_chaste.sh b/scripts/build_chaste.sh index 0f90ca8..b5a9a31 100755 --- a/scripts/build_chaste.sh +++ b/scripts/build_chaste.sh @@ -42,15 +42,27 @@ else # if [ $VERSION = 'develop' ]; then echo "Chaste_ERROR_ON_WARNING=${Chaste_ERROR_ON_WARNING}" fi -# Only run if new files have been created +# # Only run if new files have been created cmake -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} \ -DChaste_ERROR_ON_WARNING:BOOL=${Chaste_ERROR_ON_WARNING} \ -DChaste_UPDATE_PROVENANCE:BOOL=${Chaste_UPDATE_PROVENANCE} \ + -DChaste_ENABLE_PYCHASTE:BOOL=${Chaste_ENABLE_PYCHASTE} \ -H$CHASTE_SOURCE_DIR \ -B$CHASTE_BUILD_DIR make --no-print-directory -j$NCORES -C $CHASTE_BUILD_DIR # -f $CHASTE_BUILD_DIR/Makefile +if [ "$Chaste_ENABLE_PYCHASTE" = "ON" ]; then + # Install PyChaste + echo "Installing PyChaste..." + PIP_BREAK_SYSTEM_PACKAGES=1 python3 -m pip install -v --no-cache-dir --user $CHASTE_BUILD_DIR/pychaste/package + + # Test PyChaste + # xvfb-run --server-args="-screen 0 1024x768x24" ctest -L pychaste +else + echo "PyChaste is not enabled." +fi + # Save the build info get_chaste_info.sh > "${CHASTE_TEST_OUTPUT}/chaste-info.txt" diff --git a/scripts/get_chaste_info.sh b/scripts/get_chaste_info.sh index c7369d4..0572af2 100755 --- a/scripts/get_chaste_info.sh +++ b/scripts/get_chaste_info.sh @@ -1,4 +1,7 @@ #!/bin/bash set -e +cmake -H$CHASTE_SOURCE_DIR -B$CHASTE_BUILD_DIR +make --no-print-directory -j$(nproc) -C $CHASTE_BUILD_DIR $TEST_SUITE +#-j$(nproc) ( cd $CHASTE_BUILD_DIR && ctest --verbose -R TestChasteBuildInfo$ )