Add CPU devcontainer and fix CMake portability bugs#566
Draft
lukemartinlogan wants to merge 1 commit intomainfrom
Draft
Add CPU devcontainer and fix CMake portability bugs#566lukemartinlogan wants to merge 1 commit intomainfrom
lukemartinlogan wants to merge 1 commit intomainfrom
Conversation
Adds a VS Code devcontainer for local development without Spack.
The devcontainer builds the mochi stack (argobots 1.2, mercury 2.2.0,
mochi-margo 0.13.1, mochi-thallium 0.10.1) from source using standard
apt packages for everything else.
Follows the iowarp/core devcontainer conventions:
- cpu/ subdirectory for future variant support (nvidia-gpu, etc.)
- HOST_UID/HOST_GID build args to avoid bind-mount permission issues
- Shared post-create.sh / post-start.sh lifecycle scripts
- SSH key and Claude config mounts from host
- Docker socket mount + --privileged for Docker-in-Docker
- Claude Code pre-installed
- LD_LIBRARY_PATH set for /usr/local/lib
Also fixes three CMake portability bugs that were masked by Spack's
global prefix path but fail with standard system package layouts:
- chrono_common, ChronoPlayer, ChronoGrapher: missing ${HDF5_INCLUDE_DIRS}
in target_include_directories (H5Cpp.h not found outside spack prefix)
- ChronoVisor, ChronoKeeper, ChronoGrapher, ChronoPlayer: missing
find_package(spdlog) + spdlog::spdlog link for targets that compile
chrono_monitor.cpp directly (fmt symbols unresolved with external libfmt)
- Client/examples/cpp: MPI include dirs missing for distributed telemetry
writer example; replaced ${MPI_CXX_LIBRARIES} with MPI::MPI_CXX imported
target which propagates includes automatically
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Collaborator
|
Actually chrono_common doesn't need hd5 library, all hdf5 references can be removed from chrono_common CMakeLists |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
.devcontainer/cpu/) for local development without Spack, building the mochi stack (argobots 1.2, mercury 2.2.0, mochi-margo 0.13.1, mochi-thallium 0.10.1) from source using standard apt packages for all other depsiowarp/coredevcontainer conventions:cpu/variant subdirectory,HOST_UID/HOST_GIDremapping, sharedpost-create.sh/post-start.shlifecycle scripts, SSH key + Claude config mounts, Docker socket, and Claude Code pre-installedCMake fixes
chrono_common,ChronoPlayer,ChronoGrapherCMakeLists${HDF5_INCLUDE_DIRS}—H5Cpp.hnot found outside Spack prefixtarget_include_directoriesChronoVisor,ChronoKeeper,ChronoGrapher,ChronoPlayerCMakeListschrono_monitor.cppcompiled directly withoutspdlog::spdloglink —fmtsymbols unresolved when using system libfmtfind_package(spdlog)+spdlog::spdlogClient/examples/cppCMakeLists${MPI_CXX_LIBRARIES}linked without${MPI_CXX_INCLUDE_DIRS}MPI::MPI_CXXimported targetTest plan
cpuvariantpost-create.shruns, ChronoLog builds to 100% inside the containerdocker build --build-arg HOST_UID=$(id -u) --build-arg HOST_GID=$(id -g) -f .devcontainer/cpu/Dockerfile .InvalidDefaultArgInFromlinter warning (fixed byARG BASE_IMAGE=ubuntu:24.04beforeFROM)🤖 Generated with Claude Code