docs(build): document dependency package setup
This commit is contained in:
+22
-1
@@ -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
|
||||
```
|
||||
|
||||
@@ -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<SourceLocation> source;
|
||||
std::optional<std::int64_t> entity_id;
|
||||
};
|
||||
|
||||
struct Status final {
|
||||
bool succeeded;
|
||||
std::vector<Diagnostic> 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**
|
||||
|
||||
|
||||
Reference in New Issue
Block a user