Skip to content

Commit 4790d46

Browse files
committed
fix(arm): keep CMakeFiles/ between make TOPP and make pyopenms
After the two-pass cmake configure landed in 5185c3e, the next attempt got past `make -j4 TOPP` (the link error is fixed) but failed fast in `make -j4 pyopenms` with: CMake Error: Not a file: /openms-build/CMakeFiles/VerifyGlobs.cmake CMake Error: Error processing file: /openms-build/CMakeFiles/VerifyGlobs.cmake make: *** [Makefile:11553: cmake_check_build_system] Error 1 `VerifyGlobs.cmake` is generated by cmake for `file(GLOB CONFIGURE_DEPENDS ...)` targets and is consulted by `cmake_check_build_system` at the top of every subsequent `make` invocation. The intermediate cleanup line RUN rm -rf src doc CMakeFiles deleted it, which is fine on the x86 single-pass build (different cmake codepath when PYOPENMS=ON is set in the initial configure, no VerifyGlobs.cmake generated) but breaks the ARM two-pass build. Stop deleting CMakeFiles/ between `make TOPP` and `make pyopenms`. We still drop `src/` and `doc/` for disk savings; keeping CMakeFiles costs only a few hundred MB on the intermediate layer.
1 parent 0bab3ae commit 4790d46

1 file changed

Lines changed: 10 additions & 1 deletion

File tree

Dockerfile.arm

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,16 @@ RUN cmake -DPYOPENMS=ON -DPY_MEMLEAK_DISABLE=On -DCMAKE_IGNORE_PREFIX_PATH=/root
108108

109109
# Build TOPP tools and clean up.
110110
RUN make -j4 TOPP
111-
RUN rm -rf src doc CMakeFiles
111+
# NOTE: do NOT delete CMakeFiles/ here. The two-pass cmake configure used
112+
# above generates CMakeFiles/VerifyGlobs.cmake for the pyOpenMS targets'
113+
# CONFIGURE_DEPENDS globs; the next `make -j4 pyopenms` runs
114+
# `cmake_check_build_system` which fails fast if VerifyGlobs.cmake is gone:
115+
# CMake Error: Not a file: /openms-build/CMakeFiles/VerifyGlobs.cmake
116+
# The x86 single-pass build seems to avoid generating that file (different
117+
# cmake codepath when PYOPENMS is set during the initial configure), which
118+
# is why it can still `rm -rf CMakeFiles` here. CMakeFiles/ adds ~a few
119+
# hundred MB to the intermediate layer — acceptable.
120+
RUN rm -rf src doc
112121

113122
# Build pyOpenMS wheels and install via pip.
114123
RUN make -j4 pyopenms

0 commit comments

Comments
 (0)