The feature "Select Components" is available on the page Interface \ Custom. This allows the user to select components (files/folders) to install, or perform custom tasks during the installation.
Click "Add Standard Components" to add two main components: "Main Application" - (all files from Source Directory), and "Additional Files" (files that were added to project using buttons "Add Files/Folder". You can change component names.
You can also add any file(s)/folder(s) as a component. By default, all components are installed during the installation. If the user unselect the component, then associated object (specified in the Link field) will be skipped.
In the Link field you can specify standard objects ($AllFiles - all files from the project; $SourceDir - all files from Source Directory; $AddonFiles - files that were added to project using buttons "Add Files/Folder"), or any file(s) and folder(s). To specify several files/folders for one component, add them in the Link field separated by semicolon (;), e.g.: <InstallDir>\File1.exe;<InstallDir>\File2.exe
In the Size field specify the size of the component. For Standard Components specify $size to automatically calculate the size. For other components type the size in bytes.
To perform a custom task leave the Link field empty. The state (selected / unselected) of the component is stored in the variable <ComponentX>, where X is an index of the component in the component list: first component has index 1, variable <Component1>. If the component is selected, then this variable contains 1, otherwise 0.
To check the state of the component use System \ Commands.
Example #1: if first component is selected, then launch File1.exe from installation directory:
File: <SystemDir>\cmd.exe Parameters: /C IF /I <Component1>==1 "<InstallDir>\File1.exe" Timing: After Installation Wait: Yes
Example #2: if second component is selected, then copy file File.exe (from temp directory of the installation <SetupTempDir>) to the installation directory:
File: <SystemDir>\cmd.exe Parameters: /C IF /I <Component2>==1 (COPY /Y "<SetupTempDir>\File.exe" "<InstallDir>\File.exe") Timing: After Installation Wait: Yes
In the fields Enabled and Checked can be used variables. State of these fields can be set by the existence of the Registry value. In the variable settings specify the registry key and value, and in the Default Data type Yes. If the variable is read, then the component is not checked; if not, the component is checked.