Hello,
We are currently configuring Horde as our CI solution for Unreal Engine and aiming to reduce redundancy by using macros and included configuration files. However, we are facing an issue where macro variables defined in our stream files are not properly substituted when included configurations are processed.
Specifically, we define macros (e.g., “ProjectPath”, “EditorTarget”) in our stream configuration file, and then include separate template configuration files (using the “include” directive). However, variables such as “$(EditorTarget)” remain unsubstituted and appear literally (e.g., “$(EditorTarget) Win64” instead of “RandomGameNameEditor Win64”).
Could you please provide guidance on:
- The correct order or method for defining macros relative to the “include” directive to ensure proper substitution?
- Best practices or examples for using macros alongside included template files to effectively reduce duplication in Horde configuration?
Example of our current configuration structure:
{
“macros”: [
{ “name”: “EditorTarget”, “value”: “RandomGameNameEditor” }
],
“include”: [
{ “path”: “../templates/base-templates/incremental-build-template.json” }
]
}
incremental-build-template.json:
“arguments”: [
“-Target=Incremental Build”,
“-set:UProjectPath=$(ProjectPath)”,
“-set:EditorTarget=$(EditorTarget)”
]
Thank you very much for your assistance!