From de748023e53ce84afd01cde0ca380cddad057a4d Mon Sep 17 00:00:00 2001 From: Kai Koehne Date: Wed, 3 Dec 2014 10:41:48 +0100 Subject: Expose systemInfo API Add systemInfo as a wrapper for QSystemInfo. Task-number: QTIFW-592 Change-Id: Ib54fcea8b0ef3a397a74f5315202f3000abd63cd Reviewed-by: Niels Weber Reviewed-by: Jarek Kobus --- .../systeminfo/packages/root/meta/installscript.qs | 121 +++++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 examples/systeminfo/packages/root/meta/installscript.qs (limited to 'examples/systeminfo/packages/root/meta/installscript.qs') diff --git a/examples/systeminfo/packages/root/meta/installscript.qs b/examples/systeminfo/packages/root/meta/installscript.qs new file mode 100644 index 000000000..213a3c42c --- /dev/null +++ b/examples/systeminfo/packages/root/meta/installscript.qs @@ -0,0 +1,121 @@ +/************************************************************************** +** +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Installer Framework. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 or version 3 as published by the Free +** Software Foundation and appearing in the file LICENSE.LGPLv21 and +** LICENSE.LGPLv3 included in the packaging of this file. Please review the +** following information to ensure the GNU Lesser General Public License +** requirements will be met: https://www.gnu.org/licenses/lgpl.html and +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** +** $QT_END_LICENSE$ +** +**************************************************************************/ + +// Skip all pages and go directly to finished page. +// (see also componenterror example) +function cancelInstaller(message) +{ + installer.setDefaultPageVisible(QInstaller.Introduction, false); + installer.setDefaultPageVisible(QInstaller.TargetDirectory, false); + installer.setDefaultPageVisible(QInstaller.ComponentSelection, false); + installer.setDefaultPageVisible(QInstaller.ReadyForInstallation, false); + installer.setDefaultPageVisible(QInstaller.StartMenuSelection, false); + installer.setDefaultPageVisible(QInstaller.PerformInstallation, false); + installer.setDefaultPageVisible(QInstaller.LicenseCheck, false); + + var abortText = "" + message +""; + installer.setValue("FinishedText", abortText); +} + +// Returns the major version number as int +// string.split(".", 1) returns the string before the first '.', +// parseInt() converts it to an int. +function majorVersion(str) +{ + return parseInt(str.split(".", 1)); +} + +function Component() +{ + // + // Check whether OS is supported. + // + // For Windows and OS X we check the kernel version: + // - Require at least Windows Vista (winnt kernel version 6.0.x) + // - Require at least OS X 10.7 (Lion) (darwin kernel version 11.x) + // + // If the kernel version is older we move directly + // to the final page & show an error. + // + // For Linux, we check the distribution and version, but only + // show a warning if it does not match our preferred distribution. + // + + // start installer with -v to see debug output + console.log("OS: " + systemInfo.productType); + console.log("Kernel: " + systemInfo.kernelType + "/" + systemInfo.kernelVersion); + + var validOs = false; + + if (systemInfo.kernelType === "winnt") { + if (majorVersion(systemInfo.kernelVersion) >= 6) + validOs = true; + } else if (systemInfo.kernelType === "darwin") { + if (majorVersion(systemInfo.kernelVersion) >= 11) + validOs = true; + } else { + if (systemInfo.productType !== "opensuse" + || systemInfo.productVersion !== "13.2") { + QMessageBox["warning"]("os.warning", "Installer", + "Note that the binaries are only tested on OpenSUSE 13.2.", + QMessageBox.Ok); + } + validOs = true; + } + + if (!validOs) { + cancelInstaller("Installation on " + systemInfo.prettyProductName + " is not supported"); + return; + } + + // + // Hide/select packages based on architecture + // + // Marking a component as "Virtual" will hide it in the UI. + // Marking a component with "Default" will check it. + // + console.log("CPU Architecture: " + systemInfo.currentCpuArchitecture); + + installer.componentByName("root.i386").setValue("Virtual", "true"); + installer.componentByName("root.x86_64").setValue("Virtual", "true"); + + if ( systemInfo.currentCpuArchitecture === "i386") { + installer.componentByName("root.i386").setValue("Virtual", "false"); + installer.componentByName("root.i386").setValue("Default", "true"); + } + if ( systemInfo.currentCpuArchitecture === "x86_64") { + installer.componentByName("root.x86_64").setValue("Virtual", "false"); + installer.componentByName("root.x86_64").setValue("Default", "true"); + } +} -- cgit v1.2.3