add uncommitted files
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
# Step 1: CMake Install Package
|
||||
|
||||
## 읽어야 할 파일
|
||||
|
||||
- `/AGENTS.md`
|
||||
- `/docs/PRD.md`
|
||||
- `/docs/ARCHITECTURE.md`
|
||||
- `/docs/ADR.md`
|
||||
- `/docs/BUILDING.md`
|
||||
- `/docs/RELEASE_CHECKLIST.md`
|
||||
- `/CMakeLists.txt`
|
||||
- `/CMakePresets.json`
|
||||
|
||||
## 작업
|
||||
|
||||
`cmake --install`로 내부 배포용 install tree를 만든다.
|
||||
|
||||
- `cmake/install.cmake`, `cmake/FESAConfig.cmake.in`을 추가한다.
|
||||
- install tree에 `fesa.exe`, `fesa_core` static library, public headers,
|
||||
CMake package config, required runtime DLL inventory, example input,
|
||||
`HDF5_SCHEMA.md`, `INPUT_FORMAT.md`, `VALIDATION.md`를 포함한다.
|
||||
- absolute build path가 install config에 남지 않는 실패 검사부터 작성한다.
|
||||
- Phase 1 public ABI compatibility를 약속하지 않는다.
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
```powershell
|
||||
cmake --preset windows-release
|
||||
cmake --build --preset windows-release
|
||||
ctest --preset windows-release --output-on-failure
|
||||
cmake --install out\build\windows-release --config Release --prefix out\package\fesa
|
||||
Get-ChildItem -Recurse out\package\fesa
|
||||
```
|
||||
|
||||
install tree가 build source tree 밖에서 사용 가능한 상대 경로와 명시적 runtime inventory를
|
||||
가져야 한다.
|
||||
|
||||
## 검증 절차
|
||||
|
||||
1. install manifest 검사 실패를 먼저 확인한다.
|
||||
2. 최소 install/export rule을 구현한다.
|
||||
3. package tree와 CMake config의 절대 경로 누출을 확인한다.
|
||||
4. index summary에 install manifest를 기록한다.
|
||||
|
||||
## 금지사항
|
||||
|
||||
- registry write나 MSI installer를 추가하지 마라. 이유: 배포 범위 밖이다.
|
||||
- dependency를 package 중 다운로드하지 마라. 이유: 사전 설치 정책 위반이다.
|
||||
- Debug/Release binary를 혼합하지 마라. 이유: runtime 불일치 위험이 있다.
|
||||
Reference in New Issue
Block a user