Main Site Contents Up Previous Next


The Executables tree node opens the project executables panel. This lists the executables in your project. The panel buttons allow you to add and remove executables.

Add Executable

Add a new executable based on one of the scripts in your project.

Remove Executable

Remove the selected executable from the project.

Selecting a specific executable opens the executable detail panel.


Executable Name

The name of the executable that will be produced.

Executable Type

The type of executable you wish to produce. You can select from gui or console.

On Windows, this choice determines whether your executable runs with a console or gui subsystem. On Windows, console applications will always open a new visible console window if executed from Explorer or the Start Menu.

On MacOSX, gui executables will operate correctly if that option is selected. Note that this is not the same as creating a MacOSX App Bundle. Cava Packager will create gui executables that operate correctly when packaged either in a standard 'unix' like layout or as MacOSX App Bundles.

On Linux, the only effect this setting currently has is at application startup. If basic application startup fails due to, for example, missing files, Cava Packager packaged executables will output a generic error message advising that the basic installation has not worked. If your executable is marked as a GUI executable, the application stub will attempt to display a dialog box with this message in addition to printing the message to stdout.

Runs Script Named

The script that this executable will run. It must be one of the scripts selected for inclusion in the application package. Although you may include as many scripts in your projects as you wish, any single script can only be packaged as one executable.

Executable Class Id

This class id is used when creating the executable.

Environment Handling - Use Safe PutEnv

Check this option to cause PL_use_safe_putenv = 1 in the executable. If unchecked PL_use_safe_putenv = 0.

When your packaged executables run, Cava Packager must alter the environent before loading the Perl Interpreter to remove entries such as PERL5LIB etc. It is possible that this may cause problems with particular modules on particular version of operating systems. If your executables have problems on exit with messages similar to Free to wrong pool aa1e78 not 89000000 during global destruction despite no apparant use of threads in your application then you may be able to fix this by checking this option. You should not check this option if you are not experiencing any issues.

Executable Location

Only available on MS Windows. Check this option to place the executable in your distribution root folder rather than the 'bin' sub directory.

If you check this option you should be careful to use the correct Cava::Packager method when determining 'bin' path. Cava::Packager::GetBinPath() always returns the bin path for the currently running executable. So the absolute location depends on whether or not you checked this option before your build. Cava::Packager::GetStandardBinPath() alwasy returns the standard bin path ( bin sub-directory ) for your packaged distribution regardless of the location of the current executable.

See Also : Private Assemblies

To run another packaged executable script, Cava::Packager::GetScriptCommand() will return the correct path regardless of the packaged location.

Terminal Output - Redirect STDOUT and STDERR to /dev/null

Check this option to redirect terminal output to /dev/null. (not available on MS Windows)

For a GUI application it often does not make sense to have stderr and stdout printed to the terminal. Third party shared libraries may cause irrelvant output to be sent to the terminal. You may be able to avoid this by redirecting STDERR and STDOUT.

When executables are run from the Diagnostics and Testing Panel, or using a distributed diagnostic executable, output is not redirected.

File Description

The File Description is embedded in the executable and accessible at run time using Cava::Packager functions. On Windows it is also written to the executable version information structure.


On Windows you can select a .ico icon file to embed in the executable. Once selected the file is added to your stored icon resources. If you alter or edit the original source file you will have to import the new version into your icon resources and select it.


On Windows Cava Packager will embed an application manifest in the executable.

Application Name

The application name should take the form of a ProgId. There is probably no reason to alter the default created by Cava Packager.

Application Description

An optional description of the application. There is probably no reason to alter the default created by Cava Packager.

Common Controls Dependency

If your application has gui components you can ensure that the themed look for application controls introduced with Windows XP is provided by setting this dependency in the manifest. You may wish to uncheck this for console applications.

Required Execution Level

Select an execution level for your application from one of; asInvoker, requireAdministrator, highestAvailable.
Leave as 'asInvoker' unless you are familiar with the effects of selecting a different option.

Requires UI Access

Set the 'Requires UI Access' member of the manifest file. You should leave this set at the default - which is false.

Use Custom Manifest File

You can provide your own manifest file. In this case all above options are ignored and your custom manifest is embedded in the application. An invalid manifest may cause your application execution to fail or even cause operating system issues. Be sure to use a valid manifest file.

Contents Up Previous Next

Cava Packager Copyright © 2006-2012 Mark Dootson