in wix/msi.js [57:115]
function msi(config, buildTarget, buildInfos, packageJson) {
const log = require("cookie.gulp/log");
const { PassThrough } = require("stream");
if (process.platform !== "win32") {
log.warning("MSI", "Target", "Skipping: Publishing MSI must be on win32.");
return new PassThrough({ objectMode: true });
}
if (buildTarget.platform !== "win32") {
log.error("MSI", "Target", "Skipping: BuildTarget.platform must be win32.");
return new PassThrough({ objectMode: true });
}
if (buildTarget.arch !== "x32"
&& buildTarget.arch !== "x64") {
log.error("MSI", "Target", "Skpping: BuildTarget.arch must be x32 or x64.");
}
config.variables = config.variables || Object.create(null);
if (!config.variables[VarName_MsiVersion]) {
config.variables[VarName_MsiVersion] = generateMsiVersion(buildInfos);
log.info("MSI", "Variable", `${VarName_MsiVersion}="${config.variables[VarName_MsiVersion]}"`);
}
const gulp = require("gulp");
const globUtils = require("cookie.gulp/glob-utils");
const { chain } = require("cookie.gulp/steams-utils");
const light = require("./light");
const candle = require("./candle");
const heat = require("./heat");
return chain(
heat({
intermediateDir: buildInfos.paths.intermediateDir,
autoGenerateComponentGuids: config.autoGenerateComponentGuids,
generateGuidsNow: config.generateGuidsNow,
keepEmptyFolders: config.keepEmptyFolders,
rootDirectory: config.rootDirectory,
componentGroupName: config.componentGroupName,
xsltTemplatePath: config.xsltTemplatePath
}),
gulp.src(config.wxs ? globUtils.toGlobs(config.wxs, "wxs") : "**/*.wxs", { dot: true }),
// @ts-ignore
candle({
intermediateDir: buildInfos.paths.intermediateDir,
arch: toMsiArch(buildTarget.arch),
variables: config.variables
}),
light({
intermediateDir: buildInfos.paths.intermediateDir,
spdb: config.spdb,
outFileName: `setup-${config.variables[VarName_MsiVersion]}.${buildTarget.arch}.msi`
}));
};