Building & Deploying¶
Plugin file format¶
A .plugin file is a ZIP archive containing your QML sources, assets, and a plugin.json manifest. AMC extracts and loads the contents at runtime.
Recommended folder layout¶
MyPlugin/
├── plugin.json ← required metadata
├── build.sh ← optional build script
├── src/
│ ├── MyPluginData.qml
│ ├── MyPluginSettings.qml
│ ├── MyPluginUpperFlyView.qml
│ ├── MyPluginMenuItemButton.qml
│ └── MyPluginMenuItemView.qml
├── img/ ← optional assets
│ └── icon.svg
└── lib/ ← optional JS modules
└── helpers.js
Building with a script¶
A build script automates the packaging step. Here is a typical build.sh:
#!/bin/bash
PLUGIN_NAME="MyPlugin"
OUTPUT_FILE="${PLUGIN_NAME}.plugin"
zip -r "${OUTPUT_FILE}" plugin.json src/ img/
Including additional file types
If you use JavaScript modules or other assets, make sure they are included in the zip command. For example, add lib/ to the argument list.
Run the script:
Building manually¶
Omit directories that don't exist (e.g., img/ if you have no images).
What to exclude¶
Do not include in the archive:
build.shand other dev scripts.git/directory- IDE configuration files
node_modules/or other dependency folders
Asset paths¶
Reference bundled assets with relative paths wrapped in Qt.resolvedUrl(...), which resolves them against the QML file's own location. Since QML files live in src/ and images in img/, a typical path looks like:
Installing a plugin¶
Copy the .plugin file into the Auterion Mission Control/Plugins folder:
AMC watches this folder. Adding a file loads the plugin; removing it unloads it. No restart is required.
Uninstalling¶
Delete the .plugin file from the Plugins folder. AMC will unload the plugin automatically.
Iterating during development¶
During development, the typical workflow is:
- Edit QML files.
- Rebuild the
.pluginarchive. - Copy it into the Plugins folder (overwriting the previous version).
- Restart AMC to pick up the changes.
Known issue: plugin updates don't hot-reload
AMC can load and unload plugins while running, but it does not reliably pick up code changes to an already-loaded plugin. If you update a plugin, restart AMC to see the changes. This will be fixed in a future update.