void LibreOffice::build(NSIS *installer, Version version) { isError = false; download(version); if (!isError) { QStringList files(tempFiles); QStringList msiOptions("ADDLOCAL=ALL"); QStringList removeComponents; if (!getConfig("Use automatic update", true).toBool()) { removeComponents << "gm_o_Onlineupdate"; } if (!removeComponents.isEmpty()) { msiOptions << "REMOVE=" + removeComponents.join(","); } msiOptions << QString("CREATEDESKTOPLINK=%1").arg(getConfig("Desktop shortcut", false).toBool()); msiOptions << QString("QUICKSTART=%1").arg(getConfig("Enable Quickstarter by default", false).toBool()); qDebug() << "MSI options:" << msiOptions; QString src(loadResource(":NSIS/LibreOffice/main.nsh")); src.replace("${MsiFile}", QFileInfo(tempFiles.first()).fileName()); src.replace("${MsiOptions}", msiOptions.join(" ")); // Use configuration template if configured QString configTemplate(getConfig("Configuration template").toString()); if (!configTemplate.isEmpty()) { QFileInfo file(configTemplate); if (file.isReadable()) { files << configTemplate; src += loadResource(":NSIS/LibreOffice/configtemplate.nsh") .replace("${ConfigTemplate}", file.fileName()) .replace("${ShortVersion}", version.truncate(2)) ; } else { Application::critical(tr("The configuration template '%1' cannot be read.").arg(configTemplate)); isError = true; } } if (!isError) { installer->build( objectName(), getOutputFile(), NSIS::Zlib, 800, QStringList() << "soffice.exe" << "soffice.bin", files, src ); } } cleanup(); }
void AdobeReader::build(NSIS *installer, Version version) { isError = false; download(version); if (!isError) { // Compose options for msiexec command line QStringList msiOptions; if (getConfig("Suppress reboot", false).toBool()) { msiOptions << "REBOOT=ReallySuppress"; } if (getConfig("Accept EULA", false).toBool()) { msiOptions << "EULA_ACCEPT=YES"; } if (!getConfig("Desktop shortcut", true).toBool()) { msiOptions << "DISABLEDESKTOPSHORTCUT=1"; } if (getConfig("Set default PDF viewer", false).toBool()) { msiOptions << "IW_DEFAULT_VERB=READ"; msiOptions << "LEAVE_PDFOWNERSHIP=NO"; } else { msiOptions << "LEAVE_PDFOWNERSHIP=YES"; } if (!getConfig("Install synchronizer", true).toBool()) { msiOptions << "SYNCHRONIZER=NO"; } if (!getConfig("Use automatic update", true).toBool()) { msiOptions << "DISABLE_ARM_SERVICE_INSTALL=1"; } qDebug() << "MSI options:" << msiOptions; // Compose main installation routine Version msiVersion(version.truncate(2).pad(2)); QString src(loadResource(":NSIS/AdobeReader/main.nsh")); src.replace("${VersionMajor}", msiVersion.part(1)); src.replace("${VersionMinor}", msiVersion.part(2)); src.replace("${MsiFile}", QFileInfo(msiFile).fileName()); src.replace("${MsiOptions}", msiOptions.join(" ")); // Compose patch installation if necessary QString header; if (!mspFiles.isEmpty()) { header = loadResource(":NSIS/AdobeReader/header.nsh"); QPair<Version, QString> mspFile; foreach (mspFile, mspFiles) { src += loadResource(":NSIS/AdobeReader/installpatch.nsh") .replace("${MspVersion}", mspFile.first) .replace("${MspFile}", QFileInfo(mspFile.second).fileName()) ; }