CMake project structure with ymir_core, ymir_naval, and ymir_adapters static library targets. Catch2 and nlohmann/json via FetchContent; SUNDIALS and CGAL probed as optional system deps (required from M1/M2). Smoke tests pass on macOS ARM64. Docker multi-stage image for Linux x86_64. GitHub Actions CI matrix: Linux x86_64, macOS ARM64, Windows x86_64. Code quality tooling: .clang-format, .clang-tidy, Doxyfile. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
31 lines
778 B
YAML
31 lines
778 B
YAML
services:
|
|
build:
|
|
build:
|
|
context: .
|
|
dockerfile: docker/linux-x86_64/Dockerfile
|
|
target: builder
|
|
volumes:
|
|
- .:/src
|
|
- ymir_build:/build
|
|
working_dir: /src
|
|
command: >
|
|
sh -c "cmake -B /build -S /src -GNinja -DCMAKE_BUILD_TYPE=Release -DYMIR_BUILD_TESTS=ON
|
|
&& cmake --build /build --parallel"
|
|
|
|
test:
|
|
build:
|
|
context: .
|
|
dockerfile: docker/linux-x86_64/Dockerfile
|
|
target: builder
|
|
volumes:
|
|
- .:/src
|
|
- ymir_build:/build
|
|
working_dir: /src
|
|
command: >
|
|
sh -c "cmake -B /build -S /src -GNinja -DCMAKE_BUILD_TYPE=Release -DYMIR_BUILD_TESTS=ON
|
|
&& cmake --build /build --parallel
|
|
&& ctest --test-dir /build --output-on-failure"
|
|
|
|
volumes:
|
|
ymir_build:
|