diff --git a/src/NeTrainSimInstaller/NeTrainSimInstaller.pro b/src/NeTrainSimInstaller/NeTrainSimInstaller.pro index 681d9b0..8a03a46 100644 --- a/src/NeTrainSimInstaller/NeTrainSimInstaller.pro +++ b/src/NeTrainSimInstaller/NeTrainSimInstaller.pro @@ -1,13 +1,18 @@ TEMPLATE = aux + QT_INSTALL_FRAMEWORK_PATH = C:\Qt\Tools\QtInstallerFramework\4.6 +include(../mainconfig.pri) +include(create_xml.pri) + + !CONFIG(debug, debug|release) { - DESTDIR_NeTrainSim = packages/com.VTTICSM.NeTrainSim/data + DESTDIR_NeTrainSim = packages/com.VTTICSM.NeTrainSim/data DESTDIR_NeTrainSimGUI = packages/com.VTTICSM.NeTrainSimGUI/data win32 { - create_package.commands = $$quote("C:\Qt\6.4.2\msvc2019_64\bin\windeployqt.exe" --qmldir ../NeTrainSim/ $${DESTDIR_NeTrainSim}) - create_package.commands += $$quote("C:\Qt\6.4.2\msvc2019_64\bin\windeployqt.exe" --qmldir ../NeTrainSimGUI/ $${DESTDIR_NeTrainSimGUI}) + create_package.commands = $$quote("C:\Qt\6.4.2\msvc2019_64\bin\windeployqt.exe" --qmldir ../NeTrainSim/ $${DESTDIR_NeTrainSim}) + create_package.commands += $$quote("C:\Qt\6.4.2\msvc2019_64\bin\windeployqt.exe" --qmldir ../NeTrainSimGUI/ $${DESTDIR_NeTrainSimGUI}) } macx { @@ -18,12 +23,12 @@ QT_INSTALL_FRAMEWORK_PATH = C:\Qt\Tools\QtInstallerFramework\4.6 PRE_TARGETDEPS += create_package DISTFILES += \ - config/config.xml \ - packages/com.VTTICSM.NeTrainSim/meta/package.xml \ + config/config.xml.in \ packages/com.VTTICSM.NeTrainSim/meta/installscript.qs \ - packages/com.VTTICSM.NeTrainSimGUI/meta/package.xml \ + packages/com.VTTICSM.NeTrainSim/meta/package.xml.in \ packages/com.VTTICSM.NeTrainSimGUI/meta/installscript.qs \ - ../data/* + ../data/* \ + packages/com.VTTICSM.NeTrainSimGUI/meta/package.xml.in # copy the manual and sample project to the installer win32 { @@ -45,7 +50,6 @@ QT_INSTALL_FRAMEWORK_PATH = C:\Qt\Tools\QtInstallerFramework\4.6 NeTrainSimInstaller.input = INPUT NeTrainSimInstaller.output = $$INSTALLER NeTrainSimInstaller.commands = $$QT_INSTALL_FRAMEWORK_PATH/bin/binarycreator.exe --offline-only -c config/config.xml -p packages ${QMAKE_FILE_OUT} - #NeTrainSimInstaller.CONFIG += target_predeps no_link combine win32 { NeTrainSimInstaller.clean_commands += $$quote(del ..\NeTrainSim\NeTrainSimInstaller\packages\com.VTTICSM.NeTrainSim\data /Q) NeTrainSimInstaller.clean_commands += & for /d %%x in (..\NeTrainSim\NeTrainSimInstaller\packages\com.VTTICSM.NeTrainSim\data\*) do rd /s /q "%%x" @@ -58,3 +62,6 @@ QT_INSTALL_FRAMEWORK_PATH = C:\Qt\Tools\QtInstallerFramework\4.6 QMAKE_EXTRA_COMPILERS += NeTrainSimInstaller } + +OTHER_FILES += \ + config/installscript.qs diff --git a/src/NeTrainSimInstaller/config/config.xml b/src/NeTrainSimInstaller/config/config.xml index 4231b55..55a067d 100644 --- a/src/NeTrainSimInstaller/config/config.xml +++ b/src/NeTrainSimInstaller/config/config.xml @@ -9,4 +9,6 @@ icon.png NeTrainSim @ApplicationsDirX64@/NeTrainSim + @TargetDir@/NeTrainSimGUI.exe + installscript.qs diff --git a/src/NeTrainSimInstaller/config/config.xml.in b/src/NeTrainSimInstaller/config/config.xml.in new file mode 100644 index 0000000..d502667 --- /dev/null +++ b/src/NeTrainSimInstaller/config/config.xml.in @@ -0,0 +1,14 @@ + + + NeTrainSim + $$VERSION + NeTrainSim Installer + Virginia Tech Transportation Institute - Center for Sustainable Mobility + ../../NeTrainSimGUI/resources/icon.png + ../../NeTrainSimGUI/resources/icon + icon.png + NeTrainSim + @ApplicationsDirX64@/NeTrainSim + @TargetDir@/NeTrainSimGUI.exe + installscript.qs + diff --git a/src/NeTrainSimInstaller/config/installscript.qs b/src/NeTrainSimInstaller/config/installscript.qs new file mode 100644 index 0000000..22cf2da --- /dev/null +++ b/src/NeTrainSimInstaller/config/installscript.qs @@ -0,0 +1,58 @@ +function Controller() { + //installer.autoRejectMessageBoxes(); + installer.installationFinished.connect(function() { + //gui.clickButton(buttons.NextButton); + }); +} + +Controller.prototype.WelcomePageCallback = function() { + //gui.clickButton(buttons.NextButton, 3000); +} + +Controller.prototype.CredentialsPageCallback = function() { + //gui.clickButton(buttons.NextButton); +} + +Controller.prototype.IntroductionPageCallback = function() { + //gui.clickButton(buttons.NextButton); +} + +Controller.prototype.ReadyForInstallationPageCallback = function() { + //gui.clickButton(buttons.CommitButton); +} + +Controller.prototype.PerformInstallationPageCallback = function() { + //gui.clickButton(buttons.CommitButton); +} + +Controller.prototype.FinishedPageCallback = function() { + var checkBoxForm = gui.currentPageWidget().LaunchCheckBoxForm; + if (checkBoxForm && checkBoxForm.launchCheckBox) { + checkBoxForm.launchCheckBox.checked = false; + } + //gui.clickButton(buttons.FinishButton); +} + +Controller.prototype.TargetDirectoryPageCallback = function() { + var targetDir = installer.value("TargetDir"); + if (installer.fileExists(targetDir + "/maintenancetool.exe")) { + var buttonPressed = QMessageBox["warning"]("os.QMessageBox", "Warning", + "A previous installation has been detected at " + targetDir + + ". Do you want to uninstall it?", + QMessageBox.Yes | QMessageBox.No); + + if (buttonPressed == QMessageBox.Yes) { + installer.executeDetached(targetDir + "/maintenancetool.exe", + ["--uninstall"]); + } else { + //gui.clickButton(buttons.CancelButton); + } + } + else { + var targetWidget = gui.pageWidgetByObjectName("TargetDirectoryPage"); + targetWidget.TargetDirectoryLineEdit.setText(targetDir); + //gui.clickButton(buttons.NextButton); + } +} + + diff --git a/src/NeTrainSimInstaller/packages/com.VTTICSM.NeTrainSim/meta/package.xml b/src/NeTrainSimInstaller/packages/com.VTTICSM.NeTrainSim/meta/package.xml index 62b3c1c..1ec6c08 100644 --- a/src/NeTrainSimInstaller/packages/com.VTTICSM.NeTrainSim/meta/package.xml +++ b/src/NeTrainSimInstaller/packages/com.VTTICSM.NeTrainSim/meta/package.xml @@ -2,8 +2,8 @@ NeTrainSim NeTrainSim Setup - 0.1.0 - 2023-06-13 + 0.1.1 + 2023-07-23 diff --git a/src/NeTrainSimInstaller/packages/com.VTTICSM.NeTrainSim/meta/package.xml.in b/src/NeTrainSimInstaller/packages/com.VTTICSM.NeTrainSim/meta/package.xml.in new file mode 100644 index 0000000..979218d --- /dev/null +++ b/src/NeTrainSimInstaller/packages/com.VTTICSM.NeTrainSim/meta/package.xml.in @@ -0,0 +1,12 @@ + + + NeTrainSim + NeTrainSim Setup + $$VERSION + $$RELEASEDATE + + + + + true + diff --git a/src/NeTrainSimInstaller/packages/com.VTTICSM.NeTrainSimGUI/meta/installscript.qs b/src/NeTrainSimInstaller/packages/com.VTTICSM.NeTrainSimGUI/meta/installscript.qs index b9d3ffa..f9594c9 100644 --- a/src/NeTrainSimInstaller/packages/com.VTTICSM.NeTrainSimGUI/meta/installscript.qs +++ b/src/NeTrainSimInstaller/packages/com.VTTICSM.NeTrainSimGUI/meta/installscript.qs @@ -10,12 +10,18 @@ Component.prototype.createOperations = function() if (systemInfo.productType === "windows") { // Create a shortcut in the Start Menu - component.addOperation("CreateShortcut", "@TargetDir@/NeTrainSimGUI.exe", "@StartMenuDir@/NeTrainSimGUI.lnk", - "workingDirectory=@TargetDir@", "description=NeTrainSimGUI"); + component.addOperation("CreateShortcut", + "@TargetDir@/NeTrainSimGUI.exe", + "@StartMenuDir@/NeTrainSimGUI.lnk", + "workingDirectory=@TargetDir@", + "description=NeTrainSimGUI"); // Create a shortcut on the Desktop - component.addOperation("CreateShortcut", "@TargetDir@/NeTrainSimGUI.exe", "@DesktopDir@/NeTrainSimGUI.lnk", - "workingDirectory=@TargetDir@", "description=NeTrainSimGUI"); + component.addOperation("CreateShortcut", + "@TargetDir@/NeTrainSimGUI.exe", + "@DesktopDir@/NeTrainSimGUI.lnk", + "workingDirectory=@TargetDir@", + "description=NeTrainSimGUI"); } } diff --git a/src/NeTrainSimInstaller/packages/com.VTTICSM.NeTrainSimGUI/meta/package.xml b/src/NeTrainSimInstaller/packages/com.VTTICSM.NeTrainSimGUI/meta/package.xml index dcce0c9..ed2f1fe 100644 --- a/src/NeTrainSimInstaller/packages/com.VTTICSM.NeTrainSimGUI/meta/package.xml +++ b/src/NeTrainSimInstaller/packages/com.VTTICSM.NeTrainSimGUI/meta/package.xml @@ -2,8 +2,8 @@ NeTrainSimGUI NeTrainSimGUI Setup - 0.1.0 - 2023-06-13 + 0.1.1 + 2023-07-23 diff --git a/src/NeTrainSimInstaller/packages/com.VTTICSM.NeTrainSimGUI/meta/package.xml.in b/src/NeTrainSimInstaller/packages/com.VTTICSM.NeTrainSimGUI/meta/package.xml.in new file mode 100644 index 0000000..ace9752 --- /dev/null +++ b/src/NeTrainSimInstaller/packages/com.VTTICSM.NeTrainSimGUI/meta/package.xml.in @@ -0,0 +1,12 @@ + + + NeTrainSimGUI + NeTrainSimGUI Setup + $$VERSION + $$RELEASEDATE + + + + + true +