diff --git a/changelog/dub_root_package_target_env_vars_added.dd b/changelog/dub_root_package_target_env_vars_added.dd new file mode 100644 index 0000000..06d5df4 --- /dev/null +++ b/changelog/dub_root_package_target_env_vars_added.dd @@ -0,0 +1,4 @@ +Dub root package target environment variables added + +Environment variables `DUB_ROOT_PACKAGE_TARGET_TYPE`, `DUB_ROOT_PACKAGE_TARGET_PATH` +and `DUB_ROOT_PACKAGE_TARGET_NAME` have been added and exposed. diff --git a/source/dub/generators/generator.d b/source/dub/generators/generator.d index 0809b4e..97d2985 100644 --- a/source/dub/generators/generator.d +++ b/source/dub/generators/generator.d @@ -812,6 +812,12 @@ env["DUB_RUN_ARGS"] = (cast(string[])settings.runArgs).map!(escapeShellFileName).join(" "); + auto cfgs = proj.getPackageConfigs(settings.platform, settings.config, true); + auto rootPackageBuildSettings = proj.rootPackage.getBuildSettings(settings.platform, cfgs[proj.rootPackage.name]); + env["DUB_ROOT_PACKAGE_TARGET_TYPE"] = to!string(rootPackageBuildSettings.targetType); + env["DUB_ROOT_PACKAGE_TARGET_PATH"] = rootPackageBuildSettings.targetPath; + env["DUB_ROOT_PACKAGE_TARGET_NAME"] = rootPackageBuildSettings.targetName; + auto depNames = proj.dependencies.map!((a) => a.name).array(); storeRecursiveInvokations(env, proj.rootPackage.name ~ depNames); runCommands(commands, env, pack.path().toString());