@@ -77,17 +77,39 @@ RUN sed -i '2 i source /home/jovyan/.conda.init && conda activate .venv' /usr/lo
7777# Switch back to jovyan to avoid accidental container runs as root
7878USER ${NB_UID}
7979
80+ WORKDIR "${HOME}"
81+
8082ENV NB_PYTHON_PREFIX=${CONDA_DIR} \
8183 KERNEL_PYTHON_PREFIX=${CONDA_DIR} \
82- # CPLUS_INCLUDE_PATH="${CONDA_DIR}/include:/home/${NB_USER}/include:/home/runner/work/xeus-clang-repl/xeus-clang-repl/clang-dev/clang/include:/home/jovyan/clad/include:/home/jovyan/CppInterOp/include"
83- CPLUS_INCLUDE_PATH="${CONDA_DIR}/include:/home/jovyan/clad/include:/home/jovyan/CppInterOp/include"
84-
85- WORKDIR "${HOME}"
84+ VENV=${CONDA_DIR}/envs/.venv \
85+ # CUDA
86+ NVIDIA_VISIBLE_DEVICES=all \
87+ NVIDIA_DRIVER_CAPABILITIES=compute,utility \
88+ NVIDIA_REQUIRE_CUDA="cuda>=12.1.1 driver>=530" \
89+ #
90+ PATH=/opt/conda/envs/.venv/bin:/opt/conda/bin:/opt/conda/envs/.venv/bin:/opt/conda/condabin:/opt/conda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \
91+ LD_LIBRARY_PATH=/home/jovyan/cppyy-backend/python/cppyy_backend/lib:/opt/conda/envs/.venv/lib:/opt/conda/lib:/home/jovyan/cppyy-backend/python/cppyy_backend/lib:/opt/conda/envs/.venv/lib \
92+ PYTHONPATH=/home/jovyan/CPyCppyy/build:/home/jovyan/cppyy-backend/python:/home/jovyan \
93+ CPLUS_INCLUDE_PATH=/opt/conda/envs/.venv/include:\
94+ /opt/conda/envs/.venv/include/python3.10:\
95+ /home/jovyan/clad/include:\
96+ /home/jovyan/CPyCppyy/include:\
97+ /home/jovyan/cppyy-backend/python/cppyy_backend/include:\
98+ /opt/conda/envs/.venv/include/llvm:\
99+ /opt/conda/envs/.venv/include/clang:\
100+ /opt/conda/include:\
101+ /home/jovyan/clad/include:\
102+ /home/jovyan/CppInterOp/include:\
103+ /opt/conda/include:\
104+ #
105+ /opt/conda/envs/.venv/lib/gcc/x86_64-conda-linux-gnu/12.3.0/include:\
106+ /opt/conda/envs/.venv/lib/gcc/x86_64-conda-linux-gnu/12.3.0/include-fixed:\
107+ /opt/conda/envs/.venv/lib/gcc/x86_64-conda-linux-gnu/12.3.0/../../../../x86_64-conda-linux-gnu/include:\
108+ /opt/conda/envs/.venv/x86_64-conda-linux-gnu/include/c++/12.3.0:\
109+ /opt/conda/envs/.venv/x86_64-conda-linux-gnu/include/c++/12.3.0/x86_64-conda-linux-gnu:\
110+ /opt/conda/envs/.venv/x86_64-conda-linux-gnu/include/c++/12.3.0/backward:\
111+ /opt/conda/envs/.venv/x86_64-conda-linux-gnu/sysroot/usr/include
86112
87- # CUDA
88- ENV NVIDIA_VISIBLE_DEVICES=all
89- ENV NVIDIA_DRIVER_CAPABILITIES=compute,utility
90- ENV NVIDIA_REQUIRE_CUDA "cuda>=12.1.1 driver>=530"
91113
92114# VENV
93115
@@ -162,20 +184,14 @@ RUN \
162184 source /home/jovyan/.conda.init && \
163185 conda activate .venv && \
164186 #
165- export VENV=${CONDA_DIR}/envs/.venv && \
166187 export PATH_TO_LLVM_BUILD=${VENV} && \
167188 # export PATH=${VENV}/bin:${CONDA_DIR}/bin:$PATH_TO_LLVM_BUILD/bin:$PATH && \
168189 export PATH=${VENV}/bin:${CONDA_DIR}/bin:$PATH && \
169- export LD_LIBRARY_PATH=$PATH_TO_LLVM_BUILD/lib:$LD_LIBRARY_PATH && \
170- echo "export VENV=$VENV" >> ~/.profile && \
171- echo "export PATH=$PATH" >> ~/.profile && \
172190 echo "export EDITOR=emacs" >> ~/.profile && \
173191 #
174192 # Build CppInterOp
175193 #
176- sys_incs=$(LC_ALL=C c++ -xc++ -E -v /dev/null 2>&1 | LC_ALL=C sed -ne '/starts here/,/End of/p' | LC_ALL=C sed '/^ /!d' | cut -c2- | tr '\n ' ':' ) && \
177- # /usr/include/x86_64-linux-gnu:/usr/include:
178- export CPLUS_INCLUDE_PATH="${PATH_TO_LLVM_BUILD}/include/llvm:${PATH_TO_LLVM_BUILD}/include/clang:$CPLUS_INCLUDE_PATH:${sys_incs%:}" && \
194+ # sys_incs=$(LC_ALL=C c++ -xc++ -E -v /dev/null 2>&1 | LC_ALL=C sed -ne '/starts here/,/End of/p' | LC_ALL=C sed '/^ /!d' | cut -c2- | tr '\n' ':') && \
179195 git clone https://github.com/compiler-research/CppInterOp.git && \
180196 export CB_PYTHON_DIR="$PWD/cppyy-backend/python" && \
181197 export CPPINTEROP_DIR="$CB_PYTHON_DIR/cppyy_backend" && \
@@ -186,9 +202,6 @@ RUN \
186202 cmake -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DUSE_CLING=OFF -DUSE_REPL=ON -DLLVM_DIR=$PATH_TO_LLVM_BUILD -DLLVM_CONFIG_EXTRA_PATH_HINTS=${PATH_TO_LLVM_BUILD}/lib -DLLVM_USE_LINKER=gold -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=$CPPINTEROP_DIR .. && \
187203 cmake --build . --parallel $(nproc --all) && \
188204 # make install -j$(nproc --all)
189- export CPLUS_INCLUDE_PATH="$CPPINTEROP_DIR/include:$CPLUS_INCLUDE_PATH" && \
190- export LD_LIBRARY_PATH="${VENV}/lib:${CONDA_DIR}/lib:$CPPINTEROP_DIR/lib:$LD_LIBRARY_PATH" && \
191- echo "export LD_LIBRARY_PATH=$CPPINTEROP_DIR/lib:$LD_LIBRARY_PATH" >> ~/.profile && \
192205 cd ../.. && \
193206 #
194207 # Build and Install cppyy-backend
@@ -224,20 +237,12 @@ RUN \
224237 cd .. && \
225238 # Run cppyy
226239 # TODO: Fix cppyy path (/home/jovyan) to path to installed module
227- export PYTHONPATH=$PYTHONPATH:$CPYCPPYY_DIR:$CB_PYTHON_DIR:/home/jovyan && \
228- echo "export PYTHONPATH=$PYTHONPATH" >> ~/.profile && \
229- export CPLUS_INCLUDE_PATH="/home/jovyan/CPyCppyy/include/:$CPLUS_INCLUDE_PATH" && \
230- # FIXME: Remove the hardcoded version of python here.
231- export CPLUS_INCLUDE_PATH="/home/jovyan/clad/include:$CPLUS_INCLUDE_PATH" && \
232- export CPLUS_INCLUDE_PATH="${VENV}/include:${VENV}/include/python3.10:$CPLUS_INCLUDE_PATH" && \
233240 python -c "import cppyy" && \
234241 #
235242 # Build and Install xeus-cpp
236243 #
237244 mkdir build && \
238245 cd build && \
239- echo "export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH" >> ~/.profile && \
240- # #echo "conda activate .venv" >> ~/.profile
241246 cmake -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_PREFIX_PATH=$KERNEL_PYTHON_PREFIX -DCMAKE_INSTALL_PREFIX=$KERNEL_PYTHON_PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCPPINTEROP_DIR=$CPPINTEROP_BUILD_DIR .. && \
242247 make install -j$(nproc --all) && \
243248 cd .. && \
0 commit comments