From c29f85eae2aa80498a97760b9682aeed93160f04 Mon Sep 17 00:00:00 2001 From: ea4k Date: Tue, 30 Aug 2022 19:12:02 +0200 Subject: [PATCH] Windows automation --- .gitignore | 1 + devscripts/KLogWinCreatePackage2.bat | 12 +- devscripts/klog-win-build.xml | 317 +++++++++++++++++++++++++++ images/klogExeIcon.ico | Bin 0 -> 32038 bytes 4 files changed, 322 insertions(+), 8 deletions(-) create mode 100644 devscripts/klog-win-build.xml create mode 100644 images/klogExeIcon.ico diff --git a/.gitignore b/.gitignore index 32d6d787..7f9eac4f 100644 --- a/.gitignore +++ b/.gitignore @@ -25,3 +25,4 @@ tests/tst_mainwindow/moc_predefs.h tests/tst_mainwindow/target_wrapper.sh *.moc tests/tst_mainwindow/moc_*.cpp +*.exe diff --git a/devscripts/KLogWinCreatePackage2.bat b/devscripts/KLogWinCreatePackage2.bat index 48459f87..94408e3c 100644 --- a/devscripts/KLogWinCreatePackage2.bat +++ b/devscripts/KLogWinCreatePackage2.bat @@ -47,15 +47,11 @@ windeployqt --qmldir qml release\klog.exe :: Check in main.cpp and uncomment the SSL line to see what is the version that was used. :: After knowing the version, the package can be obtained from: https://indy.fulgan.com/SSL/Archive/ -copy *.ico release -copy AUTHORS release -copy Changelog release -copy NEWS release -copy TODO release -copy README release -copy COPYING release -copy gpl-3.0-standalone.html release rem cd ..\.. +echo %cd% +cd ../devscripts +echo %cd% +builder-cli.exe build klog-win-build.xml --verbose diff --git a/devscripts/klog-win-build.xml b/devscripts/klog-win-build.xml new file mode 100644 index 00000000..05833dc3 --- /dev/null +++ b/devscripts/klog-win-build.xml @@ -0,0 +1,317 @@ + + KLog + KLog + 2.2.1 + ../src/README + ../src/COPYING + ../src/gpl-3.0-standalone.html + ../images/klog.iconset/icon_512x512.png + ../images/klog.iconset/icon_512x512.png + ../images/klog_splash.png + 1 + . + + + default + Default Component + 1 + 1 + 1 + + + ${project.fullName} + + + ${project.fullName} + + windows + 0 + 0 + ${installdir}/klog.exe + + ${installdir}/klog.ico + ${installdir}/ + + + + + Program Files + ${installdir} + programfiles + all + + + ../src/TODO + + + ../src/AUTHORS + + + ../src/Changelog + + + ../src/COPYING + + + ../src/release/D3Dcompiler_47.dll + + + ../src/gpl-3.0-standalone.html + + + ../src/release/klog.exe + + + ../images/klog.ico + + + ../src/release/libcrypto-1_1.dll + + + ../src/release/libeay32.dll + + + ../src/release/libEGL.dll + + + ../src/release/libgcc_s_dw2-1.dll + + + ../src/release/libgcc_s_sjlj-1.dll + + + ../src/release/libGLESv2.dll + + + ../src/release/libhamlib-4.dll + + + ../src/release/libssl-1_1.dll + + + ../src/release/libstdc++-6.dll + + + ../src/release/libusb-1.0.dll + + + ../src/release/libwinpthread-1.dll + + + ../src/NEWS + + + ../src/release/opengl32sw.dll + + + ../src/release/Qt5Charts.dll + + + ../src/release/Qt5Core.dll + + + ../src/release/Qt5Gui.dll + + + ../src/release/Qt5Location.dll + + + ../src/release/Qt5Network.dll + + + ../src/release/Qt5Positioning.dll + + + ../src/release/Qt5PositioningQuick.dll + + + ../src/release/Qt5PrintSupport.dll + + + ../src/release/Qt5Qml.dll + + + ../src/release/Qt5QmlModels.dll + + + ../src/release/Qt5QmlWorkerScript.dll + + + ../src/release/Qt5Quick.dll + + + ../src/release/Qt5RemoteObjects.dll + + + ../src/release/Qt5SerialPort.dll + + + ../src/release/Qt5Sql.dll + + + ../src/release/Qt5Svg.dll + + + ../src/release/Qt5Widgets.dll + + + ../src/README + + + ../src/release/ssleay32.dll + + + ../src/release/bearer + + + ../src/release/geoservices + + + ../src/release/iconengines + + + ../src/release/imageformats + + + ../src/release/platforms + + + ../src/release/position + + + ../src/release/printsupport + + + ../src/release/qmltooling + + + ../src/release/QtLocation + + + ../src/release/QtPositioning + + + ../src/release/QtQml + + + ../src/release/QtQuick + + + ../src/release/QtQuick.2 + + + ../src/release/sqldrivers + + + ../src/release/styles + + + ../src/release/translations + + + ../src/release/QtGraphicalEffects + + + ../src/release/Qt5QuickControls2.dll + + + ../src/release/Qt5QuickTemplates2.dll + + + + + Uninstall + ${installdir}/${uninstallerName} + + Uninstall ${product_fullname} + ${installdir} + all + 0 + 0 + ${installdir}/${uninstallerName}.exe + + + ${installdir} + + + Start KLog + + + KLog + + all + 0 + 0 + ${installdir}/klog.exe + + klog.ico + + + + + + Program Files + ${installdir}/translations + newfolder + all + + + + + Uninstall ${product_fullname} + Uninstall ${product_fullname} + 0 + 0 + ${installdir}/${uninstallerName}.exe + + + ${installdir}/ + + + Start KLog + KLog + 0 + 0 + ${installdir}/klog.exe + + + + + + + + 1 + 1 + 1 + 1 + EA4K + ${project.fullName} + ../images/klogExeIcon.ico + + + en + utf-8 + + + + + + installdir + Installer.Parameter.installdir.description + Installer.Parameter.installdir.explanation + + ${platform_install_prefix}/${product_shortname} + 0 + prefix + 1 + 0 + 40 + + + + + windows + + + + diff --git a/images/klogExeIcon.ico b/images/klogExeIcon.ico new file mode 100644 index 0000000000000000000000000000000000000000..e4d0e2c0a969f97ad474d39d46bdc07e7d3702e7 GIT binary patch literal 32038 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