6060 if [ $filename == " ${PRODUCTNAME} .exe" ] ; then
6161 # If this is the executable treat as a special case as we need the reference for later
6262 EXE_ID=${PRODUCTNAME} 00
63- EXE_FILE =${filename}
63+ SVC_ID =${PRODUCTNAME} 00_SVC
6464 # Add special entry to files list
65- FILES=" $FILES <File Id='${EXE_ID} ' Source='${WORKING_PATH}${filename} ' KeyPath='yes'/>\n"
65+ EXE_FILE=" <File Id='${EXE_ID} ' Source='${WORKING_PATH}${filename} ' KeyPath='yes'/>\n"
66+ SVC_FILE=" <File Id='${SVC_ID} ' Source='${WORKING_PATH}${filename} ' KeyPath='yes'/>\n"
6667 elif [ -d " $file " ] ; then
6768 # If this is a directory then we need to add another component
68- COMPONENTS=" ${COMPONENTS} <ComponentRef Id='${filename} Files'/>\n"
69+ COMPONENTS=" ${COMPONENTS} <ComponentRef Id='${filename} Files'/>\n"
6970 TEMP=" <Directory Id='${filename} ' Name='${filename} '>\n <Component Id='${filename} Files' Guid='" $( uuidgen -t | awk ' { print toupper($0) }' ) " '>\n"
7071 for file2 in " $file " /* ;
7172 do
@@ -106,17 +107,54 @@ XML_FILE+=" <Icon Id='OpenRGBIcon' SourceFile='${ICONFILE}'/>\r\n"
106107XML_FILE+=" <Property Id='ARPPRODUCTICON' Value='OpenRGBIcon'/>\r\n"
107108XML_FILE+=" <Property Id='ARPURLINFOABOUT' Value='https://www.openrgb.org'/>\r\n"
108109XML_FILE+=" <Property Id='WIXUI_INSTALLDIR' Value='INSTALLDIR'/>\r\n"
109- XML_FILE+=" <UIRef Id='WixUI_InstallDir'/>\r\n"
110- XML_FILE+=" <UIRef Id='WixUI_ErrorProgressText'/>\r\n"
111110XML_FILE+=" <WixVariable Id='WixUILicenseRtf' Value='${LICENSEFILE} '/>\r\n"
112111XML_FILE+=" <WixVariable Id='WixUIBannerBmp' Value='${BANNERIMAGE} '/>\r\n"
113112XML_FILE+=" <WixVariable Id='WixUIDialogBmp' Value='${DIALOGBACKGROUND} '/>\r\n"
114113XML_FILE+=" \r\n"
114+ XML_FILE+=" <UI>\r\n"
115+ XML_FILE+=" <UIRef Id='WixUI_InstallDir'/>\r\n"
116+ XML_FILE+=" <UIRef Id='WixUI_ErrorProgressText'/>\r\n"
117+ XML_FILE+=" \r\n"
118+ XML_FILE+=" <Dialog Id='ServiceDialog' Width='370' Height='270' Title='!(loc.InstallDirDlg_Title)'>\r\n"
119+ XML_FILE+=" <Control Id='Next' Type='PushButton' X='236' Y='243' Width='56' Height='17' Default='yes' Text='!(loc.WixUINext)' />\r\n"
120+ XML_FILE+=" <Control Id='Back' Type='PushButton' X='180' Y='243' Width='56' Height='17' Text='!(loc.WixUIBack)' />\r\n"
121+ XML_FILE+=" <Control Id='Cancel' Type='PushButton' X='304' Y='243' Width='56' Height='17' Cancel='yes' Text='!(loc.WixUICancel)'>\r\n"
122+ XML_FILE+=" <Publish Event='SpawnDialog' Value='CancelDlg' />\r\n"
123+ XML_FILE+=" </Control>\r\n"
124+ XML_FILE+=" \r\n"
125+ XML_FILE+=" <Control Id='Description' Type='Text' X='25' Y='23' Width='280' Height='15' Transparent='yes' NoPrefix='yes' Text='Choose whether to register ${PRODUCTNAME} as a system service.' />\r\n"
126+ XML_FILE+=" <Control Id='Title' Type='Text' X='15' Y='6' Width='200' Height='15' Transparent='yes' NoPrefix='yes' Text='${PRODUCTNAME} Service' />\r\n"
127+ XML_FILE+=" <Control Id='BannerBitmap' Type='Bitmap' X='0' Y='0' Width='370' Height='44' TabSkip='no' Text='!(loc.InstallDirDlgBannerBitmap)' />\r\n"
128+ XML_FILE+=" <Control Id='BannerLine' Type='Line' X='0' Y='44' Width='373' Height='0' />\r\n"
129+ XML_FILE+=" <Control Id='BottomLine' Type='Line' X='0' Y='234' Width='373' Height='0' />\r\n"
130+ XML_FILE+=" \r\n"
131+ XML_FILE+=" <Control Id='TypicalButton' Type='PushButton' X='40' Y='65' Width='200' Height='17' ToolTip='Does not register OpenRGB as a system service. Accessing certain devices will require running the application as administrator.' Default='yes' Text='Do not Install System Service (Default)'>\r\n"
132+ XML_FILE+=" <Publish Property='WixUI_InstallMode' Value='InstallTypical'>1</Publish>\r\n"
133+ XML_FILE+=" <Publish Event='SetInstallLevel' Value='1'>1</Publish>\r\n"
134+ XML_FILE+=" <Publish Event='NewDialog' Value='VerifyReadyDlg'>1</Publish>\r\n"
135+ XML_FILE+=" </Control>\r\n"
136+ XML_FILE+=" <Control Id='CompleteButton' Type='PushButton' X='40' Y='171' Width='200' Height='17' ToolTip='Registers OpenRGB system service, allowing access to devices which require administrator access without having to run the application as administrator.' Text='Install System Service'>\r\n"
137+ XML_FILE+=" <Publish Property='WixUI_InstallMode' Value='InstallComplete'>1</Publish>\r\n"
138+ XML_FILE+=" <Publish Event='SetInstallLevel' Value='2'>1</Publish>\r\n"
139+ XML_FILE+=" <Publish Event='NewDialog' Value='VerifyReadyDlg'>1</Publish>\r\n"
140+ XML_FILE+=" </Control>\r\n"
141+ XML_FILE+=" </Dialog>\r\n"
142+ XML_FILE+=" \r\n"
143+ XML_FILE+=" <Publish Dialog='InstallDirDlg' Control='Next' Event='NewDialog' Value='ServiceDialog' Order='5'>WIXUI_DONTVALIDATEPATH OR WIXUI_INSTALLDIR_VALID=\" 1\" </Publish>\r\n"
144+ XML_FILE+=" <Publish Dialog='VerifyReadyDlg' Control='Back' Event='NewDialog' Value='ServiceDialog' Order='2'>1</Publish>\r\n"
145+ XML_FILE+=" <Publish Dialog='ServiceDialog' Control='Next' Event='NewDialog' Value='VerifyReadyDlg' Order='2'>1</Publish>\r\n"
146+ XML_FILE+=" <Publish Dialog='ServiceDialog' Control='Back' Event='NewDialog' Value='InstallDirDlg' Order='2'>1</Publish>\r\n"
147+ XML_FILE+=" </UI>\r\n"
148+ XML_FILE+=" \r\n"
115149XML_FILE+=" <Directory Id='TARGETDIR' Name='SourceDir'>\r\n"
116150XML_FILE+=" <Directory Id='ProgramFiles64Folder'>\r\n"
117151XML_FILE+=" <Directory Id='INSTALLDIR' Name='${PRODUCTNAME} '>\r\n"
118152XML_FILE+=" <Component Id='${PRODUCTNAME} Files' Guid='" $( uuidgen -t | awk ' { print toupper($0) }' ) " '>\r\n"
153+ XML_FILE+=" ${EXE_FILE} \r\n"
119154XML_FILE+=" ${FILES} \r\n"
155+ XML_FILE+=" </Component>\r\n"
156+ XML_FILE+=" <Component Id='${PRODUCTNAME} Service' Guid='" $( uuidgen -t | awk ' { print toupper($0) }' ) " '>\r\n"
157+ XML_FILE+=" ${SVC_FILE} \r\n"
120158XML_FILE+=" <ServiceInstall Id='ServiceInstaller' Type='ownProcess' Name='OpenRGB' DisplayName='OpenRGB' Description='OpenRGB SDK Server' Start='auto' Account='[SERVICEACCOUNT]' Password='[SERVICEPASSWORD]' ErrorControl='normal'/>\r\n"
121159XML_FILE+=" <ServiceControl Id='StartService' Start='install' Stop='both' Remove='uninstall' Name='OpenRGB' Wait='yes'/>\r\n"
122160XML_FILE+=" </Component>\r\n"
@@ -131,12 +169,13 @@ XML_FILE+=" <RegistryValue Root='HKCU' Key='Software\[Manufac
131169XML_FILE+=" </Component>\r\n"
132170XML_FILE+=" </Directory>\r\n"
133171XML_FILE+=" </Directory>\r\n"
134- XML_FILE+=" <Feature Id='Complete' Title='${PRODUCTNAME} ' Description='Install all ${PRODUCTNAME} files.' Display='expand' Level='1' ConfigurableDirectory='INSTALLDIR'>\r\n"
135- XML_FILE+=" <Feature Id='${PRODUCTNAME} Complete' Title='${PRODUCTNAME} ' Description='The complete package.' Level='1' AllowAdvertise='no' InstallDefault='local'>\r\n"
136- XML_FILE+=" <ComponentRef Id='${PRODUCTNAME} Files'/>\r\n"
172+ XML_FILE+=" <Feature Id='${PRODUCTNAME} Application' Title='${PRODUCTNAME} ' Description='Install the ${PRODUCTNAME} application files.' Level='1' AllowAdvertise='no' ConfigurableDirectory='INSTALLDIR' InstallDefault='local'>\r\n"
173+ XML_FILE+=" <ComponentRef Id='${PRODUCTNAME} Files'/>\r\n"
137174XML_FILE+=" ${COMPONENTS} \r\n"
138- XML_FILE+=" <ComponentRef Id='ProgramMenuShortcut'/>\r\n"
139- XML_FILE+=" </Feature>\r\n"
175+ XML_FILE+=" <ComponentRef Id='ProgramMenuShortcut'/>\r\n"
176+ XML_FILE+=" </Feature>\r\n"
177+ XML_FILE+=" <Feature Id='${PRODUCTNAME} RegisterService' Title='${PRODUCTNAME} ' Description='Register ${PRODUCTNAME} as a system service.' Display='expand' Level='2' ConfigurableDirectory='INSTALLDIR'>\r\n"
178+ XML_FILE+=" <ComponentRef Id='${PRODUCTNAME} Service'/>\r\n"
140179XML_FILE+=" </Feature>\r\n"
141180XML_FILE+=" </Product>\r\n"
142181XML_FILE+=" </Wix>"
0 commit comments