[PRODUCTNAME] SDK
 
SDK home
Development Tools
 
idlc The UNOIDL compiler, generates a common binary type library format as base for all codemaker tools and the UNO runtime type library.
cppumaker Tool for generating C++ code for the UNOIDL types stored in a type library.
javamaker Tool for generating Java code for the UNOIDL types stored in a type library.
rdbmaker Tool for building type libraries with only a specified set of types and their dependencies.
pkgchk The UNO package deployment tool.
regcomp The UNO component registration tool.
regmerge Tool to merge several registry (type libraries) files into one file.
regview Tool to view the content of a registry key (type node).
xml2cmp A small helper tool to extract different information from xml module description files.
uno Tool to start UNO components and provide a UNO runtime environment.
autodoc Tool to generate javadoc-like documentation for C/C++ and UNOIDL files.
 

idlc          SDK home  tools overview

'idlc' is the UNOIDL compiler. It is a full featured compiler used to check UNODL type definitions and transform valid type definitions into a binary type library format, which is later used by all codemaker tools. It is also used as a dynamic type library for UNO at runtime.
You can find a syntax description for UNOIDL here.

Usage:

idlc [-options] file_1 ... file_n | @<filename>

file_1 ... file_n specifies one or more idl files. Only files with the extension '.idl' are valid.
@<filename> filename specifies the name of a command file.

Options:

-O<path> path describes the output directory. The generated output is a registry file with the same name as the idl input file.
-I<path> path specifies a directory where included files that will be searched by the preprocessor are located. Multiple directories can be combined with ';'.
-D<name> name defines a macro for the preprocessor.
-C generates complete type information, including additional service information and documentation.
-h|? print this help message and exit.

 

cppumaker          SDK home  tools overview

The cppumaker generates a C++ representation for idl types. The cppumaker works on a typelibrary, which is generated by the unoidl. It generates the output for all specified types and for all types the specified types depend on.

Usage:

cppumaker [-options] file_1 ... file_n

Options:

-O<path> path describes the root directory for the generated output. The output directory tree is generated under this directory.
-T<name> name specifies a type or a list of types. The output for this [t1;...] type is generated. If no '-T' option is specified, then output for all types is generated.
-B<name> name specifies the base node. All types are searched under this node. Default is the root '/' of the registry files.
-L|-C In general, the cppumaker tool generates getCppuType() functions in three ways:

  1. no option (default)
    This generates headers so that UNO runs correctly as long as:
    -- one compiler compiled all code (no bridging needed for inter-component communication)
    -- no marshaling is needed (no bridging needed for interprocess communication)
    -- no scripting is needed (in general, this needs full type description support)
  2. -L (_ONLY_ usable on Windows!)
    This option generates the shortest getCppuType() functions, but needs a running type description manager (+provider) reading all type information from the applicat.rdb! ==> !! Cannot be used at setup startup, because no applicat.rdb is involved at this early stage!!
  3. -C (fully comprehensive type information)
    This options generates the longest form of getCppuType() functions, including a comprehensive description of a type, thus there is no need for a type description manager (+provider) reading types from applicat.rdb:
    -- limitation: only previously used types are provided by the runtime (i.e., only types which were previously registered due to a getCppuType() call are accessible by name)

-G generate only target files which do not exist.
-Gc generate only target files whose content will be changed.

 

javamaker          SDK home  tools overview

The javamaker generates the appropriate java file for each idl type. The javamaker works on a typelibrary which is generated by the unoidl. It generates the output for all specified types and for all types the specified types depend on.

Usage:

javamaker [-options] file_1 ... file_n

Options:

-O<path> path describes the root directory for the generated output. The output directory tree is generated under this directory.
-T<name> name specifies a type or a list of types. The output for this [t1;...] type is generated. If no '-T' option is specified, then output for all types is generated.
-B<name> name specifies the base node. All types are searched under this node. Default is the root '/' of the registry files.

 

rdbmaker          SDK home  tools overview

The rdbmaker generates subsets of the typelibrary. It generates a subset of the typelibrary, which contains all specified types and all types the specified types depend on. This can be used to provide all and only necessary types for a component.

The rdbmaker supports 2 modes:

  1. using the internal UNO type description manager -> use -R<regname>
    where regname specifies the type library used by the UNO type description manager after UNO is bootstrapped. This option disables the use of any other type libraries.
  2. using one or more type library files -> use file_1 ... file_n
    file_1 .. file_n specifies one or more valid type library files which are used to find the needed type information. The used type libraries have to support the same base node (-B option).

Usage:

rdbmaker [-options] (-R<regname> | file_1 [... file_n])

Options:

-O<fileName> filename specifies the name of the generated registry or text file.
-L specifies that only a text file is generated with the names of the specified types and their dependencies. Default is that a registry file will be created.
-T<name> name specifies a type or a list of types. The output for this type is generated. Example: 'com.sun.star.uno.XInterface' is a valid type.
-FT<name> name specifies a type or a list of types. For this types, nothing will be generated.
-F<file> file specifies a text file. For the specified types in this file, nothing will be generated.
-B<name> name specifies the base node. All types are searched under this node. Default is the root '/' of the registry files. This option takes effect using run mode 2 only.
-b<name> name specifies the base node of the output registry. All types will be generated under this node. Default is the root '/' of the registry file.

 

pkgchk (pkgchk.bin)          SDK home  tools overview

'pkgchk' is a tool for easy deployment of UNO packages in an existing office installation. UNO packages are UNO components (single libraries or Jar files or more complex zip files that contains one or more libraries|Jar files, type libraries and configuration items) and [PRODUCTNAME] libraries as zip package. More detailed information comes with the developer documentation in the final release of the SDK.

Note: This tool works only in the <office>/program directory and must be copied together with the library (libpgkchkXXX.so (Unix), pkgchkXXX.dll (windows)) into this directory. Later office versions will probably come directly with this tool. Unix users additionally have to create a link in the <office>/program directory; move into the <office>/program directory and use the following command: 'ln -s soffice pkgchk'

Usage:

pkgchk <options> [package1 package2 ... ]

Options:

-s, --shared|revoke check/install shared components; default: user
-r, --renewal re-install all packages (useful for cache inconsistencies).
-f, --force-overwrite force overwrite existing packages when copying from command line.
-v, --verbose verbose output to stdout.
-l, --log [<file>] custom log file; default: <cache>/log.txt.
--strict_error_handling break process immediately if errors occur.
--supersede_basic_libs overwrite existing basic library entries of same name.
--check_unorc_only check/patch only the unorc (Unix), uni.ini (Windows).
--no_unorc_patch don't touch unorc (Unix), uni.ini (Windows).
-h, --help print a command line help to stdout.

 

regcomp          SDK home  tools overview

'regcomp' is a tool to register|revoke external UNO components into|from a registry which is used for a UNO environment.

Usage:

regcomp -revoke [-br<registryfile>] -r <registryfile> -c <locationUrl> [-l<componentLoaderName>]

Options:

-register|revoke register means that the components will be installed and revoke means that they will be removed.
-br<registryfile> the name of the registry used for bootstrapping the program. If the bootstrap registry is specified and has the same name as the registration registry, '-r' is optional.
-r<registryfile> the name of the registry (will be created if it does not exist) where the component should be registered.
-c<locationUrls> the location of a component (DLL, Class name, or an url of a jar file) or a list of urls separated by ';'s. Note that, if a list of urls is specified, the components must all need the same loader.
-l<componentLoaderName> the name of the needed loader, if no loader is specified the 'com.sun.star.loader.SharedLibrary' is used. Supported loaders: 'com.sun.star.loader.SharedLibrary' | 'com.sun.star.loader.Java'.

 

regmerge          SDK home  tools overview

'regmerge' is a small tool to merge different registry files under a specified key into another registry file. If a value already exists in the target file the value would be overwritten by the value of the source file.

Usage:

regmerge <mergefile> mergeKeyName &tg;regfile_1> ... <regfile_n>

Options:

-register|revoke register means that the components will be installed and revoke means that they will be removed.
-br<registryfile> the name of the registry used for bootstrapping the program. If the bootstrap registry is specified and has the same name as the registration registry, '-r' is optional.
-r<registryfile> the name of the registry (will be created if it does not exist) where the component should be registered.
-c<locationUrls> the location of an component (DLL, Class name, or an url of a jar file) or a list of urls separated by ';'s. Note, if a list of urls is specified, the components must all need the same loader.
-l<componentLoaderName> the name of the needed loader, if no loader is specified the 'com.sun.star.loader.SharedLibrary' is used. Supported loaders: 'com.sun.star.loader.SharedLibrary' | 'com.sun.star.loader.Java'.

 

regview          SDK home  tools overview

'regview' is a tool to show the contents of a registry file. The tool dumps the hierarchical structure and the values of the nodes to stdout in a readable form.

Usage:

regview <registryfile> [<keyName>]

Options:

-br<registryfile> the name of the registry whose contents should be viewed.
<keyName> the name of a registry key. The name must be fully qualified; for example, '/' means the root key and '/UCR/com/sun/star/uno/XInterface' shows the type specification of the XInterface type. If no key is specified, the tool dumps the whole content of the registry file.

 

xml2cmp          SDK home  tools overview

The tool xml2cmp parses .xml files, which contain the descriptions of components that implement UNO services. Each .xml file refers to one library. The library may contain one or more component descriptions.
There are two ways of using xml2cmp:

Usage:

xml2cmp [-func <funcFile>] [-html <htmlFile>] [-types <typeFile>] <Xml_FileName>

This version parses the file <xml_filename> and produces three possible types of output, each of which is optional, but there must be at least one of them.

Options:

-func <funcFile> produces a file with the name <funcfile>. This should be .c|.cxx|.cpp or similar kind of source code file. This file contains the definition of the function 'const sal_Char * SAL_CALL component_getDescriptionFunc();' which returns the parsed file as ASCII text.
-html <htmlFile> produces a file with the name <htmlfile>. It should be a .htm|.html file. That file contains the contents of the parsed file in HTML-readable form.
-types <typeFile> produces a textfile with the name <typefile>. This textfile is intended to be included in a makefile and contains the definition of a variable

<libraryName>_XML2CMPTYPES= \
<type_used_by_LibraryName_1> \
<type_used_by_LibraryName_2> \
...

The variable <libraryName>_XML2CMPTYPES contains a list of the types used by that library.

All output of this first version of xml2cmp is put into the working directory.

xml2cmp -ix <sourcedirectory> <outputdirectory> [<tagname1> [<tagname2> ...]]

This version parses all .xml files that are found in <sourcedirectory> or its subdirectories. It produces the .html output of all parsed .xml files (as in version 1 above). Also, it produces a file named xmlindex.html. This is an HTML file which contains tables alphabetically ordered on the left side, which allows assigning from one 'XML-tags' content to another (of all original parsed .xml files). The following tables are produced („Module“ refers to a library):

SupportedService -> ModuleName
ModuleName -> SupportedService
<tagname1> -> ComponentName
<tagname2> -> ComponentName
...

All output files of the second version of xml2cmp are put to the <outputDirectory>

 

uno          SDK home  tools overview

The UNO-starter is for running a component or service process, and providing a runtime environment. Raising a component might look like this

[c:\] uno.exe -c MyComponent -l mycomp.dll -r myregistry.rdb -- foo bar

or

[c:\] uno.exe -s foo.bar.FooBarService -r myregistry.rdb -- foo bar

The starter loads the component and instantiates it. The component must export the interface com.sun.star.lang.XMain:

interface XMain : com::sun::star::uno::XInterface
{
    /** This method is called to run the component.
       
        @param aArguments command line arguments
        @return process error code to be returned to system
    */
    long run( [in] sequence< string > arguments );
};

Method run() will be called and returns the error code given, back to the system. If the uno starter is executed with the -u (URL) option, then XInitialization is used instead of XMain. The -u option is described later.

Usage:

uno (-c<ComponentImplementationName> -l <LocationUrl> | -s <ServiceName>)
[-ro <ReadOnlyRegistry1>] [-ro <ReadOnlyRegistry2>] ... [-rw <ReadWriteRegistry>]
[-u uno:(socket[,host=<HostName>][,port=<nnn>]|pipe[,name=<PipeName>]);iiop|urp; <Name>
[--singleaccept] [--singleinstance]]
[-- <Argument1 Argument2 ...>]

Options:

<HostName> Specifying a host name might be necessary to distinguish the network interface to be used, if a machine is part of two networks.
<PipeName> Name of a named pipe.
<Name> Identifier for demanded called component instances.
<Registries> The optional <Registries>(e.g., c:\myreg.rdb) are used by the ServiceManager. The ro ones are opened for reading only; whereas, a single rw one will be opened for reading and writing. If the rw one does not exist, then it may be created. Components may read and write to store their persistent state.
--singleaccept The uno starter will accept one connection, provide the component instance and die.
--singleinstance The uno starter will accept any number of connections, but will provide the same single component instance any time instead of creating a new instance for each connection.

Service com.sun.star.bridge.UnoUrlResolver

You can easily connect to a server started with the -u (url) option by using this service, giving the same url to resolve. The service provides you an instance from remote.

 

autodoc          SDK home  tools overview

The autodoc tool is used for creating javadoc-like documentation from C++ and UNOIDL source code.

There are some conventions to follow when documenting C++- or UNOIDL-sourcecode. See   (( REFERENCE to commenting guides for C++ and IDL )).  
If you are not familiar with these, but do know javadoc: For simple C++  sourcecode documentation, using javadoc-style comments will work.

Usage:

autodoc [ -v <VerboseNr> ] [ -name "<TitleForTheDocu>" ] -html <OutputDirectory> -lg <SourcecodeLanguage>
{ [ -p <ProjectName> <ProjectRootDirectory> ]  -t <SourceTree>* | -d <SourceDirectory>* | -f <SourceFile>* }*

Options:

-v <VerboseNr> <VerboseNr> == 5 displays the parsed source code tokens, so you can locate which piece caused an parsing error.
<VerboseNr> == 2  displays not only the parsed source code, but also the comments.

This option must be the first one, if it is used.
-name "<Title>" <Title> occurs as the title of the start page of the HTML output.  If  this option is omitted, a default title is created.
-html <OutputDirectory> Specifies the root directory where the HTML output is created.
Autodoc does not remove old files there, though it overwrites them.
-lg <SourcecodeLanguage> Possible values are:    c++,   idl.

This also specifies which files will be parsed: "c++" parses all files with the endings .hxx and .h, "idl" parses all files with the ending .idl .
To change this behaviour, see at option  -f.
-p <ProjectName> <ProjectDirectory> This option can be used to divide large code bases into different projects.
<ProjectName> gives a user-defined name for the project.
<ProjectDirectory> is the root to which all paths, given with the following options -t, -d and -f, are relative.
This option can be omitted when there are no projects and all paths in the following options are relative to the working directory.

The "{ ... }*"  around the options -p,-t,-d,-f  indicates, that this whole block of options can be repeated, each block starting with a new -p .
-t <SourceTree> Specifies that all files in the directory <SourceTree> and it's subdirectories are parsed, where the file ending matches the option -lg.
There can be given multiple directories after one -t option.
All relative paths  are relative to the project-rootdirectory, given with the -p option.
-d <SourceDirectory> Specifies that all files in th directory <SourceDirectory>, but NOT it's subdirectories, are parsed, where the file ending matches the option -lg.
There can be multiple directories given after one -d option.
All relative paths  are relative to the project-rootdirectory, given with the -p option.
-f <SourceFile> Parses the given file. The ending does not have to match the -lg option.
There can be multiple files given after one -f option.
All relative paths  are relative to the project-rootdirectory, given with the -p option.

Remark: The sequence of options matters! Use them in the order given in the "Usage"-paragraph.

 

Copyright 2003 Sun Microsystems, Inc.