RADE

Multi-Workspace Application Builder

The IdentityCard.h Special File

Purpose and use
Technical Article

Abstract

The IdentityCard.h file is one of the files needed to build a program using the CAA Multi-Workspace Application Builder mkmk. The aim of this article is to explain the purpose of this file, how to write it and where it must be installed in the CAA FileTree.

Purpose

Since almost all components (frameworks) are built upon other components, it is necessary:

However the source files of a given component may include a lot of header files and, without the IdentityCard file, we must browse all the files to know the names of included header files and then find the names of the corresponding components.

The IdentityCard file synthesizes these relationships between frameworks in order to get quickly the prerequisite frameworks.

Warning: The IdentityCard file of any framework must at least contain a statement to set the System framework as a prerequisite framework up to its public part, as follows:

AddPrereqComponent ("System", "Public");

You must be aware that a user has often not all frameworks in his/her own workspace, and that most of the prerequisite frameworks he/she needs are located in other workspaces. Thanks to the IdentityCard file(s), tools like mkmk gain an easy way to determine and then access prerequisite frameworks.

Basically

The figure below gives a summary of the use of IdentityCard files. An application is made of components:

Note also that:

Top]

Location

Every framework must have an Identity Card file, named IdentityCard.h.

This file is stored in directory IdentityCard, right under the framework root directory itself:.

This file allows the framework to declare (the list of) its prerequisite frameworks.

Conversely, to export a service a framework must just store the header file of its service in its PublicInterfaces directory.

[Top]

Content

The IdentityCard.h file is a text file containing one line per prerequisite framework to declare.

The syntax of a line is:

AddPrereqComponent("<framework name>", Public);

In the following example, source themine.cpp in framework1/module1 needs header otherservice.h which is neither in module module1, nor in framework1, but in another framework named framework2. Thus, framework1 needs to declare framework2 as a prerequisite in its identity card:

The previous schema gives an example of a prerequisite between code frameworks, you can also have:

[Top]


History

Version: 1 [Mar 2000] Document created
[Top]

Copyright © 2000, Dassault Systèmes. All rights reserved.