From 8faaf4db9948f7a83f9341397d2a4177dce51fd7 Mon Sep 17 00:00:00 2001 From: "KOKO\\Mimi" Date: Thu, 30 Jul 2026 13:21:50 +0900 Subject: [PATCH] docs(build): document dependency package setup --- docs/HARNESS.md | 23 ++++++++++++++++++- .../plans/2026-07-29-fesa-phase-1.md | 15 +++++++++--- 2 files changed, 34 insertions(+), 4 deletions(-) diff --git a/docs/HARNESS.md b/docs/HARNESS.md index b94bfac..d25e8cb 100644 --- a/docs/HARNESS.md +++ b/docs/HARNESS.md @@ -49,6 +49,27 @@ uv run --with pytest python -m pytest -v -rs `binaryDir`, `configurePreset`, `buildPreset`, `testPreset`은 preset을 사용할 때 함께 지정해야 한다. 빌드 산출물은 저장소의 `.harness/build/`처럼 격리된 경로에 둔다. +FESA의 외부 패키지 위치는 개발 머신마다 다르므로 tracked preset이나 production +CMake 기본값에 절대경로를 넣지 않는다. 새 PowerShell 세션에서는 configure 전에 +다음 package directory 환경 변수를 설정한다. 아래 값은 현재 검증된 개발 환경이며, +설치 버전이나 위치가 다르면 해당 `*Config.cmake`가 있는 디렉터리로 바꾼다. + +```powershell +$env:MKL_DIR = "C:\Program Files (x86)\Intel\oneAPI\2026.1\lib\cmake\mkl" +$env:TBB_DIR = "C:\Program Files (x86)\Intel\oneAPI\2026.1\lib\cmake\tbb" +$env:HDF5_DIR = "C:\Program Files\HDF_Group\HDF5\2.1.1\cmake" +$env:GTest_DIR = "C:\Users\baram\AppData\Local\FESA\dependencies\googletest-1.17.0-v145-x64-crt\lib\cmake\GTest" + +Test-Path "$env:MKL_DIR\MKLConfig.cmake" +Test-Path "$env:TBB_DIR\TBBConfig.cmake" +Test-Path "$env:HDF5_DIR\hdf5-config.cmake" +Test-Path "$env:GTest_DIR\GTestConfig.cmake" +``` + +네 확인 명령이 모두 `True`인 같은 세션에서 preset을 실행한다. oneAPI는 component별 +별칭 디렉터리가 아니라 위 통합 `2026.1` package를 사용해야 HDF5의 Intel runtime +의존성까지 CTest PATH에 포함된다. + ```json { "version": 1, @@ -64,7 +85,7 @@ uv run --with pytest python -m pytest -v -rs ``` ```powershell -cmake --preset windows-debug +cmake --fresh --preset windows-debug cmake --build --preset windows-debug ctest --preset windows-debug --output-on-failure ``` diff --git a/docs/superpowers/plans/2026-07-29-fesa-phase-1.md b/docs/superpowers/plans/2026-07-29-fesa-phase-1.md index 0aba021..b4602c1 100644 --- a/docs/superpowers/plans/2026-07-29-fesa-phase-1.md +++ b/docs/superpowers/plans/2026-07-29-fesa-phase-1.md @@ -251,9 +251,11 @@ git commit -m "build: bootstrap FESA CMake project" - Create: `include/fesa/core/vec3.hpp` - Create: `include/fesa/core/source_location.hpp` - Create: `include/fesa/core/diagnostic.hpp` +- Create: `include/fesa/core/status.hpp` - Create: `tests/unit/core/entity_id_test.cpp` - Create: `tests/unit/core/vec3_test.cpp` - Create: `tests/unit/core/diagnostic_test.cpp` +- Create: `tests/unit/core/status_test.cpp` - Modify: `CMakeLists.txt` - Modify: `tests/CMakeLists.txt` @@ -283,21 +285,28 @@ struct SourceLocation final { }; enum class DiagnosticStage { - io, lexical, syntax, semantic, model, equation, solver, results + io, syntax, semantic, model, equation, solver, results, validation }; +enum class Severity { warning, error }; + struct Diagnostic final { DiagnosticStage stage; + Severity severity; std::string code; std::string message; std::optional source; - std::optional entity_id; +}; + +struct Status final { + bool succeeded; + std::vector diagnostics; }; ``` - [ ] **Step 1: Write failing tests** -Cover negative/zero entity-ID rejection, typed-ID non-interchangeability at compile time, finite `Vec3` validation, and full diagnostic context preservation. +Cover negative entity-ID rejection, typed-ID non-interchangeability at compile time, finite `Vec3` validation, full diagnostic context preservation, and success/failure status preservation. - [ ] **Step 2: Run focused tests and confirm compile or assertion failure**