docs(build): document dependency package setup

This commit is contained in:
KOKO\Mimi
2026-07-30 13:21:50 +09:00
parent 202e66c862
commit 8faaf4db99
2 changed files with 34 additions and 4 deletions
+22 -1
View File
@@ -49,6 +49,27 @@ uv run --with pytest python -m pytest -v -rs
`binaryDir`, `configurePreset`, `buildPreset`, `testPreset`은 preset을 사용할 때 함께 `binaryDir`, `configurePreset`, `buildPreset`, `testPreset`은 preset을 사용할 때 함께
지정해야 한다. 빌드 산출물은 저장소의 `.harness/build/`처럼 격리된 경로에 둔다. 지정해야 한다. 빌드 산출물은 저장소의 `.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 ```json
{ {
"version": 1, "version": 1,
@@ -64,7 +85,7 @@ uv run --with pytest python -m pytest -v -rs
``` ```
```powershell ```powershell
cmake --preset windows-debug cmake --fresh --preset windows-debug
cmake --build --preset windows-debug cmake --build --preset windows-debug
ctest --preset windows-debug --output-on-failure ctest --preset windows-debug --output-on-failure
``` ```
@@ -251,9 +251,11 @@ git commit -m "build: bootstrap FESA CMake project"
- Create: `include/fesa/core/vec3.hpp` - Create: `include/fesa/core/vec3.hpp`
- Create: `include/fesa/core/source_location.hpp` - Create: `include/fesa/core/source_location.hpp`
- Create: `include/fesa/core/diagnostic.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/entity_id_test.cpp`
- Create: `tests/unit/core/vec3_test.cpp` - Create: `tests/unit/core/vec3_test.cpp`
- Create: `tests/unit/core/diagnostic_test.cpp` - Create: `tests/unit/core/diagnostic_test.cpp`
- Create: `tests/unit/core/status_test.cpp`
- Modify: `CMakeLists.txt` - Modify: `CMakeLists.txt`
- Modify: `tests/CMakeLists.txt` - Modify: `tests/CMakeLists.txt`
@@ -283,21 +285,28 @@ struct SourceLocation final {
}; };
enum class DiagnosticStage { 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 { struct Diagnostic final {
DiagnosticStage stage; DiagnosticStage stage;
Severity severity;
std::string code; std::string code;
std::string message; std::string message;
std::optional<SourceLocation> source; std::optional<SourceLocation> source;
std::optional<std::int64_t> entity_id; };
struct Status final {
bool succeeded;
std::vector<Diagnostic> diagnostics;
}; };
``` ```
- [ ] **Step 1: Write failing tests** - [ ] **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** - [ ] **Step 2: Run focused tests and confirm compile or assertion failure**