Name Mangling of Library Members is Optional:Technical Specification

Introduction
This is the Technical Specification for the feature Name Mangling of library Members is Optional.

Selectively Name mangling of a VI
Currently the name mangling of the VI is done by DEAB Mangle VI Name.vi inside Generate VI Building Info.vi, this VI should not be called if: The VI is inside a library AND The value of Name Mangling of library Members == False

Selectively Name mangling of a library
The DEAB Mangle VI Name.vi is called inside Generate Resources Copy Info.vi to name mangle the library, this should not be called if: The library is inside another library AND The value of Name Mangling of Library Members == False

Storing Name Mangling of library Members setting in memory and in build files
OpenG builder has tight coupling between the build file and the storing of options in memory, they are both described by the same clusters, so in the following paragraphs there is no difference between those two items.

The Name Mangling is part of the general setting and the Destinations settings. The general settings are stored inside the Build Parameters V0.0 Settings, and consist of two parameters Name Space and Name Space convention, the Name Space convention is stored inside the Build Parameters V1.0 Settings'' The Destinations settins are stored inside the Build Parameters V0.0 Settings:Destinations, this only covers the name space value.

The Name Mangling of Library Members should have the same scope as the Name Space convention and doesn't need to be destination specific, the build specification can be extended in two ways:
 * 1) Adding a field to the Build Parameters V0.0 Settings
 * 2) Adding a group Build Parameters V3.0 including a new field

Field Name
The field name is NameMangleLibraryMembers

Reading from disk
The reading portion OpenG Builder DEAB Read File.vi should default the value to True to be backwards compatible.

New Files
The creation of a new OpenG build files DEAB a Build Skeleton.vi should put a default False value in the field

Writing to disk
The storage portion of OpenG Builder DEAB Write Build File.vi should add an entry for the field

GUI implementation of the option
The option should be shown on the General tab of the OpenG Builder GUI next to the Name Space convention as a system boolean with the following settings:
 * Label: MangleLibraryMembers
 * Label Visible: False
 * Boolean Text Visible: False
 * Caption: Mangle library members
 * Description: Sets the optional name mangling of library members. The default value is False to prevent problems with dynamic dispatching. For compatibility reasons with OpenG Builder 2.0 this should be set to True if libraries (XControl, library, LVClass) were used.
 * Tipstrip: Name mangle library members

Here's a mockup of this proposal:



Inflicted VIs
VIs influenced directly by this option
 * OpenG_Builder.vi (GUI interface)
 * Generate VI Building Info.vi (Name mangling of VIs)
 * Generate Resources Copy Info.vi (Name mangling of libraries)
 * DEAB Read File.vi (Read from disk)
 * DEAB Write Build File.vi (Store to disk)
 * DEAB a Build Skeleton.vi (A new Build file)
 * Build Parameters.ctl (storing of the option in memory)
 * All VIs with linker info to Build Parameters.ctl