diff --git a/source/dub/generators/build.d b/source/dub/generators/build.d index 7d5c025..893c8b5 100644 --- a/source/dub/generators/build.d +++ b/source/dub/generators/build.d @@ -70,7 +70,10 @@ auto ti = targets[m_project.rootPackage.name]; buildTarget(settings, ti.buildSettings.dup, m_project.rootPackage, ti.config); } else buildTargetRec(m_project.rootPackage.name); + } + override void performPostGenerateActions(GeneratorSettings settings, in TargetInfo[string] targets) + { // run the generated executable auto buildsettings = targets[m_project.rootPackage.name].buildSettings; if (settings.run && !(buildsettings.options & BuildOptions.syntaxOnly)) { diff --git a/source/dub/generators/generator.d b/source/dub/generators/generator.d index 99e95be..faee188 100644 --- a/source/dub/generators/generator.d +++ b/source/dub/generators/generator.d @@ -73,10 +73,14 @@ bool generate_binary = !(buildsettings.options & BuildOptions.syntaxOnly); finalizeGeneration(pack.name, buildsettings, generate_binary); } + + performPostGenerateActions(settings, targets); } abstract void generateTargets(GeneratorSettings settings, in TargetInfo[string] targets); + void performPostGenerateActions(GeneratorSettings settings, in TargetInfo[string] targets) {} // e.g. run the compiled program + private BuildSettings collect(GeneratorSettings settings, Package pack, ref TargetInfo[string] targets, in string[string] configs, ref string[] main_files, string bin_pack) { if (auto pt = pack.name in targets) return pt.buildSettings;