Changeset 59390 in vbox for trunk/src/VBox/Installer/win
- Timestamp:
- Jan 19, 2016 1:29:44 AM (9 years ago)
- Location:
- trunk/src/VBox/Installer/win
- Files:
-
- 4 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Installer/win/Makefile.kmk
r59329 r59390 139 139 $(VBOX_WIN_INST_OUT_DIR)/VirtualBox.wixobj.dep \ 140 140 $(VBOX_WIN_INST_OUT_DIR)/VirtualBox_TypeLib.wxi \ 141 $(VBOX_WIN_INST_OUT_DIR)/VirtualBox_TypeLib_x86.wxi \ 142 $(VBOX_WIN_INST_OUT_DIR)/VirtualBox_ProxyStub.wxi \ 141 143 $(if $(VBOX_WITH_QTGUI),$(VBOX_WIN_INST_OUT_DIR)/VBoxGuiNLS.wxi) \ 142 144 $(VBOX_WIN_INST_OUT_DIR)/VBoxKey.wxi \ … … 146 148 $(VBOX_WIN_INST_OUT_DIR)/NLS/$(lang).mst \ 147 149 $(VBOX_WIN_INST_OUT_DIR)/VirtualBox_$(lang).wixobj \ 150 $(VBOX_WIN_INST_OUT_DIR)/VirtualBox_$(lang).wixobj.dep \ 151 $(VBOX_WIN_INST_OUT_DIR)/$(PACKAGE_NAME_LANG)_$(lang).wixpdb \ 148 152 $(VBOX_WIN_INST_OUT_DIR)/$(PACKAGE_NAME_LANG)_$(lang).msi) \ 149 153 $(VBOX_WIN_INST_OUT_DIR)/DirComponentsAndFiles_DTrace.wxi \ … … 520 524 -E 'VBOX_SIGNING_MODE=$(strip $(if $(VBOX_SIGNING_MODE),$(VBOX_SIGNING_MODE),none))' \ 521 525 -E 'VBOX_GUI_USE_QGL=$(if $(VBOX_GUI_USE_QGL),yes,no)' \ 526 -E 'VBOX_MIDL_PROXY_CLSID=$(VBOX_MIDL_PROXY_CLSID)' \ 522 527 $(if $(VBOX_WITH_MSM_INSTALL), \ 523 528 $(foreach module,$(VBOX_INSTALLER_MERGE_MODULES), \ … … 608 613 -E 'VBOX_SIGNING_MODE=$(strip $(if $(VBOX_SIGNING_MODE),$(VBOX_SIGNING_MODE),none))' \ 609 614 -E 'VBOX_GUI_USE_QGL=$(if $(VBOX_GUI_USE_QGL),yes,no)' \ 615 -E 'VBOX_MIDL_PROXY_CLSID=$(VBOX_MIDL_PROXY_CLSID)' \ 610 616 -E 'VBOX_WINDOWS_ICON_FILE=$(subst /,\,$(VBOX_WINDOWS_ICON_FILE))' \ 611 617 -E 'VBOX_WITH_32_ON_64_MAIN_API=$(if $(VBOX_WITH_32_ON_64_MAIN_API),yes,no)' \ … … 656 662 # 657 663 $(VBOX_WIN_INST_OUT_DIR)/VirtualBox_TypeLib.wxi: \ 658 $(PATH_SUB_CURRENT)/ VirtualBox_TypeLib.xsl\664 $(PATH_SUB_CURRENT)/$(if-expr defined(VBOX_WITH_MIDL_PROXY_STUB),VirtualBox_TypeLibWithInterfaces.xsl,VirtualBox_TypeLib.xsl) \ 659 665 $(VBOX_XIDL_FILE) \ 660 666 $(MAKEFILE) \ 661 $(if-expr defined(VBOX_WITH_MIDL_PROXY_STUB),$(PATH_STAGE_BIN)/VBoxProxyStub$(if-expr "$(KBUILD_TARGET_ARCH)" == "amd64",-x86,).dll,) \662 667 | $$(dir $$@) 663 ifndef VBOX_WITH_MIDL_PROXY_STUB 664 $(VBOX_XSLTPROC) -o $@ $< $(VBOX_XIDL_FILE) 665 else 666 $(VBOX_XSLTPROC) -o "[email protected]" $< $(VBOX_XIDL_FILE) 667 $(VBOX_PATH_WIX)/heat.exe \ 668 file $(PATH_STAGE_BIN)/VBoxProxyStub$(if-expr "$(KBUILD_TARGET_ARCH)" == "amd64",-x86,).dll \ 669 -nologo -o [email protected] 670 $(SED) -e '/\<Interface Id/!d' -e 's/^[[:space:]]*/ /' [email protected] --output [email protected] 671 $(SED) -e '/<\/AppId>/{' -e 'r [email protected]' -e '}' "[email protected]" --output $@ 672 $(RM) -f -- "[email protected]" "[email protected]" "[email protected]" 673 endif 668 $(VBOX_XSLTPROC) \ 669 $(if-expr defined(VBOX_WITH_MIDL_PROXY_STUB),--stringparam "a_sProxyStubClsid" '$(VBOX_MIDL_PROXY_CLSID)',) \ 670 -o $@ $< $(VBOX_XIDL_FILE) 674 671 675 672 $(VBOX_WIN_INST_OUT_DIR)/VirtualBox_TypeLib_x86.wxi: \ 676 $(PATH_SUB_CURRENT)/ VirtualBox_TypeLib.xsl\673 $(PATH_SUB_CURRENT)/$(if-expr defined(VBOX_WITH_MIDL_PROXY_STUB),VirtualBox_TypeLibWithInterfaces.xsl,VirtualBox_TypeLib.xsl) \ 677 674 $(VBOX_XIDL_FILE) \ 678 $(if-expr defined(VBOX_WITH_MIDL_PROXY_STUB),$(PATH_STAGE_BIN)/VBoxProxyStub-x86.dll,) \679 675 | $$(dir $$@) 680 ifndef VBOX_WITH_MIDL_PROXY_STUB 681 $(VBOX_XSLTPROC) --stringparam "a_sTarget" "VBoxClient-x86" -o [email protected] $< $(VBOX_XIDL_FILE) 682 $(SED) -e 's/VBoxC/VBoxClient_x86/g' --output $@ [email protected] 683 $(RM) -f [email protected] 684 else 685 $(VBOX_XSLTPROC) --stringparam "a_sTarget" "VBoxClient-x86" -o "[email protected]" $< $(VBOX_XIDL_FILE) 686 $(SED) -e 's/VBoxC/VBoxClient_x86/g' --output "[email protected]" "[email protected]" 687 $(VBOX_PATH_WIX)/heat.exe \ 688 file $(PATH_STAGE_BIN)/VBoxProxyStub-x86.dll \ 689 -nologo -o [email protected] 690 $(SED) -e '/\<Interface Id/!d' -e 's/^[[:space:]]*/ /' [email protected] --output [email protected] 691 $(SED) -e '/<\/AppId>/{' -e 'r [email protected]' -e '}' [email protected] --output $@ 692 $(RM) -f -- "[email protected]" "[email protected]" "[email protected]" "[email protected]" "[email protected]" 693 endif 676 $(VBOX_XSLTPROC) --stringparam "a_sTarget" "VBoxClient-x86" \ 677 $(if-expr defined(VBOX_WITH_MIDL_PROXY_STUB),--stringparam "a_sProxyStubClsid" '$(VBOX_MIDL_PROXY_CLSID)',) \ 678 -o $@ $< $(VBOX_XIDL_FILE) 694 679 695 680 # -
trunk/src/VBox/Installer/win/VBoxMergeApp.wxi
r59363 r59390 64 64 </File> 65 65 66 <!-- Note: This file ID *must not* be changed because of our typelib template generation file! -->67 <?if $(env.VBOX_WITH_MIDL_PROXY_STUB) != "yes" ?>68 66 <!-- We set KeyPath on this file to instruct TypeLib to read the TLB resource from it 69 67 and create appropriate Interface registry entries. Note that the same TLB is present 70 68 in VBoxSVC.exe - it's just a matter of choice which one to use --> 69 <!-- Note: This file ID *must not* be changed because of our typelib template generation file! --> 71 70 <File Id="VBoxC" Name="VBoxC.dll" 72 71 Source="$(env.PATH_OUT)\bin\VBoxC.dll" KeyPath="yes"> 73 72 </File> 74 <?else?> 75 <File Id="VBoxC" Name="VBoxC.dll" 76 Source="$(env.PATH_OUT)\bin\VBoxC.dll" KeyPath="no"> 77 </File> 78 79 <!-- We put the typelib in the proxy stub since it's always required to be loaded and is 80 significantly smaller than VBoxC.dll. So, KeyPath for this element instead of the above. --> 73 74 <?if $(env.VBOX_WITH_MIDL_PROXY_STUB) != "yes" ?> 75 <!-- Include the auto-generated TypeLib block --> 76 <?include $(env.PATH_TARGET)\VirtualBox_TypeLib.wxi ?> 77 <?endif?> 78 </Component> 79 80 <?if $(env.VBOX_WITH_MIDL_PROXY_STUB) = "yes" ?> 81 82 <Component Id="cp_ProxyStub" Guid="CDD09BA4-8D87-4383-DCA6-1CCCF9D11091" Win64="$(var.Property_Win64)"> 83 <?if $(env.BUILD_TARGET_ARCH) != "x86" ?> 84 <!-- AMD64: Only install this proxy stub DLL on Windows 7 and later (OLE32 imports). --> 85 <Condition><![CDATA[(VersionNT >= 610)]]></Condition> 86 <?endif ?> 81 87 <File Id="file_VBoxProxyStub" Name="VBoxProxyStub.dll" KeyPath="yes" 82 88 Source="$(env.PATH_OUT)\bin\VBoxProxyStub.dll"> 83 <!-- Note! 0bb3b78c-1807-4249-5ba5-ea42d66af0bf is hardcoded in Main/Makefile.kmk and VBoxMergeCOM32On64.wxi --> 84 <Class Id="{0bb3b78c-1807-4249-5ba5-ea42d66af0bf}" Context="InprocServer32" 85 Description="PSFactoryBuffer" ThreadingModel="both" > 86 </Class> 87 </File> 88 <?endif?> 89 90 <!-- Include the auto-generated TypeLib block --> 89 <Class Id="$(env.VBOX_MIDL_PROXY_CLSID)" Context="InprocServer32" 90 Description="PSFactoryBuffer" ThreadingModel="both" /> 91 </File> 91 92 <?include $(env.PATH_TARGET)\VirtualBox_TypeLib.wxi ?> 92 93 </Component> 93 </Component> 94 95 <?if $(env.BUILD_TARGET_ARCH) != "x86" ?> 96 <Component Id="cp_ProxyStubLegacy" Guid="97F12055-5B6D-481C-E8CD-F41D8C733280" Win64="$(var.Property_Win64)"> 97 <!-- AMD64: Only install this proxy stub DLL pre-Windows 7 (legacy NDR stuff). --> 98 <Condition><![CDATA[(VersionNT < 610)]]></Condition> 99 <File Id="file_VBoxProxyStubLegacy" Name="VBoxProxyStubLegacy.dll" KeyPath="yes" 100 Source="$(env.PATH_OUT)\bin\VBoxProxyStubLegacy.dll"> 101 <Class Id="$(env.VBOX_MIDL_PROXY_CLSID)" Context="InprocServer32" 102 Description="PSFactoryBuffer" ThreadingModel="both" /> 103 </File> 104 <?include $(env.PATH_TARGET)\VirtualBox_TypeLib.wxi ?> 105 </Component> 106 <?endif ?> 107 108 <?endif?> 94 109 95 110 <?include $(env.PATH_TARGET)\DirComponentsAndFiles_DTrace.wxi ?> -
trunk/src/VBox/Installer/win/VBoxMergeCOM32On64.wxi
r59363 r59390 34 34 <!-- Our key path, see VBoxMergeApp.wxi. --> 35 35 <File Id="file_VBoxProxyStub_x86" Name="VBoxProxyStub-x86.dll" KeyPath="yes" 36 Source="$(env.PATH_OUT)\bin\ VBoxProxyStub-x86.dll"36 Source="$(env.PATH_OUT)\bin\x86\VBoxProxyStub-x86.dll" 37 37 DiskId="$(var.Property_DiskIdCommon)"> 38 <!-- Note! 0bb3b78c-1807-4249-5ba5-ea42d66af0bf is hardcoded in Main/Makefile.kmk and VBoxMergeApp.wix --> 39 <Class Id="{0bb3b78c-1807-4249-5ba5-ea42d66af0bf}" Context="InprocServer32" 38 <Class Id="$(env.VBOX_MIDL_PROXY_CLSID)" Context="InprocServer32" 40 39 Description="PSFactoryBuffer" ThreadingModel="both" /> 41 40 </File> -
trunk/src/VBox/Installer/win/VirtualBox.wxs
r58793 r59390 399 399 <?endif ?> 400 400 <ComponentRef Id="cp_MainCOM" /> 401 <?if $(env.VBOX_WITH_MIDL_PROXY_STUB) = "yes" ?> 402 <ComponentRef Id="cp_ProxyStub" /> 403 <ComponentRef Id="cp_ProxyStubLegacy" /> 404 <?endif?> 401 405 <ComponentRef Id="cp_MainBinaries" /> 402 406 <?if $(env.VBOX_WITH_QTGUI) = "yes" ?> -
trunk/src/VBox/Installer/win/VirtualBox_TypeLibWithInterfaces.xsl
r59385 r59390 2 2 3 3 <!-- 4 * A template to generate a WiX include file that contains 5 * type library definitions for VirtualBox COM components 6 * from the generic interface definition expressed in XML. 7 8 Copyright (C) 2007-2015 Oracle Corporation 4 Generates a wiX include files with Interface elements for 5 the stuff in the proxy stub DLLs. 6 7 Copyright (C) 2007-2016 Oracle Corporation 9 8 10 9 This file is part of VirtualBox Open Source Edition (OSE), as … … 28 27 29 28 <xsl:param name="a_sTarget">all</xsl:param> 29 <xsl:param name="a_sProxyStubClsid">{0BB3B78C-1807-4249-5BA5-EA42D66AF0BF}</xsl:param> 30 <xsl:variable name="g_sProxyStubClsid" select="translate($a_sProxyStubClsid,'abcdef','ABCDEF')"/> 30 31 31 32 … … 40 41 <xsl:template match="/idl"> 41 42 <xsl:comment> 42 /* 43 * DO NOT EDIT! This is a generated file. 44 * 45 * WiX include script for the VirtualBox Type Library 46 * generated from XIDL (XML interface definition). 47 * 48 * Source : src/VBox/Main/idl/VirtualBox.xidl 49 * Generator : src/VBox/Installer/VirtualBox_TypeLib.xsl 50 * Arguments : a_sTarget=<xsl:value-of select="$a_sTarget"/> 51 */ 43 44 DO NOT EDIT! This is a generated file. 45 46 WiX include script for the VirtualBox Type Library 47 generated from XIDL (XML interface definition). 48 49 Source : src/VBox/Main/idl/VirtualBox.xidl 50 Generator : src/VBox/Installer/win/VirtualBox_Interfaces.xsl 51 Arguments : a_sTarget=<xsl:value-of select="$a_sTarget"/> 52 a_sProxyStubClsid=<xsl:value-of select="$a_sProxyStubClsid"/> 53 52 54 </xsl:comment> 53 55 <xsl:apply-templates/> … … 55 57 56 58 57 <!-- 58 * libraries 59 --> 60 <xsl:template match="idl/library"> 59 <!-- - - - - - - - - - - - - - - - - - - - - - - 60 Key for more efficiently looking up of parent interfaces. 61 - - - - - - - - - - - - - - - - - - - - - - --> 62 63 <xsl:key name="G_keyInterfacesByName" match="//interface[@name]" use="@name"/> 64 65 66 <!-- 67 Libraries. 68 --> 69 <xsl:template match="library"> 61 70 <Include> 62 71 <TypeLib> … … 80 89 </xsl:choose> 81 90 </AppId> 91 <xsl:apply-templates select="interface | if/interface"> 92 <xsl:sort select="translate(@uuid,'abcdef','ABCDEF')"/> 93 </xsl:apply-templates> 82 94 </TypeLib> 83 95 </Include> … … 86 98 87 99 <!-- 88 * classes100 Classes. 89 101 --> 90 102 <xsl:template match="library//module/class"> … … 92 104 <xsl:attribute name="Id"><xsl:value-of select="@uuid"/></xsl:attribute> 93 105 <xsl:attribute name="Description"><xsl:value-of select="@name"/> Class</xsl:attribute> 94 <xsl:attribute name="Server"><xsl:value-of select="../@name"/></xsl:attribute> 106 <xsl:attribute name="Server"> 107 <xsl:choose> 108 <xsl:when test="$a_sTarget = 'VBoxClient-x86' and ../@name = 'VBoxC'"><xsl:text>VBoxClient_x86</xsl:text></xsl:when> 109 <xsl:otherwise><xsl:value-of select="../@name"/></xsl:otherwise> 110 </xsl:choose> 111 </xsl:attribute> 95 112 <xsl:attribute name="Context"> 96 113 <xsl:choose> … … 145 162 146 163 <!-- 147 * eat everything else not explicitly matched 164 Interfaces. 165 --> 166 <xsl:template match="library/interface | library/if[@target='midl']/interface"> 167 <Interface> 168 <!-- Interface Id="{00C8F974-92C5-44A1-8F3F-702469FDD04B}" Name="IDHCPServer" ProxyStubClassId32="{0BB3B78C-1807-4249-5BA5-EA42D66AF0BF}" NumMethods="33" --> 169 <xsl:attribute name="Id"> 170 <xsl:text>{</xsl:text> 171 <xsl:value-of select="translate(@uuid,'abcdef','ABCDEF')"/> 172 <xsl:text>}</xsl:text> 173 </xsl:attribute> 174 <xsl:attribute name="Name"><xsl:value-of select="@name"/></xsl:attribute> 175 <xsl:attribute name="ProxyStubClassId32"><xsl:value-of select="$g_sProxyStubClsid"/></xsl:attribute> 176 <xsl:attribute name="NumMethods"><xsl:call-template name="fnCountMethods"/></xsl:attribute> 177 </Interface> 178 </xsl:template> 179 180 181 <!-- 182 Count the number of methods. This must match what midl.exe initializes 183 CInterfaceStubVtbl::header::DispatchTableCount with in VirtualBox_p.c! 184 --> 185 <xsl:template name="fnCountMethods"> 186 <xsl:variable name="sParent" select="@extends"/> 187 188 <!-- Count immediate methods and attributes by kind. --> 189 <xsl:variable name="cMethods" 190 select="count(child::method) 191 + count(child::if[@target='midl']/method)"/> 192 <xsl:variable name="cReadOnlyAttributes" 193 select="count(child::attribute[@readonly='yes']) 194 + count(child::if[@target='midl']/attribute[@readonly='yes'])"/> 195 <xsl:variable name="cReadWriteAttributes" 196 select="count(child::attribute[not(@readonly) or not(@readonly='yes')]) 197 + count(child::if[@target = 'midl']/attribute[not(@readonly) or not(@readonly='yes')])"/> 198 <xsl:variable name="cReservedMethods"> 199 <xsl:choose> 200 <xsl:when test="not(@reservedMethods)">0</xsl:when> 201 <xsl:otherwise><xsl:value-of select="@reservedMethods"/></xsl:otherwise> 202 </xsl:choose> 203 </xsl:variable> 204 <xsl:variable name="cReservedAttributes"> 205 <xsl:choose> 206 <xsl:when test="not(@reservedAttributes)">0</xsl:when> 207 <xsl:otherwise><xsl:value-of select="@reservedAttributes"/></xsl:otherwise> 208 </xsl:choose> 209 </xsl:variable> 210 211 <!-- Recursively figure out the parent --> 212 <xsl:variable name="cParent"> 213 <xsl:choose> 214 <xsl:when test="@extends = '$unknown'"> 215 <xsl:value-of select='7'/> 216 </xsl:when> 217 <xsl:when test="@extends = '$errorinfo'"> 218 <xsl:value-of select='8'/> <!-- check this one! --> 219 </xsl:when> 220 <xsl:otherwise> 221 <xsl:if test="count(key('G_keyInterfacesByName', $sParent)) != 1"> 222 <xsl:message terminate="yes">Couldn't find parent (<xsl:value-of select="$sParent"/>) to <xsl:value-of select="@name"/></xsl:message> 223 </xsl:if> 224 <xsl:for-each select="key('G_keyInterfacesByName', $sParent)"> 225 <xsl:call-template name="fnCountMethods"/> 226 </xsl:for-each> 227 </xsl:otherwise> 228 </xsl:choose> 229 </xsl:variable> 230 231 <!-- Compute the result. --> 232 <xsl:value-of select="$cMethods + $cReservedMethods + $cReadOnlyAttributes + ($cReadWriteAttributes * 2) + $cReservedAttributes + $cParent"/> 233 234 <!-- For debugging! --> 235 <xsl:if test="0"> 236 <xsl:message terminate="no"> 237 <xsl:text>Debug: cMethods=</xsl:text><xsl:value-of select="$cMethods"/> 238 <xsl:text> cReadOnlyAttributes=</xsl:text><xsl:value-of select="$cReadOnlyAttributes"/> 239 <xsl:text> cReadWriteAttributes=</xsl:text><xsl:value-of select="$cReadWriteAttributes"/> 240 <xsl:text> cReservedMethods=</xsl:text><xsl:value-of select="$cReservedMethods"/> 241 <xsl:text> cReservedAttributes=</xsl:text><xsl:value-of select="$cReservedAttributes"/> 242 <xsl:text> cParent=</xsl:text><xsl:value-of select="$cParent"/> 243 <xsl:text> name=</xsl:text><xsl:value-of select="@name"/> 244 <xsl:text> parent=</xsl:text><xsl:value-of select="$sParent"/> 245 </xsl:message> 246 </xsl:if> 247 </xsl:template> 248 249 250 251 <!-- 252 Eat everything else not explicitly matched. 148 253 --> 149 254 <xsl:template match="*"> … … 152 257 153 258 </xsl:stylesheet> 259
Note:
See TracChangeset
for help on using the changeset viewer.