summaryrefslogtreecommitdiffstats
path: root/examples/systeminfo/packages
diff options
context:
space:
mode:
Diffstat (limited to 'examples/systeminfo/packages')
-rw-r--r--examples/systeminfo/packages/root.i386/meta/package.xml8
-rw-r--r--examples/systeminfo/packages/root.x86_64/meta/package.xml8
-rw-r--r--examples/systeminfo/packages/root/meta/installscript.qs121
-rw-r--r--examples/systeminfo/packages/root/meta/package.xml8
4 files changed, 145 insertions, 0 deletions
diff --git a/examples/systeminfo/packages/root.i386/meta/package.xml b/examples/systeminfo/packages/root.i386/meta/package.xml
new file mode 100644
index 000000000..4d56928ce
--- /dev/null
+++ b/examples/systeminfo/packages/root.i386/meta/package.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Package>
+ <DisplayName>i386 binaries</DisplayName>
+ <Description>Binaries that require a x86 CPU.</Description>
+ <Version>1.0.0-1</Version>
+ <ReleaseDate>2014-12-01</ReleaseDate>
+ <Default>false</Default>
+</Package>
diff --git a/examples/systeminfo/packages/root.x86_64/meta/package.xml b/examples/systeminfo/packages/root.x86_64/meta/package.xml
new file mode 100644
index 000000000..66cffdfd4
--- /dev/null
+++ b/examples/systeminfo/packages/root.x86_64/meta/package.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Package>
+ <DisplayName>x86-64 bit binaries</DisplayName>
+ <Description>Binaries that require a x86-64 CPU.</Description>
+ <Version>1.0.0-1</Version>
+ <ReleaseDate>2014-12-01</ReleaseDate>
+ <Default>false</Default>
+</Package>
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 = "<font color='red'>" + message +"</font>";
+ 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");
+ }
+}
diff --git a/examples/systeminfo/packages/root/meta/package.xml b/examples/systeminfo/packages/root/meta/package.xml
new file mode 100644
index 000000000..0e67c1bc9
--- /dev/null
+++ b/examples/systeminfo/packages/root/meta/package.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Package>
+ <DisplayName>systemInfo example</DisplayName>
+ <Description>Shows the use of the systemInfo JS API.</Description>
+ <Version>1.0.0-1</Version>
+ <ReleaseDate>2013-01-01</ReleaseDate>
+ <Script>installscript.qs</Script>
+</Package>