metaonly interface xdc.tools.product.IProduct

Interface specifying product details

This interface allows products describe themselves for the benefit of development tools such as IDE's. For example, a tool can read the information provided by a product that implements this interface and generate an eclipse plugin that leverages the product's "resources". [ more ... ]
XDCspec summary sourced in xdc/tools/product/IProduct.xdc
metaonly interface IProduct {  ...
XDCspec declarations sourced in xdc/tools/product/IProduct.xdc
 
metaonly interface IProduct {
module-wide constants & types
        String label// Help element description;
        String filePath// Path to help doc;
    };
 
        String name// Macro name;
        String desc// Macro description;
    };
 
        String id// Plugin id;
        String version// Plugin version;
        String path// Plugin path;
    };
 
    };
 
    metaonly struct UrlDescriptor// URL Descriptor structure {
        String url// Uniform Resource Locator(URL);
        String text// Summary text for the URL;
    };
module-wide config parameters
    config String bundleName// Product bundle name;
    config Bool exclusive// This product is a singleton = false;
    config String id// A unique product id;
    config String name// Product name;
    config String projectSpecPath// Directory containing project spec files = "resources";
    config String version// Product version;
}
DETAILS
This interface allows products describe themselves for the benefit of development tools such as IDE's. For example, a tool can read the information provided by a product that implements this interface and generate an eclipse plugin that leverages the product's "resources".
By expressing the product's information in this interface, a product can be delivered into multiple development tools without explicit knowledge of these tools. For example, an online "product repository" can extract sufficient information from this interface to enable it to provide a searchable catalog of interesting products.
This is an experimental interface and is subject to change
 
struct IProduct.HelpToc

Help table of contents (TOC) element

XDCspec declarations sourced in xdc/tools/product/IProduct.xdc
metaonly struct HelpToc {
    String label;
    // Help element description
    String filePath;
    // Path to help doc
    Bool tocFile;
    // Indicates whether element is a TOC file
};
 
FIELDS
label — Summary description of help element which is displayed in the global table of contents.
filePath — Relative path to help documentation file or a secondary table of contents file or a URL. Relative paths are relative to the directories specified in docsLocArr; files are searched for, in order, within each directory and the first file found that matches the name is used.
tocFile — Flag indicates whether the element is a table of contents (TOC) file. Tools may process TOC files in a special way. For example, a tool to generate eclipse plugins must copy the TOC file to the plugin folder for integrating with eclipse help.
DETAILS
A help TOC element defines a file, URL, or a secondary table of contents that is referenced from a global table of contents.
 
struct IProduct.MacroDescriptor

Macro Descriptor structure

XDCspec declarations sourced in xdc/tools/product/IProduct.xdc
metaonly struct MacroDescriptor {
    String name;
    // Macro name
    String desc;
    // Macro description
};
 
 
struct IProduct.PluginDescriptor

Plugin Descriptor structure

XDCspec declarations sourced in xdc/tools/product/IProduct.xdc
metaonly struct PluginDescriptor {
    String id;
    // Plugin id
    String version;
    // Plugin version
    String path;
    // Plugin path
};
 
FIELDS
id — Plugin id
version — Plugin version
path — Path to plugin relative to IProduct implementation
 
struct IProduct.Target

Structure containing information on RTSC targets

XDCspec declarations sourced in xdc/tools/product/IProduct.xdc
metaonly struct Target {
    String sourceFile;
    // Name of a file with target mapping
};
 
FIELDS
sourceFile — The path to a file that defines the mapping in a JSON file
DETAILS
Products specify the mapping between device names and/or device family names and a RTSC target module in a JSON file located in the product itself. The field sourceFile contains the file name including the path relative to the top directory of the product.
The content of the file is read whenever a product is used in a project and the information from the file is leveraged by tools to derive an appropriate RTSC target when given a device name, device family, endiness, and OMF selection (COFF verses ELF).
The JSON file contains objects, and each object is matched against the device and build options selected for a particular project. If all object attributes, except for the target specification, are matched by supplied options, the target represented by the object is returned. Objects are matched against the options in the order they are listed in the JSON file. As soon as a match is found, the search stops.
Currently used object attributes that are matched against build options are deviceFamilyPattern, deviceNamePattern, deviceVariant and elf. Object attributes that specify a target are packageName and baseTargetName, where packageName is the name of a package that contains targets, while baseTargetName is a name of a target module in that package.
In particular, if the device name and family name selected for a project match deviceNamePattern and deviceFamilyPattern in an object, the target name generated will be:
      <packageName>[.elf].<baseTargetName>[_big_endian]
The strings ".elf" and "_big_endian" are added if the corresponding project options are specified.
Suppose, for example, a product specifies the following target mapping:
  {
      deviceNamePattern:   "MSP430F5.*",
      deviceFamilyPattern: "MSP430.*",
      packageName:         "ti.targets.msp430",
      baseTargetName:      "MSP430X"
  }
If the device specified is "MSP430F5529", the family is "MSP430", and the OMF is COFF, the generated target will be:
      ti.targets.msp430.MSP430X
On the other hand, if the OMF is ELF the target will be:
      ti.targets.msp430.elf.MSP430X
 
struct IProduct.UrlDescriptor

URL Descriptor structure

XDCspec declarations sourced in xdc/tools/product/IProduct.xdc
metaonly struct UrlDescriptor {
    String url;
    // Uniform Resource Locator(URL)
    String text;
    // Summary text for the URL
    String targetText;
    // (optional) Summary for target portion
};
 
FIELDS
url — Uniform Resource Locator(URL)
text — Summary text for the URL
targetText — Optional summary text for any target content portion
 
config IProduct.bundleName  // module-wide

Product bundle name

XDCspec declarations sourced in xdc/tools/product/IProduct.xdc
config String bundleName;
 
DETAILS
Product bundle name is embedded in the top level folder name of the product. Example: The top level folder for XDCtools version 3.16.02.31-eng is xdctools_3_16_02_31-eng. In this case the bundle name is xdctools. The bundle name is used by tools to discover the product installed on a filesystem.
 
config IProduct.companyName  // module-wide

Name of company releasing product

XDCspec declarations sourced in xdc/tools/product/IProduct.xdc
config String companyName;
 
DETAILS
Example : "Texas Instruments"
 
config IProduct.copyRightNotice  // module-wide

Copyright notice for product

XDCspec declarations sourced in xdc/tools/product/IProduct.xdc
config String copyRightNotice;
 
 
config IProduct.docsLocArr  // module-wide

Directories containing documents in the product

XDCspec declarations sourced in xdc/tools/product/IProduct.xdc
config String docsLocArr[];
 
DETAILS
Directories are specified relative to the product installation directory. These directories are searched when resolving URI links to specific pages within the docs.
 
config IProduct.exclusive  // module-wide

This product is a singleton

XDCspec declarations sourced in xdc/tools/product/IProduct.xdc
config Bool exclusive = false;
 
DETAILS
This flag indicates whether multiple versions of this product are accessable within the IDE or whether only the latest version is available.
When flag is set to true it indicates that only one version of the product can be active in the system. Otherwise the system can handle multiple versions of the same product.
 
config IProduct.externalPlugins  // module-wide

External plugins delivered with the product

XDCspec declarations sourced in xdc/tools/product/IProduct.xdc
config IProduct.PluginDescriptor externalPlugins[];
 
 
config IProduct.externalRequirements  // module-wide

External plugins required by this product

XDCspec declarations sourced in xdc/tools/product/IProduct.xdc
config String externalRequirements[];
 
 
config IProduct.helpTocArr  // module-wide

Array of table of contents elements in product

XDCspec declarations sourced in xdc/tools/product/IProduct.xdc
config IProduct.HelpToc helpTocArr[];
 
DETAILS
Tools generating table of contents are required to preserve the order of elements specified in this array.
 
config IProduct.id  // module-wide

A unique product id

XDCspec declarations sourced in xdc/tools/product/IProduct.xdc
config String id;
 
DETAILS
For example, product developers may choose to follow namespace conventions for Java packages or Eclipse plugins to specify a unique id like org.eclipse.rtsc.xdctools.product.
 
config IProduct.licenseDescriptor  // module-wide

License information for product

XDCspec declarations sourced in xdc/tools/product/IProduct.xdc
config IProduct.UrlDescriptor licenseDescriptor;
 
VALUES
url — field should contain the URL containing the license text.
text — field should contain a summary description of the license
 
config IProduct.macro  // module-wide

Macro associated with the product

XDCspec declarations sourced in xdc/tools/product/IProduct.xdc
config IProduct.MacroDescriptor macro;
 
DETAILS
Product macros are often used in IDEs for providing portable build environments. A unique macro name should be selected for the product.
 
config IProduct.name  // module-wide

Product name

XDCspec declarations sourced in xdc/tools/product/IProduct.xdc
config String name;
 
DETAILS
String containing product name eg. System BIOS
 
config IProduct.otherFiles  // module-wide

Array of paths to files or directories to copy into the product

XDCspec declarations sourced in xdc/tools/product/IProduct.xdc
config String otherFiles[];
 
DETAILS
A product may need to contain "arbitrary" files important to its operation. For example a product may provide text, images and video files that provide templates or branding information for the product. These files may then be consumed by tools like IDE's via hooks defined in the IDE framework.
The source file path is defined relative to the directory containing the implementation of IProduct. All files or directories are copied to the base directory of the plugin; e.g., "../branding/about.ini" is copied to "about.ini" at the top of the plugin.
Path names that begin with the prefix "tc:" are copied into "target content" plugin whereas path names with any other prefix (such as "ui:" or no prefix) are copied into the "IDE plugin".
 
config IProduct.productDescriptor  // module-wide

Product description

XDCspec declarations sourced in xdc/tools/product/IProduct.xdc
config IProduct.UrlDescriptor productDescriptor;
 
VALUES
url — the url field should contain a product-specific "home" page URL or, if there is none, the URL of organization releasing the product.
text — the text field should contain summary description of the target content portion of the product.
 
config IProduct.productViewModule  // module-wide

Name of module implementing xdc.tools.product.IProductView

XDCspec declarations sourced in xdc/tools/product/IProduct.xdc
config String productViewModule;
 
DETAILS
Products must provide a module that implements the xdc.tools.product.IProductView interface. This module defines the "top-level" modules that are visible to the user and must be delivered in the repositories defined in repositoryArr.
 
config IProduct.projectSpecPath  // module-wide

Directory containing project spec files

XDCspec declarations sourced in xdc/tools/product/IProduct.xdc
config String projectSpecPath = "resources";
 
DETAILS
This path is relative to the product install location.
 
config IProduct.repositoryArr  // module-wide

Repositories contained in the product

XDCspec declarations sourced in xdc/tools/product/IProduct.xdc
config String repositoryArr[];
 
DETAILS
Repositories are specified relative to the product installation directory.
 
config IProduct.targetFile  // module-wide

File with available RTSC target modules

XDCspec declarations sourced in xdc/tools/product/IProduct.xdc
config IProduct.Target targetFile;
 
DETAILS
The RTSC target modules should be delivered in the repositories defined in repositoryArr
 
config IProduct.templateModule  // module-wide

Name of module implementing xdc.tools.product.IProductTemplate

XDCspec declarations sourced in xdc/tools/product/IProduct.xdc
config String templateModule;
 
DETAILS
Products that deliver examples provide a module that implements the xdc.tools.product.IProductTemplate interface. This module must be delivered in one of the repositories defined in repositoryArr.
 
config IProduct.tocIndexFile  // module-wide

Top level help index file

XDCspec declarations sourced in xdc/tools/product/IProduct.xdc
config String tocIndexFile;
 
DETAILS
In eclipse help, for example, this file is displayed when the product's top-level entry is selected in eclipse's help table of contents. If this file is not provided a very basic list of links to the entries listed in @{link #helpTocArr} is displayed.
 
config IProduct.updateSite  // module-wide

Update site for product

XDCspec declarations sourced in xdc/tools/product/IProduct.xdc
config IProduct.UrlDescriptor updateSite;
 
VALUES
url — the url field should contain the URL containing product upgrades.
text — the text field should contain summary description of the update site
 
config IProduct.version  // module-wide

Product version

XDCspec declarations sourced in xdc/tools/product/IProduct.xdc
config String version;
 
DETAILS
The product version should follow the format -major.minor.service.qualifier where major,minor and service are integers and qualifier is a string. Example - 3.16.02.31-eng.
Products may specify their own guidelines for updating major,minor,service and qualifier portions of the version number as long as they are unique for the product. Products may also choose to follow popular versioning conventions like those followed for versioning Eclipse plugins.
generated on Wed, 09 Apr 2014 00:37:51 GMT