MakeMe Events
During processing, MakeMe will fire events that may trigger scripts to run. There are two groups of events:
- Global Events
- Target Events
- Pack Events
The global events are triggered for general MakeMe processing and do not apply to a specific target. Target events apply to the current target being built. The current target is defined in the me.target property or the global TARGET property.
Global Events
| Name | Description |
|---|---|
| loaded | Fired after all the required MakeMe files are loaded. |
| postconfig | Fired during configuration just prior to creating the platform MakeMe file. |
| preheader | Fired during configuration after creating the platform MakeMe file and just prior to creating the me.h file. |
| pregen | Fired during project generation after creating the output project file but before emitting any content to the project. |
| gencustom | Fired during project generation after emitting top level definitions but before emitting the targets. This event is the opportunity to write custom variables and targets to the project. |
Target Events
Here are the target events in order of firing
| Name | Description |
|---|---|
| postblend | Fired after blending defaults into a target. |
| preresolve | Fired before resolving dependencies for a target |
| postresolve | Fired after resolving dependencies for a target |
| presource | Fired before expanding source wildcards and creating object targets |
| postsource | Fired after expanding source wildcards and creating object targets |
| precompile | Fired before compiling a source file used by a target |
| postcompile | Fired after compiling a source file used by a target |
| prebuild | Fired before building a target |
| build | Fired to build the target |
| postbuild | Fired after building a target |
Pack Events
Here are the pack events in order of firing.
| Name | Description |
|---|---|
| without | Fired when configuring and a pack is explicitly deselected via --without. |
| config | Fired when configuring a pack. |
| generate | Fired when generating during pack discovery. |
Defining Scripts
Scripts can be defined to run when the required event is triggered.
This can also be abbreviated by just supplying a string as script value. Be sure to use the + event aggregator to add to existing scripts for that event.
rocket: {
type: 'exe',
sources: [ '*.c' ],
prebuild: "print('before building')",
postbuild: "print('after building')",
},
These scripts are actually translated into a lower-level form when the MakeMe file is loaded. Scripts are translated into the scripts collection using a property name of the desired event.
rocket: {
scripts: {
prebuild: [{
script: "print('before building')",
home: '.',
interpreter: 'ejs',
}],
},
goals: ['rocket'],
},
For more details on how to set the home directory for the script or to specify a different script interpreter, see Scripts in the MakeMe User Guide.