@@ -77,17 +77,39 @@ RUN sed -i '2 i source /home/jovyan/.conda.init && conda activate .venv' /usr/lo
77
77
# Switch back to jovyan to avoid accidental container runs as root
78
78
USER ${NB_UID}
79
79
80
+ WORKDIR "${HOME}"
81
+
80
82
ENV NB_PYTHON_PREFIX=${CONDA_DIR} \
81
83
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
86
112
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"
91
113
92
114
# VENV
93
115
@@ -162,20 +184,14 @@ RUN \
162
184
source /home/jovyan/.conda.init && \
163
185
conda activate .venv && \
164
186
#
165
- export VENV=${CONDA_DIR}/envs/.venv && \
166
187
export PATH_TO_LLVM_BUILD=${VENV} && \
167
188
# export PATH=${VENV}/bin:${CONDA_DIR}/bin:$PATH_TO_LLVM_BUILD/bin:$PATH && \
168
189
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 && \
172
190
echo "export EDITOR=emacs" >> ~/.profile && \
173
191
#
174
192
# Build CppInterOp
175
193
#
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' ':') && \
179
195
git clone https://github.com/compiler-research/CppInterOp.git && \
180
196
export CB_PYTHON_DIR="$PWD/cppyy-backend/python" && \
181
197
export CPPINTEROP_DIR="$CB_PYTHON_DIR/cppyy_backend" && \
@@ -186,9 +202,6 @@ RUN \
186
202
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 .. && \
187
203
cmake --build . --parallel $(nproc --all) && \
188
204
# 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 && \
192
205
cd ../.. && \
193
206
#
194
207
# Build and Install cppyy-backend
@@ -224,20 +237,12 @@ RUN \
224
237
cd .. && \
225
238
# Run cppyy
226
239
# 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" && \
233
240
python -c "import cppyy" && \
234
241
#
235
242
# Build and Install xeus-cpp
236
243
#
237
244
mkdir build && \
238
245
cd build && \
239
- echo "export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH" >> ~/.profile && \
240
- # #echo "conda activate .venv" >> ~/.profile
241
246
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 .. && \
242
247
make install -j$(nproc --all) && \
243
248
cd .. && \
0 commit comments