- Windows x64: Visual Studio C++17 toolset, CMake 3.24+, Python 3, .NET 10 SDK
- Rocky Linux 9 x64: GCC C++17, CMake 3.24+, Python 3, .NET 10 SDK
- Rocky 검증용 Windows 호스트: Docker Desktop Linux containers
build.ps1은 PATH의 CMake를 먼저 사용하고, 없으면 Visual Studio에 포함된 CMake를
찾습니다. MAK RTI는 현재 Mock-only 빌드에 필요하지 않습니다.
./build.ps1 -Doctor
./build.ps1 -Generate
./build.ps1 -Configuration Debug -Test
./build.ps1 -Configuration Release -Test -Package-Doctor 결과는 artifacts/BUILD-DOCTOR.json에도 저장됩니다. MAK RTI가 설치되지 않은
경우 경고만 표시하며 Mock 빌드는 계속 사용할 수 있습니다.
패키지는 artifacts/makrti-client-Release.zip에 생성되고, static library, C++ shared
library, C ABI DLL, header, FDD/config와 SHA-256 manifest.json을 포함합니다.
Windows에서 Rocky 9 Docker image로 전체 빌드와 테스트를 실행합니다.
./tools/test-rocky9.ps1 -Configuration ReleaseRocky Linux 9 호스트에서는 다음 명령을 직접 사용합니다.
./build.sh --doctor --generate --clean --configuration Release --test --packageartifacts/makrti-client-rocky9-x64.tar.gz에는 libmakrti_client.a,
libmakrti_client.so, libmakrti_c.so와 header/CMake package가 들어갑니다.
Windows와 Rocky native package가 준비된 다음 실행합니다.
./tools/package-nuget.ps1스크립트는 패키지 내부의 net8.0, net10.0, runtimes/win-x64/native,
runtimes/linux-x64/native 항목을 검사하고 패키지만 참조하는 소비자 앱을 Windows와
Rocky Linux 9에서 각각 실행합니다. 결과는 artifacts/nuget/MAKRTI.Client.0.2.0.nupkg입니다.
설치 prefix를 CMAKE_PREFIX_PATH에 추가한 뒤 다음과 같이 연결합니다.
find_package(MakRtiClient CONFIG REQUIRED)
target_link_libraries(my_federate PRIVATE MakRtiClient::static) # 또는 ::shared, ::cMakRtiClient::shared는 같은 compiler/toolset의 C++ ABI를 전제로 합니다. 다른 언어,
compiler 또는 장기 ABI 안정성이 필요한 소비자는 MakRtiClient::c와 c_api.h를
사용합니다. 저장소의 테스트는 static/shared/C ABI를 모두 실행합니다.
MAK RTI 4.6.1 설치본에서 아래 항목을 확인하기 전에는 vendor adapter를 활성화하지 않습니다.
- IEEE 1516-2000 SISO DLC header와 정확한 namespace
- x64 library 이름과 Debug/Release runtime 조합
- 지원 MSVC toolset 및 ABI
- create/join/resign example
- RID,
rtiexec, license 검색 규칙
확인된 adapter는 코어와 분리된 CMake target으로 만들고 상용 binary는 저장소나 공개 패키지에 포함하지 않습니다.