Distribution and Integration
The msi-generator is designed for high portability and easy integration into existing native build pipelines.
JSON Specification (msi.json)
To decouple the build logic from the tool, we use a JSON specification.
{
"name": "MyProject",
"manufacturer": "DevCenter",
"productVersion": "1.0.0.0",
"productCode": "00000000-0000-0000-0000-000000000000",
"upgradeCode": "00000000-0000-0000-0000-000000000001",
"rootFolder": {
"id": "INSTALLDIR",
"name": "My App",
"parentId": "",
"subfolders": []
},
"components": [],
"features": []
}
The JSON schema is available at schema/msi-spec.schema.json.
Integrations
CMake / CPack
| The CMake integration is currently experimental and incomplete. It does not yet generate valid JSON with required UUID fields. |
A CMake module is provided in cmake/MSIGenerator.cmake. To use it:
include(cmake/MSIGenerator.cmake)
if(CPACK_MSI_GENERATOR_FOUND)
cpack_msi_generator_generate_spec()
endif()