VirtualBox

Changeset 81583 in vbox for trunk/src/VBox/Installer/win


Ignore:
Timestamp:
Oct 30, 2019 11:16:43 AM (5 years ago)
Author:
vboxsync
Message:

Windows host installer: Added a VBOX_INSTALLER_QUICK define for building the installer with most optional stuff left out; dramatically speeds up (local) building and is useful for testing the actual installer mechanics. Added more defines for better modularizing the installer components.

This also fixes starting VirtualBox with merge modules building enabled by going back to the low tech solution (path quotes).

Location:
trunk/src/VBox/Installer/win
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Installer/win/Makefile.kmk

    r81568 r81583  
    3636endif
    3737
    38 
     38#
     39# Profile for quickly testing the actual mechanisms of our installer.
     40# This leaves out most of the optional stuff to make compilation / linking much
     41# faster for development cycles. Tweak to your likings if needed.
     42#
     43ifdef VBOX_INSTALLER_QUICK
     44 VBOX_INSTALLER_LANGUAGES    := en_US
     45 VBOX_WITH_ADDITIONS_PACKING :=
     46 VBOX_WITH_DEBUGGER_GUI          :=
     47 VBOX_WITH_EFIFW_PACKING     :=
     48 VBOX_WITH_EXTPACK                       :=
     49 VBOX_WITH_NETADP            :=
     50 VBOX_WITH_NETFLT            :=
     51 VBOX_WITH_PYTHON            :=
     52 VBOX_WITH_SDS                   :=
     53 VBOX_WITH_WEBSERVICES       :=
     54 VBOX_WITH_UNATTENDED        :=
     55 VBOX_WITH_DOCS_PACKING      :=
     56 VBOX_WITH_QTGUI                 :=
     57 VBOX_WITH_USB               :=
     58 VBOX_WITH_VBOX_IMG                  :=
     59 VBOX_WITH_VBOXSDL           :=
     60endif
    3961
    4062#
     
    6183# List of merge modules to use.
    6284#
    63 VBOX_INSTALLER_MERGE_MODULES = App USB NetAdp NetFlt NetAdp6 NetLwf Python
     85ifndef VBOX_INSTALLER_MERGE_MODULES
     86 VBOX_INSTALLER_MERGE_MODULES = App
     87 ifdef VBOX_WITH_NETADP
     88  VBOX_INSTALLER_MERGE_MODULES += NetAdp NetAdp6
     89 endif
     90 ifdef VBOX_WITH_NETFLT
     91  VBOX_INSTALLER_MERGE_MODULES += NetLwf NetFlt
     92 endif
     93 ifdef VBOX_WITH_USB
     94  VBOX_INSTALLER_MERGE_MODULES += USB
     95 endif
     96 ifdef VBOX_WITH_PYTHON
     97  VBOX_INSTALLER_MERGE_MODULES += Python
     98 endif
     99endif
    64100ifeq ($(KBUILD_TARGET_ARCH),amd64)
    65101 VBOX_INSTALLER_MERGE_MODULES += COM32On64
     
    625661                -E 'VBOX_WITH_MIDL_PROXY_STUB=$(if $(VBOX_WITH_MIDL_PROXY_STUB),yes,no)' \
    626662                -E 'VBOX_WITH_MSM_INSTALL=$(if-expr defined(VBOX_WITH_MSM_INSTALL),yes,no)' \
     663                -E 'VBOX_WITH_NETADP=$(if $(VBOX_WITH_NETADP),yes,no)' \
    627664                -E 'VBOX_WITH_NETFLT=$(if $(VBOX_WITH_NETFLT),yes,no)' \
    628665                -E 'VBOX_WITH_PYTHON=$(if $(VBOX_WITH_PYTHON),yes,no)' \
     
    636673                -E 'VBOX_WITH_SDS=$(if $(VBOX_WITH_SDS),yes,no)' \
    637674                -E 'VBOX_WITH_UNATTENDED=$(if $(VBOX_WITH_UNATTENDED),yes,no)' \
     675                -E 'VBOX_WITH_USB=$(if $(VBOX_WITH_USB),yes,no)' \
    638676                -E 'VBOX_WITH_VBOX_IMG=$(if $(VBOX_WITH_VBOX_IMG),yes,no)' \
     677                -E 'VBOX_WITH_VBOXSDL=$(if $(VBOX_WITH_VBOXSDL),yes,no)' \
    639678                -E 'BUILD_TYPE=$(KBUILD_TYPE)' \
    640679                -E 'BUILD_TARGET_ARCH=$(KBUILD_TARGET_ARCH)' \
     680                -E 'VBOX_INSTALLER_QUICK=$(VBOX_INSTALLER_QUICK)' \
    641681                -E 'VBOX_VCC_TOOL_STEM=$(VBOX_VCC_TOOL_STEM)' \
    642682                -- \
     
    773813                -E 'VBOX_WITH_MIDL_PROXY_STUB=$(if $(VBOX_WITH_MIDL_PROXY_STUB),yes,no)' \
    774814                -E 'VBOX_WITH_MSM_INSTALL=$(if-expr defined(VBOX_WITH_MSM_INSTALL),yes,no)' \
     815                -E 'VBOX_WITH_NETADP=$(if $(VBOX_WITH_NETADP),yes,no)' \
    775816                -E 'VBOX_WITH_NETFLT=$(if $(VBOX_WITH_NETFLT),yes,no)' \
    776817                -E 'VBOX_WITH_PYTHON=$(if $(VBOX_WITH_PYTHON),yes,no)' \
     
    785826                -E 'VBOX_WITH_UNATTENDED=$(if $(VBOX_WITH_UNATTENDED),yes,no)' \
    786827                -E 'VBOX_WITH_VBOX_IMG=$(if $(VBOX_WITH_VBOX_IMG),yes,no)' \
     828                -E 'VBOX_WITH_VBOXSDL=$(if $(VBOX_WITH_VBOXSDL),yes,no)' \
    787829                -E 'BUILD_TYPE=$(KBUILD_TYPE)' \
    788830                -E 'BUILD_TARGET_ARCH=$(KBUILD_TARGET_ARCH)' \
     831                -E 'VBOX_INSTALLER_QUICK=$(VBOX_INSTALLER_QUICK)' \
    789832                -E 'VBOX_VCC_TOOL_STEM=$(VBOX_VCC_TOOL_STEM)' \
    790833                -- \
  • trunk/src/VBox/Installer/win/UserInterface.wxi

    r71308 r81583  
    386386                <Text>!(loc.Customize2Dlg_Desc)</Text>
    387387            </Control>
     388<?if $(env.VBOX_WITH_QTGUI) = "yes" ?>
    388389            <!-- Note the gray background behind the checkboxes. Unfortunately there's no easy way to
    389390                 fix this, without fixing it in the WiX source code. Because the control's background
     
    409410                <Text>!(loc.Customize2Dlg_RegisterFileExtensions)</Text>
    410411            </Control>
     412<?endif?> <!-- VBOX_WITH_QTGUI -->
    411413            <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17"
    412414                Default="yes" Cancel="yes" Text="!(loc.ButtonText_Next)">
  • trunk/src/VBox/Installer/win/VBoxMergeApp.wxi

    r81184 r81583  
    406406<?endif ?>
    407407
    408     <!-- SDL plugins -->
     408<?if $(env.VBOX_WITH_VBOXSDL) = "yes" ?>
     409    <!-- SDL frontend -->
    409410    <Component Id="cp_VBoxSDLBinaries" Guid="F09D5FD9-E176-42B0-90A9-481BB18B0CB4"
    410411               Win64="$(var.Property_Win64)">
    411412        <File Id="file_VBoxSDL.exe" Name="VBoxSDL.exe"
    412413              Source="$(env.PATH_OUT)\bin\VBoxSDL.exe" />
    413 <?if $(env.VBOX_WITH_HARDENING) = "yes" ?>
    414         <File Id="file_VBoxSDL.dll" Name="VBoxSDL.dll"
    415               Source="$(env.PATH_OUT)\bin\VBoxSDL.dll">
    416         </File>
    417 <?endif ?>
     414    <?if $(env.VBOX_WITH_HARDENING) = "yes" ?>
     415            <File Id="file_VBoxSDL.dll" Name="VBoxSDL.dll"
     416                  Source="$(env.PATH_OUT)\bin\VBoxSDL.dll">
     417            </File>
     418    <?endif ?>
    418419        <File Id="file_SDL.dll" Name="SDL.dll"
    419420              Source="$(env.PATH_OUT)\bin\SDL.dll" />
    420 <?if $(env.VBOX_WITH_SECURELABEL) = "yes" ?>
    421         <File Id="file_SDL_ttf.dll" Name="SDL_ttf.dll"
    422               Source="$(env.PATH_OUT)\bin\SDL_ttf.dll" />
    423 <?endif?>
    424     </Component> <!-- SDL plugins -->
     421    <?if $(env.VBOX_WITH_SECURELABEL) = "yes" ?>
     422            <File Id="file_SDL_ttf.dll" Name="SDL_ttf.dll"
     423                  Source="$(env.PATH_OUT)\bin\SDL_ttf.dll" />
     424    <?endif?>
     425    </Component> <!-- SDL frontend -->
     426<?endif ?>
    425427
    426428<?if $(env.VBOX_WITH_WEBSERVICES) = "yes" ?>
  • trunk/src/VBox/Installer/win/VirtualBox.wxs

    r81434 r81583  
    2626        <?define Property_VBoxMergeCOM32On64 = "$(env.VBOX_WIN_INST_MERGE_COM32ON64)" ?>
    2727    <?endif ?>
    28     <?define Property_VBoxMergeUSB = "$(env.VBOX_WIN_INST_MERGE_USB)" ?>
     28    <?if $(env.VBOX_WITH_USB) = "yes" ?>
     29        <?define Property_VBoxMergeUSB = "$(env.VBOX_WIN_INST_MERGE_USB)" ?>
     30    <?endif ?>
    2931    <?if $(env.VBOX_WITH_NETFLT) = "yes" ?>
    3032        <?define Property_VBoxMergeNetworkFlt = "$(env.VBOX_WIN_INST_MERGE_NETFLT)" ?>
    3133    <?endif ?>
    32     <?define Property_VBoxMergeNetworkAdp = "$(env.VBOX_WIN_INST_MERGE_NETADP)" ?>
     34    <?if $(env.VBOX_WITH_NETADP) = "yes" ?>
     35        <?define Property_VBoxMergeNetworkAdp  = "$(env.VBOX_WIN_INST_MERGE_NETADP)" ?>
     36        <?define Property_VBoxMergeNetworkAdp6 = "$(env.VBOX_WIN_INST_MERGE_NETADP6)" ?>
     37    <?endif ?>
    3338    <?if $(env.VBOX_WITH_NETFLT) = "yes" ?>
    3439        <?define Property_VBoxMergeNetworkLwf = "$(env.VBOX_WIN_INST_MERGE_NETLWF)" ?>
    3540    <?endif ?>
    36     <?define Property_VBoxMergeNetworkAdp6 = "$(env.VBOX_WIN_INST_MERGE_NETADP6)" ?>
    3741    <?if $(env.VBOX_WITH_PYTHON) = "yes" ?>
    3842        <?define Property_VBoxMergePython = "$(env.VBOX_WIN_INST_MERGE_PYTHON)" ?>
     
    227231    </Condition>-->
    228232
    229     <CustomAction Id="ca_StartVBox" FileKey="file_VirtualBox.exe" ExeCommand="" Return="asyncNoWait" Impersonate="yes" />
     233    <!-- Note: When we don't include FE/Qt, we just start *something* (e.g. Windows' calc.exe) to see if the custom action works. -->
     234<?if $(env.VBOX_WITH_MSM_INSTALL) = "no" ?>
     235    <?if $(env.VBOX_WITH_QTGUI) = "yes" ?>
     236        <CustomAction Id="ca_StartVBox" FileKey="file_VirtualBox.exe" ExeCommand="" Return="asyncNoWait" Impersonate="yes" />
     237    <?else ?>
     238        <CustomAction Id="ca_StartVBox" Directory="INSTALLDIR" ExeCommand='"[INSTALLDIR]\VBoxBugReport.exe"' Return="asyncNoWait" Impersonate="yes" />
     239    <?endif ?>
     240<?else ?>
     241    <?if $(env.VBOX_WITH_QTGUI) = "yes" ?>
     242        <CustomAction Id="ca_StartVBox" Directory="file_VBoxBugReport.exe" ExeCommand="" Return="asyncNoWait" Impersonate="yes" />
     243    <?else ?>
     244        <CustomAction Id="ca_StartVBox" Directory="INSTALLDIR" ExeCommand='"[INSTALLDIR]\VBoxBugReport.exe"' Return="asyncNoWait" Impersonate="yes" />
     245    <?endif ?>
     246<?endif ?>
     247
    230248    <CustomAction Id="ca_CheckSerial" BinaryKey="VBoxInstallHelper" DllEntry="CheckSerial" Impersonate="no"/>
    231249
     
    273291<?endif ?>
    274292                <Directory Id="dir_Drivers" Name="drivers">
     293<?if $(env.VBOX_WITH_USB) = "yes" ?>
    275294                    <Directory Id="dir_USB" Name="USB">
    276 <?if $(env.VBOX_WITH_MSM_INSTALL) = "yes" ?>
     295    <?if $(env.VBOX_WITH_MSM_INSTALL) = "yes" ?>
    277296                        <Merge Id="msm_VBoxUSB" Language="!(loc.LANG)" SourceFile="$(var.Property_VBoxMergeUSB)" DiskId="1" />
    278 <?else ?>
     297    <?else ?>
    279298                        <Directory Id="msm_VBoxUSBFolder" FileSource=".">
    280299                            <?include VBoxMergeUSB.wxi ?>
    281300                        </Directory>
    282 <?endif ?>
     301    <?endif ?>
    283302                    </Directory>
     303<?endif ?>
    284304                    <Directory Id="dir_Network" Name="network">
    285305<?if $(env.VBOX_WITH_NETFLT) = "yes" ?>
     
    296316                        </Directory>
    297317<?endif ?>
     318<?if $(env.VBOX_WITH_NETADP) = "yes" ?>
    298319                        <Directory Id="dir_NetAdp" Name="netadp">
    299 <?if $(env.VBOX_WITH_MSM_INSTALL) = "yes" ?>
     320    <?if $(env.VBOX_WITH_MSM_INSTALL) = "yes" ?>
    300321                            <Merge Id="msm_VBoxNetworkAdp" Language="!(loc.LANG)" SourceFile="$(var.Property_VBoxMergeNetworkAdp)" DiskId="1">
    301322                            <ConfigurationData Name="passedNetworkType" Value="[NETWORKTYPE]"/>
    302323                            </Merge>
    303 <?else ?>
     324    <?else ?>
    304325                            <Directory Id="msm_VBoxNetworkAdpFolder" FileSource=".">
    305326                                <?include VBoxMergeNetAdp.wxi ?>
    306327                            </Directory>
    307 <?endif ?>
     328    <?endif ?>
    308329                        </Directory>
     330<?endif ?>
    309331
    310332<?if $(env.VBOX_WITH_NETFLT) = "yes" ?>
     
    321343                        </Directory>
    322344<?endif ?>
     345
     346<?if $(env.VBOX_WITH_NETADP) = "yes" ?>
    323347                        <Directory Id="dir_NetAdp6" Name="netadp6">
    324 <?if $(env.VBOX_WITH_MSM_INSTALL) = "yes" ?>
     348    <?if $(env.VBOX_WITH_MSM_INSTALL) = "yes" ?>
    325349                            <Merge Id="msm_VBoxNetworkAdp6" Language="!(loc.LANG)" SourceFile="$(var.Property_VBoxMergeNetworkAdp6)" DiskId="1">
    326350                            <ConfigurationData Name="passedNetworkType" Value="[NETWORKTYPE]"/>
    327351                            </Merge>
    328 <?else ?>
     352    <?else ?>
    329353                            <Directory Id="msm_VBoxNetworkAdp6Folder" FileSource=".">
    330354                                <?include VBoxMergeNetAdp6.wxi ?>
    331355                            </Directory>
    332 <?endif ?>
     356    <?endif ?>
    333357                        </Directory>
     358<?endif ?>
    334359                    </Directory>
    335360                </Directory>
     
    347372                </Directory>
    348373<?endif ?>
     374
     375<?if $(env.VBOX_WITH_QTGUI) = "yes" ?>
    349376                <!-- Set up special directory IDs for referencing to the start menu
    350377                     or the Quick Launch bar.
     
    393420                                   Type="string" Value="installed" KeyPath="yes" />
    394421                </Component>
     422<?endif ?>
    395423                </Directory>
    396424            </Directory>
     
    405433             ConfigurableDirectory="INSTALLDIR" TypicalDefault="install" Display="expand"
    406434             Absent="disallow" AllowAdvertise="no" >
     435
     436<?if $(env.VBOX_WITH_QTGUI) = "yes" ?>
    407437        <!-- Components which are handled only by this installer itself -->
    408438        <ComponentRef Id="cp_StartMenuVBox" />
    409439        <ComponentRef Id="cp_DesktopShortcut" />
    410440        <ComponentRef Id="cp_QuickLaunchVBox" />
     441<?endif ?>
    411442        <!-- Components handled either by the installer itself or
    412443             the merge module -->
     
    448479        <ComponentRef Id="cp_VBoxPyMod" />
    449480    <?endif ?>
    450 
    451     <ComponentRef Id="cp_VBoxSDLBinaries" />
     481    <?if $(env.VBOX_WITH_VBOXSDL) = "yes" ?>
     482        <ComponentRef Id="cp_VBoxSDLBinaries" />
     483    <?endif ?>
    452484    <?if $(env.VBOX_WITH_WEBSERVICES) = "yes" ?>
    453485        <ComponentRef Id="cp_VBoxWebService" />
     
    465497<?endif ?>
    466498
     499<?if $(env.VBOX_WITH_USB) = "yes" ?>
    467500        <Feature Id="VBoxUSB" Title="VirtualBox USB Support" Level="1"
    468501                 Description="!(loc.VB_USBDriver)"
    469502                 ConfigurableDirectory="INSTALLDIR" TypicalDefault="install" Display="expand"
    470503                 Absent="allow" AllowAdvertise="no" >
    471 <?if $(env.VBOX_WITH_MSM_INSTALL) = "yes" ?>
     504    <?if $(env.VBOX_WITH_MSM_INSTALL) = "yes" ?>
    472505            <MergeRef Id="msm_VBoxUSB" />
    473 <?else ?>
    474     <?if $(env.VBOX_SIGNING_MODE) != none ?>
     506    <?else ?>
     507        <?if $(env.VBOX_SIGNING_MODE) != none ?>
    475508            <ComponentRef Id="cp_USBFilterDriverCat_PreW10" />
    476509            <ComponentRef Id="cp_USBFilterDriverCat_W10" />
    477     <?endif ?>
     510        <?endif ?>
    478511            <ComponentRef Id="cp_USBFilterDriver" />
    479     <?if $(env.VBOX_SIGNING_MODE) != none ?>
     512        <?if $(env.VBOX_SIGNING_MODE) != none ?>
    480513            <ComponentRef Id="cp_USBDeviceDriverCat_PreW10" />
    481514            <ComponentRef Id="cp_USBDeviceDriverCat_W10" />
    482     <?endif ?>
     515        <?endif ?>
    483516            <ComponentRef Id="cp_USBDeviceDriver" />
    484 <?endif ?>
     517    <?endif ?>
    485518        </Feature>
     519<?endif ?>
    486520
    487521<?if $(env.VBOX_WITH_NETFLT) = "yes" ?>
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette