Files
qelectrotech-source-mirror/build-aux/windows/QElectroTech.wxs
2026-05-12 22:12:42 +02:00

153 lines
6.4 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!--
QElectroTech.wxs - WiX v7 installer definition
Generates an x64 MSI for QElectroTech (MSYS2/UCRT64 build).
Variables passed from the wix build command line:
-d FilesDir=<absolute path to artifact\files>
-d Version=<numeric version e.g. 0.100.1.0>
-d ProductVersion=<display version e.g. 0.100.1-r8770-abc1234_x86_64-win64>
-->
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"
xmlns:ui="http://wixtoolset.org/schemas/v4/wxs/ui">
<Package
Name="QElectroTech"
Manufacturer="QElectroTech Team"
Version="$(var.Version)"
UpgradeCode="A1B2C3D4-E5F6-7890-ABCD-EF1234567890"
Language="1033"
Codepage="1252"
InstallerVersion="500"
Scope="perMachine">
<!-- In-place upgrade: automatically uninstalls the previous version -->
<MajorUpgrade
DowngradeErrorMessage="A newer version of QElectroTech is already installed."
Schedule="afterInstallInitialize" />
<!-- Installation directory -->
<StandardDirectory Id="ProgramFiles64Folder">
<Directory Id="INSTALLDIR" Name="QElectroTech" />
</StandardDirectory>
<!-- ============================================================
bin\ — full harvest (exe + all DLLs + Qt subdirectories)
============================================================ -->
<ComponentGroup Id="CG_Bin" Directory="INSTALLDIR">
<Files Include="$(var.FilesDir)\bin\**" />
</ComponentGroup>
<!-- ============================================================
Root files in files\ (LICENSE, bat, reg...)
============================================================ -->
<ComponentGroup Id="CG_Root" Directory="INSTALLDIR">
<Files Include="$(var.FilesDir)\*" />
</ComponentGroup>
<!-- ============================================================
Application data — one ComponentGroup per folder
============================================================ -->
<ComponentGroup Id="CG_Elements" Directory="INSTALLDIR">
<Files Include="$(var.FilesDir)\elements\**" />
</ComponentGroup>
<ComponentGroup Id="CG_Lang" Directory="INSTALLDIR">
<Files Include="$(var.FilesDir)\lang\**" />
</ComponentGroup>
<ComponentGroup Id="CG_Titleblocks" Directory="INSTALLDIR">
<Files Include="$(var.FilesDir)\titleblocks\**" />
</ComponentGroup>
<ComponentGroup Id="CG_Examples" Directory="INSTALLDIR">
<Files Include="$(var.FilesDir)\examples\**" />
</ComponentGroup>
<ComponentGroup Id="CG_Fonts" Directory="INSTALLDIR">
<Files Include="$(var.FilesDir)\fonts\**" />
</ComponentGroup>
<ComponentGroup Id="CG_Icons" Directory="INSTALLDIR">
<Files Include="$(var.FilesDir)\ico\**" />
</ComponentGroup>
<!-- ============================================================
Desktop + Start Menu shortcuts
============================================================ -->
<ComponentGroup Id="CG_Shortcuts" Directory="INSTALLDIR">
<Component Id="C_ShortcutDesktop" Guid="F1A2B3C4-D5E6-7890-5678-012345678901">
<Shortcut Id="DesktopShortcut"
Directory="DesktopFolder"
Name="QElectroTech"
Target="[INSTALLDIR]Lancer QET.bat"
Icon="qet.ico"
WorkingDirectory="INSTALLDIR" />
<RegistryValue Root="HKCU"
Key="Software\QElectroTech"
Name="DesktopShortcut"
Type="integer" Value="1"
KeyPath="yes" />
</Component>
<Component Id="C_ShortcutStartMenu" Guid="A2B3C4D5-E6F7-8901-6789-123456789012">
<Shortcut Id="StartMenuShortcut"
Directory="ProgramMenuFolder"
Name="QElectroTech"
Target="[INSTALLDIR]Lancer QET.bat"
Icon="qet.ico"
WorkingDirectory="INSTALLDIR" />
<RegistryValue Root="HKCU"
Key="Software\QElectroTech"
Name="StartMenuShortcut"
Type="integer" Value="1"
KeyPath="yes" />
</Component>
</ComponentGroup>
<!-- ============================================================
.qet file association
============================================================ -->
<ComponentGroup Id="CG_FileAssoc" Directory="INSTALLDIR">
<Component Id="C_FileAssoc" Guid="B3C4D5E6-F7A8-9012-7890-234567890123">
<RegistryValue Root="HKCR" Key=".qet" Type="string" Value="QElectroTech.Document" KeyPath="yes" />
<RegistryValue Root="HKCR" Key="QElectroTech.Document" Type="string" Value="QElectroTech Project" />
<RegistryValue Root="HKCR" Key="QElectroTech.Document\DefaultIcon" Type="string"
Value="[INSTALLDIR]ico\qelectrotech.ico" />
<RegistryValue Root="HKCR" Key="QElectroTech.Document\shell\open\command" Type="string"
Value="&quot;[INSTALLDIR]bin\qelectrotech.exe&quot; &quot;%1&quot;" />
</Component>
</ComponentGroup>
<!-- ============================================================
Icon for shortcuts
============================================================ -->
<Icon Id="qet.ico" SourceFile="$(var.FilesDir)\ico\qelectrotech.ico" />
<!-- ============================================================
Main feature (everything included)
============================================================ -->
<Feature Id="ProductFeature" Title="QElectroTech" Level="1">
<ComponentGroupRef Id="CG_Bin" />
<ComponentGroupRef Id="CG_Root" />
<ComponentGroupRef Id="CG_Elements" />
<ComponentGroupRef Id="CG_Lang" />
<ComponentGroupRef Id="CG_Titleblocks" />
<ComponentGroupRef Id="CG_Examples" />
<ComponentGroupRef Id="CG_Fonts" />
<ComponentGroupRef Id="CG_Icons" />
<ComponentGroupRef Id="CG_Shortcuts" />
<ComponentGroupRef Id="CG_FileAssoc" />
</Feature>
<!-- Minimal Windows Installer UI (requires xmlns:ui and WixToolset.UI.wixext) -->
<ui:WixUI Id="WixUI_Minimal" />
<!-- Properties shown in Programs and Features -->
<Property Id="ARPPRODUCTICON" Value="qet.ico" />
<Property Id="ARPHELPLINK" Value="https://qelectrotech.org" />
<Property Id="ARPURLINFOABOUT" Value="https://qelectrotech.org" />
<Property Id="ARPCOMMENTS" Value="Free electrical schematic editor" />
</Package>
</Wix>