summaryrefslogtreecommitdiff
path: root/odk
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2022-02-22 12:00:00 +0100
committerStephan Bergmann <sbergman@redhat.com>2022-02-25 16:46:26 +0100
commit40f2aee6584eafcf4cd1d95fcf1f775e5435440d (patch)
tree1873928bc36bb68b6986c2af833ed9d8ca21969b /odk
parent72f836fb0c0c3daaf0e47832809a352888577905 (diff)
Provide unoidl-write also for the SDK
...after the new types.rdb format that unoidl-write generates has been used internally since LibreOffice 4.1 in 2013; following up on 6db34b6b33ba8e3b13683efd05df8441b87e9c92 "Directly build UNOIDL .rdb files from .idl files" and its "The legacy tools idlc, regcompare, regmerge, and regview are still contained in the URE or SDK for now." The tools idlc and regmerge are deprecated but still shipped in the SDK for now. The plan is to drop them completely for LO 7.5. odk/examples/ and ure/source/uretest/ are adapted to use unoidl-write instead of idlc and regmerge: * unoidl-write does not use a C preprocessor and the # directives in .idl files, it supports reading a single .idl file (containing an arbitrary number of declarations) or a directory tree where each directory corresponds to a UNOIDL module of the same name and each .idl file contains the declaration of the (non-module) UNOIDL entity of the same name. For some of the odk/examples/, that required moving individual .idl files into sub-directories named after the respective modules. In odk/settings/std.mk, definitinos of IDL and REGMERGE have been replaced with a new UNOIDLWRITE. * unoidl-write always enforces reserved UNOIDL identifier restrictions (see 04af4e4f55f3ef319a78edd4d0109e2e7eba90b6 "[API CHANGE] Fix all bad UNOIDL identifiers across offapi" and 620179240670bd00f60555f1f5c5b0268492f97c "Enforce the UNOIDL identifier scheme") (which idlc only enforced optionally with -cid -we). That required renaming "my_module" in odk/examples/DevelopersGuide/Components/CppComponent/. * The new types.rdb format is not compatibly with LibreOffice < 4.1. Clients generating extensions containing such files are advised to use appropriate LibreOffice-minimal-version elements. Change-Id: I1a248fd96e86ecbf407f829bc100d44bfe7f4e7d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130533 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Diffstat (limited to 'odk')
-rw-r--r--odk/CustomTarget_check.mk2
-rw-r--r--odk/Package_examples.mk29
-rw-r--r--odk/docs/tools.html105
-rw-r--r--odk/examples/DevelopersGuide/Components/CppComponent/Makefile34
-rw-r--r--odk/examples/DevelopersGuide/Components/CppComponent/TestCppComponent.cxx10
-rw-r--r--odk/examples/DevelopersGuide/Components/CppComponent/description.xml15
-rw-r--r--odk/examples/DevelopersGuide/Components/CppComponent/service1_impl.cxx20
-rw-r--r--odk/examples/DevelopersGuide/Components/CppComponent/service2_impl.cxx10
-rw-r--r--odk/examples/DevelopersGuide/Components/CppComponent/some.idl2
-rw-r--r--odk/examples/DevelopersGuide/Components/JavaComponent/Makefile15
-rw-r--r--odk/examples/DevelopersGuide/Components/JavaComponent/com/sun/star/test/SomethingA.idl (renamed from odk/examples/DevelopersGuide/Components/JavaComponent/SomethingA.idl)0
-rw-r--r--odk/examples/DevelopersGuide/Components/JavaComponent/com/sun/star/test/SomethingB.idl (renamed from odk/examples/DevelopersGuide/Components/JavaComponent/SomethingB.idl)0
-rw-r--r--odk/examples/DevelopersGuide/Components/JavaComponent/com/sun/star/test/XSomethingA.idl (renamed from odk/examples/DevelopersGuide/Components/JavaComponent/XSomethingA.idl)0
-rw-r--r--odk/examples/DevelopersGuide/Components/JavaComponent/com/sun/star/test/XSomethingB.idl (renamed from odk/examples/DevelopersGuide/Components/JavaComponent/XSomethingB.idl)0
-rw-r--r--odk/examples/DevelopersGuide/Components/JavaComponent/description.xml15
-rw-r--r--odk/examples/DevelopersGuide/Components/SimpleLicense/Makefile9
-rw-r--r--odk/examples/DevelopersGuide/Components/SimpleLicense/description.xml5
-rw-r--r--odk/examples/DevelopersGuide/Components/Thumbs/org/openoffice/comp/test/Makefile4
-rw-r--r--odk/examples/DevelopersGuide/Components/Thumbs/org/openoffice/comp/test/description.xml15
-rw-r--r--odk/examples/DevelopersGuide/Components/Thumbs/org/openoffice/test/Makefile8
-rw-r--r--odk/examples/DevelopersGuide/Components/Thumbs/thumbs.mk1
-rw-r--r--odk/examples/DevelopersGuide/Components/dialogcomponent/Makefile15
-rw-r--r--odk/examples/DevelopersGuide/Components/dialogcomponent/com/sun/star/test/TestDialogHandler.idl (renamed from odk/examples/DevelopersGuide/Components/dialogcomponent/TestDialogHandler.idl)0
-rw-r--r--odk/examples/DevelopersGuide/Components/dialogcomponent/com/sun/star/test/XTestDialogHandler.idl (renamed from odk/examples/DevelopersGuide/Components/dialogcomponent/XTestDialogHandler.idl)0
-rw-r--r--odk/examples/DevelopersGuide/Components/dialogcomponent/description.xml15
-rw-r--r--odk/examples/DevelopersGuide/Spreadsheet/Makefile13
-rw-r--r--odk/examples/DevelopersGuide/Spreadsheet/description.xml15
-rw-r--r--odk/examples/cpp/counter/Makefile12
-rw-r--r--odk/examples/java/Inspector/Makefile16
-rw-r--r--odk/examples/java/Inspector/description.xml15
-rw-r--r--odk/examples/java/Inspector/org/openoffice/InstanceInspector.idl (renamed from odk/examples/java/Inspector/InstanceInspector.idl)0
-rw-r--r--odk/examples/java/Inspector/org/openoffice/XInstanceInspector.idl (renamed from odk/examples/java/Inspector/XInstanceInspector.idl)0
-rw-r--r--odk/examples/java/MinimalComponent/Makefile13
-rw-r--r--odk/examples/java/MinimalComponent/description.xml15
-rw-r--r--odk/examples/java/Spreadsheet/Makefile13
-rw-r--r--odk/examples/java/Spreadsheet/description.xml15
-rw-r--r--odk/examples/java/ToDo/Makefile15
-rw-r--r--odk/examples/java/ToDo/description.xml15
-rw-r--r--odk/examples/java/ToDo/org/openoffice/ToDo.idl (renamed from odk/examples/java/ToDo/ToDo.idl)0
-rw-r--r--odk/examples/java/ToDo/org/openoffice/XToDo.idl (renamed from odk/examples/java/ToDo/XToDo.idl)0
-rw-r--r--odk/settings/std.mk1
-rw-r--r--odk/util/check.pl2
42 files changed, 325 insertions, 164 deletions
diff --git a/odk/CustomTarget_check.mk b/odk/CustomTarget_check.mk
index 6477ad71e8c1..fd7c151f0d43 100644
--- a/odk/CustomTarget_check.mk
+++ b/odk/CustomTarget_check.mk
@@ -29,7 +29,7 @@ $(call gb_CustomTarget_get_workdir,odk/check)/checkbin : \
$(SRCDIR)/odk/util/check.pl \
$(if $(DOXYGEN),$(call gb_GeneratedPackage_get_target,odk_doxygen)) \
$(foreach exe,$(if $(filter WNT,$(OS)),$(if $(filter-out AARCH64,$(CPUNAME)),climaker)) cppumaker \
- idlc javamaker $(if $(SYSTEM_UCPP),,ucpp) uno-skeletonmaker unoapploader unoidl-check,\
+ idlc javamaker $(if $(SYSTEM_UCPP),,ucpp) uno-skeletonmaker unoapploader unoidl-check unoidl-write,\
$(call gb_Executable_get_target,$(exe))) \
$(if $(filter WNT,$(OS)),$(call gb_Package_get_target,odk_cli)) \
$(call gb_Package_get_target,odk_config) \
diff --git a/odk/Package_examples.mk b/odk/Package_examples.mk
index b172b988284e..78368d14bdab 100644
--- a/odk/Package_examples.mk
+++ b/odk/Package_examples.mk
@@ -67,19 +67,21 @@ $(eval $(call gb_Package_add_files_with_dir,odk_examples,$(SDKDIRNAME)/examples,
DevelopersGuide/Components/CppComponent/Makefile \
DevelopersGuide/Components/CppComponent/SimpleComponent.odt \
DevelopersGuide/Components/CppComponent/TestCppComponent.cxx \
+ DevelopersGuide/Components/CppComponent/description.xml \
DevelopersGuide/Components/CppComponent/service1_impl.cxx \
DevelopersGuide/Components/CppComponent/service2_impl.cxx \
DevelopersGuide/Components/CppComponent/some.idl \
DevelopersGuide/Components/JavaComponent/JavaComponent.components \
DevelopersGuide/Components/JavaComponent/Makefile \
- DevelopersGuide/Components/JavaComponent/SomethingA.idl \
- DevelopersGuide/Components/JavaComponent/SomethingB.idl \
DevelopersGuide/Components/JavaComponent/TestComponentA.java \
DevelopersGuide/Components/JavaComponent/TestComponentB.java \
DevelopersGuide/Components/JavaComponent/TestJavaComponent.java \
DevelopersGuide/Components/JavaComponent/TestServiceProvider.java \
- DevelopersGuide/Components/JavaComponent/XSomethingA.idl \
- DevelopersGuide/Components/JavaComponent/XSomethingB.idl \
+ DevelopersGuide/Components/JavaComponent/com/sun/star/test/SomethingA.idl \
+ DevelopersGuide/Components/JavaComponent/com/sun/star/test/SomethingB.idl \
+ DevelopersGuide/Components/JavaComponent/com/sun/star/test/XSomethingA.idl \
+ DevelopersGuide/Components/JavaComponent/com/sun/star/test/XSomethingB.idl \
+ DevelopersGuide/Components/JavaComponent/description.xml \
DevelopersGuide/Components/SimpleLicense/LicenseTest.components \
DevelopersGuide/Components/SimpleLicense/LicenseTest.idl \
DevelopersGuide/Components/SimpleLicense/LicenseTest.java \
@@ -92,6 +94,7 @@ $(eval $(call gb_Package_add_files_with_dir,odk_examples,$(SDKDIRNAME)/examples,
DevelopersGuide/Components/Thumbs/org/openoffice/comp/test/ImageShrink.java \
DevelopersGuide/Components/Thumbs/org/openoffice/comp/test/Makefile \
DevelopersGuide/Components/Thumbs/org/openoffice/comp/test/Thumbs.java \
+ DevelopersGuide/Components/Thumbs/org/openoffice/comp/test/description.xml \
DevelopersGuide/Components/Thumbs/org/openoffice/test/ImageShrink.idl \
DevelopersGuide/Components/Thumbs/org/openoffice/test/Makefile \
DevelopersGuide/Components/Thumbs/org/openoffice/test/XImageShrink.idl \
@@ -101,8 +104,9 @@ $(eval $(call gb_Package_add_files_with_dir,odk_examples,$(SDKDIRNAME)/examples,
DevelopersGuide/Components/dialogcomponent/DialogComponent.java \
DevelopersGuide/Components/dialogcomponent/DialogComponent.odt \
DevelopersGuide/Components/dialogcomponent/Makefile \
- DevelopersGuide/Components/dialogcomponent/TestDialogHandler.idl \
- DevelopersGuide/Components/dialogcomponent/XTestDialogHandler.idl \
+ DevelopersGuide/Components/dialogcomponent/com/sun/star/test/TestDialogHandler.idl \
+ DevelopersGuide/Components/dialogcomponent/com/sun/star/test/XTestDialogHandler.idl \
+ DevelopersGuide/Components/dialogcomponent/description.xml \
DevelopersGuide/Config/ConfigExamples.java \
DevelopersGuide/Config/Makefile \
DevelopersGuide/Database/CodeSamples.java \
@@ -341,6 +345,7 @@ $(eval $(call gb_Package_add_files_with_dir,odk_examples,$(SDKDIRNAME)/examples,
DevelopersGuide/Spreadsheet/SpreadsheetSample.java \
DevelopersGuide/Spreadsheet/ViewSample.java \
DevelopersGuide/Spreadsheet/XExampleAddIn.idl \
+ DevelopersGuide/Spreadsheet/description.xml \
DevelopersGuide/Text/Makefile \
DevelopersGuide/Text/PrintDemo.odt \
DevelopersGuide/Text/TextDocuments.java \
@@ -446,7 +451,6 @@ $(eval $(call gb_Package_add_files_with_dir,odk_examples,$(SDKDIRNAME)/examples,
java/Inspector/Inspector.java \
java/Inspector/InspectorAddon.java \
java/Inspector/InspectorPane.java \
- java/Inspector/InstanceInspector.idl \
java/Inspector/InstanceInspectorTest.odt \
java/Inspector/Introspector.java \
java/Inspector/Makefile \
@@ -470,7 +474,6 @@ $(eval $(call gb_Package_add_files_with_dir,odk_examples,$(SDKDIRNAME)/examples,
java/Inspector/UnoPropertyNode.java \
java/Inspector/UnoTreeRenderer.java \
java/Inspector/XDialogProvider.java \
- java/Inspector/XInstanceInspector.idl \
java/Inspector/XLanguageSourceCodeGenerator.java \
java/Inspector/XTreeControlProvider.java \
java/Inspector/XTreePathProvider.java \
@@ -478,6 +481,7 @@ $(eval $(call gb_Package_add_files_with_dir,odk_examples,$(SDKDIRNAME)/examples,
java/Inspector/XUnoMethodNode.java \
java/Inspector/XUnoNode.java \
java/Inspector/XUnoPropertyNode.java \
+ java/Inspector/description.xml \
java/Inspector/images/containers_16.png \
java/Inspector/images/content_16.png \
java/Inspector/images/interfaces_16.png \
@@ -485,11 +489,14 @@ $(eval $(call gb_Package_add_files_with_dir,odk_examples,$(SDKDIRNAME)/examples,
java/Inspector/images/properties_16.png \
java/Inspector/images/services_16.png \
java/Inspector/manifest.mf \
+ java/Inspector/org/openoffice/InstanceInspector.idl \
+ java/Inspector/org/openoffice/XInstanceInspector.idl \
java/MinimalComponent/Makefile \
java/MinimalComponent/MinimalComponent.components \
java/MinimalComponent/MinimalComponent.idl \
java/MinimalComponent/MinimalComponent.java \
java/MinimalComponent/TestMinimalComponent.java \
+ java/MinimalComponent/description.xml \
java/PropertySet/Makefile \
java/PropertySet/PropTest.components \
java/PropertySet/PropTest.java \
@@ -502,6 +509,7 @@ $(eval $(call gb_Package_add_files_with_dir,odk_examples,$(SDKDIRNAME)/examples,
java/Spreadsheet/Makefile \
java/Spreadsheet/SCalc.java \
java/Spreadsheet/XCalcAddins.idl \
+ java/Spreadsheet/description.xml \
java/Text/BookmarkInsertion.java \
java/Text/GraphicsInserter.java \
java/Text/HardFormatting.java \
@@ -515,10 +523,11 @@ $(eval $(call gb_Package_add_files_with_dir,odk_examples,$(SDKDIRNAME)/examples,
java/Text/oo_smiley.gif \
java/ToDo/Makefile \
java/ToDo/ToDo.components \
- java/ToDo/ToDo.idl \
java/ToDo/ToDo.java \
java/ToDo/ToDo.ods \
- java/ToDo/XToDo.idl \
+ java/ToDo/description.xml \
+ java/ToDo/org/openoffice/ToDo.idl \
+ java/ToDo/org/openoffice/XToDo.idl \
python/toolpanel/CalcWindowState.xcu \
python/toolpanel/Factory.xcu \
python/toolpanel/META-INF/manifest.xml \
diff --git a/odk/docs/tools.html b/odk/docs/tools.html
index 2785f9f3eb64..e145e059de9b 100644
--- a/odk/docs/tools.html
+++ b/odk/docs/tools.html
@@ -71,13 +71,13 @@
<tr valign="top">
<td class="content3"><img src="images/arrow-1.gif"/></td>
<td><a href="#regmerge" title="link to the regmerge tool description">regmerge</a></td>
- <td class="content87">Tool to merge several registry (e.g. type
+ <td class="content87">Deprecated tool to merge several legacy registry (e.g. type
libraries) files into one file. <b>Note:</b> Since OpenOffice.org 3 it is no longer part of the SDK but it comes directly with the office as part of the <b>ure</b>.</td>
</tr>
<tr valign="top">
<td class="content3"><img src="images/arrow-1.gif"/></td>
<td><a href="#regview" title="link to the regview tool description">regview</a></td>
- <td class="content87">Tool to view the content of a registry file
+ <td class="content87">Tool to view the content of a legacy registry file
in a human readable manner. Special support for type library
nodes. <b>Note:</b> Since OpenOffice.org 3 it is no longer part of the SDK but it comes directly with the office as part of the <b>ure</b>.</td>
</tr>
@@ -87,7 +87,14 @@
<tr valign="top">
<td class="content3"><img src="images/arrow-1.gif"/></td>
<td><a href="#idlc" title="link to the idlc tool description">idlc</a></td>
- <td class="content87">The UNOIDL compiler, generates a common
+ <td class="content87">The deprecated UNOIDL compiler, generates a common
+ legacy binary type library format as base for all codemaker tools and
+ the UNO runtime type library.</td>
+ </tr>
+ <tr valign="top">
+ <td class="content3"><img src="images/arrow-1.gif"/></td>
+ <td><a href="#unoidl-write" title="link to the unoidl-write tool description">unoidl-write</a></td>
+ <td class="content87">The new UNOIDL compiler, generates a common
binary type library format as base for all codemaker tools and
the UNO runtime type library.</td>
</tr>
@@ -117,13 +124,13 @@
<tr valign="top">
<td class="content3"><img src="images/arrow-1.gif"/></td>
<td><a href="#regmerge" title="link to the regmerge tool description">regmerge</a></td>
- <td class="content87">Tool to merge several registry (e.g. type
+ <td class="content87">Deprecated tool to merge several legacy registry (e.g. type
libraries) files into one file.</td>
</tr>
<tr valign="top">
<td class="content3"><img src="images/arrow-1.gif"/></td>
<td><a href="#regview" title="link to the regview tool description">regview</a></td>
- <td class="content87">Tool to view the content of a registry file
+ <td class="content87">Tool to view the content of a legacy registry file
in a human readable manner. Special support for type library
nodes.</td>
</tr>
@@ -345,11 +352,14 @@
</tr>
<tr>
<td colspan="3">
- <p>'idlc' is the UNOIDL compiler. It is a full featured compiler used
+ <p>'idlc' is the deprecated 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.<br/>
You can find a syntax description for UNOIDL <a href="http://wiki.openoffice.org/wiki/Documentation/DevGuide/AppendixD/UNOIDL_Syntax_Specification" title="link to the &quot;UNOIDL Syntax Specification&quot; chapter in the Developer's Guide">here</a>.</p>
+ <p><b>Note:</b> idlc and regmerge are deprecated and produce a legacy binary type
+ library format that is different from the new format that is produced by
+ unoidl-write.</p>
<p class="head2">Usage:</p>
<blockquote>
<b><code>idlc [-options] file_1 ... file_n | @&lt;filename&gt;</code></b>
@@ -371,7 +381,7 @@
<tr>
<td class="cell15"><code>-O&lt;path&gt;</code></td>
<td class="cell85">path describes the output directory. The
- generated output is a registry file with the same name as the idl
+ generated output is a legacy registry file with the same name as the idl
input file.</td>
</tr>
<tr>
@@ -408,6 +418,66 @@
<td>
<table class="table2">
<tr>
+ <td colspan="2" class="head1"><a name="unoidl-write"/>unoidl-write</td>
+ <td align="right">
+ <a href="#tools" title="link to the tools overview"><img class="navigate" src="images/nav_up.png"/></a>
+ <a href="../index.html" title="link to the SDK start page"><img class="navigate" src="images/nav_home.png"/></a>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="3">
+ <p>'unoidl-write' is the new UNOIDL compiler, replacing the former idlc and regmerge tools. 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.<br/>
+ You can find a syntax description for UNOIDL <a href="http://wiki.openoffice.org/wiki/Documentation/DevGuide/AppendixD/UNOIDL_Syntax_Specification" title="link to the &quot;UNOIDL Syntax Specification&quot; chapter in the Developer's Guide">here</a>.</p>
+ <p><b>Note:</b> unoidl-write produces a new binary type library format that is
+ different from the legacy format that was produced by idlc and regmerge. While
+ recent versions of LibreOffice are still able to read the old format, versions of
+ LibreOffice prior to LibreOffice&nbsp;4.1 were not able to read the new format.
+ Thus, if you use this SDK to generate a LibreOffice extension that contains a type
+ library file produced by unoidl-write, you should specify a
+ <code>LibreOffice-minimal-version</code> of at least&nbsp;4.1 for that extension
+ (see <a
+ href="https://wiki.documentfoundation.org/Development/Extension_Development#Compatibility_notes">&ldquo;Extension
+ Development: Compatibility notes&rdquo;</a>).</p>
+ <p class="head2">Usage:</p>
+ <blockquote>
+ <b><code>unoidl-write [&lt;registries&gt;] [@&lt;entries file&gt;] &lt;unoidl file&gt;</code></b>
+ </blockquote>
+ <table class="table4">
+ <tr>
+ <td class="cell15"><code>&lt;registries&gt;</code></td>
+ <td class="cell85">each <code>&lt;registry&gt;</code> is either a new- or
+ legacy-format .rdb file, a single .idl file, or a root directory of an .idl
+ file tree.</td>
+ </tr>
+ <tr>
+ <td class="cell15"><code>@&lt;entries file&gt;</code></td>
+ <td class="cell85">a UTF-8 encoded file containing zero or more
+ space-separated names of (non-module) entities to include in the output; if
+ omitted, the output defaults to the complete content of the last
+ <code>&lt;registry&gt;</code>, if any.</td>
+ </tr>
+ <tr>
+ <td class="cell15"><code>@&lt;unoidl file&gt;</code></td>
+ <td class="cell85">specifies the name of the output file.</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ <td class="content1"><img class="nothing8" src="images/nada.gif"/></td>
+ </tr>
+ <tr>
+ <td colspan="3"><img class="line" src="images/sdk_line-1.gif"/></td>
+ </tr>
+ <tr>
+ <td class="content1"><img class="nothing8" src="images/nada.gif"/></td>
+ <td>
+ <table class="table2">
+ <tr>
<td colspan="2" class="head1"><a name="cppumaker"/>cppumaker</td>
<td align="right">
<a href="#tools" title="link to the tools overview"><img class="navigate" src="images/nav_up.png"/></a>
@@ -418,8 +488,8 @@
<td colspan="3">
<p>The 'cppumaker' generates a C++ representation for idl types. The
cppumaker works on a typelibrary, which is generated by the UNOIDL
- compiler (<a href="#idlc" title="link to the idlc tool description">
- idlc</a>). It generates the output for all specified types and for all
+ compiler (<a href="#unoidl-write" title="link to the unoidl-write tool description">
+ unoidl-write</a>). It generates the output for all specified types and for all
types the specified types depend on.</p>
<p class="head2">Usage:</p>
<blockquote>
@@ -509,8 +579,8 @@
<td colspan="3">
<p>The 'javamaker' generates the appropriate Java class file for each idl
type. The javamaker works on a typelibrary which is generated by the
- UNOIDL compiler (<a href="#idlc" title="link to the idlc tool description">
- idlc</a>). It generates the output for all specified types and for all
+ UNOIDL compiler (<a href="#unoidl-write" title="link to the unoidl-write tool description">
+ unoidl-write</a>). It generates the output for all specified types and for all
types the specified types depend on.</p>
<p class="head2">Usage:</p>
<blockquote>
@@ -588,8 +658,8 @@ types the specified types depend on.</p>
<td colspan="3">
<p>The 'climaker' (windows only) generates the appropriate CLI assemblies file for each idl
type. The climaker works on a typelibrary which is generated by the
- UNOIDL compiler (<a href="#idlc" title="link to the idlc tool description">
- idlc</a>). It generates the output for all specified types and for all
+ UNOIDL compiler (<a href="#unoidl-write" title="link to the unoidl-write tool description">
+ unoidl-write</a>). It generates the output for all specified types and for all
types the specified types depend on.</p>
<p class="head2">Usage:</p>
<blockquote>
@@ -796,10 +866,13 @@ types the specified types depend on.</p>
</tr>
<tr>
<td colspan="3">
- <p>'regmerge' is a small tool to merge different registry files under a
- specified key into another registry file. If a value already exists in
+ <p>The deprecated 'regmerge' is a small tool to merge different legacy registry files under a
+ specified key into another legacy registry file. If a value already exists in
the target file the value is overwritten by the value of the source
file.</p>
+ <p><b>Note:</b> idlc and regmerge are deprecated and produce a legacy binary type
+ library format that is different from the new format that is produced by
+ unoidl-write.</p>
<p class="head2">Usage:</p>
<blockquote>
<b><code>regmerge [-v|--verbose] &lt;mergefile&gt; &lt;mergeKeyName&gt; &lt;regfile_1&gt; ... &lt;regfile_n&gt;</code></b>
@@ -848,7 +921,7 @@ types the specified types depend on.</p>
</tr>
<tr>
<td colspan="3">
- <p>'regview' is a tool to show the contents of a registry file. The tool
+ <p>'regview' is a tool to show the contents of a legacy registry file. The tool
dumps the hierarchical structure and the values of the nodes in a human
readable manner to stdout.</p>
<p class="head2">Usage:</p>
diff --git a/odk/examples/DevelopersGuide/Components/CppComponent/Makefile b/odk/examples/DevelopersGuide/Components/CppComponent/Makefile
index 98a3eaf2b591..2a5b876a4749 100644
--- a/odk/examples/DevelopersGuide/Components/CppComponent/Makefile
+++ b/odk/examples/DevelopersGuide/Components/CppComponent/Makefile
@@ -59,6 +59,7 @@ COMP_PACKAGE = $(OUT_BIN)/$(COMP_NAME).$(UNOOXT_EXT)
COMP_PACKAGE_URL = $(subst \\,\,"$(COMP_PACKAGE_DIR)$(PS)$(COMP_NAME).$(UNOOXT_EXT)")
COMP_UNOPKG_MANIFEST = $(SAMPLE_GEN_OUT)/$(COMP_NAME)/META-INF/manifest.xml
COMP_COMPONENTS = $(SAMPLE_GEN_OUT)/$(COMP_NAME).components
+COMP_DESCRIPTION = $(SAMPLE_GEN_OUT)/description.xml
COMP_REGISTERFLAG = $(SAMPLE_GEN_OUT)/devguide_$(COMP_NAME)_register_component.flag
COMP_TYPEFLAG = $(SAMPLE_GEN_OUT)/devguide_$(COMP_NAME)_types.flag
@@ -70,11 +71,9 @@ CXXFILES = service1_impl.cxx \
SLOFILES = $(patsubst %.cxx,$(SAMPLE_SLO_OUT)/%.$(OBJ_EXT),$(CXXFILES))
-GENURDFILES = $(patsubst %.idl,$(SAMPLE_GEN_OUT)/%.urd,$(IDLFILES))
-
-TYPESLIST=-Tmy_module.XSomething \
- -Tmy_module.MyService1 \
- -Tmy_module.MyService2
+TYPESLIST=-Tmymodule.XSomething \
+ -Tmymodule.MyService1 \
+ -Tmymodule.MyService2
# Targets
.PHONY: ALL
@@ -83,14 +82,10 @@ ALL : \
include $(SETTINGS)/stdtarget.mk
-$(SAMPLE_GEN_OUT)/%.urd : %.idl
- -$(MKDIR) $(subst /,$(PS),$(@D))
- $(IDLC) -I. -I$(IDL_DIR) -O$(SAMPLE_GEN_OUT) $<
-
-$(SAMPLE_GEN_OUT)/%.rdb : $(GENURDFILES)
+$(SAMPLE_GEN_OUT)/%.rdb : $(IDLFILES)
-$(DEL) $(subst \\,\,$(subst /,$(PS),$@))
-$(MKDIR) $(subst /,$(PS),$(@D))
- $(REGMERGE) $@ /UCR $(GENURDFILES)
+ $(UNOIDLWRITE) $(URE_TYPES) $(OFFICE_TYPES) $< $@
$(COMP_TYPEFLAG) : $(COMP_RDB) $(SDKTYPEFLAG)
-$(DEL) $(subst \\,\,$(subst /,$(PS),$@))
@@ -137,21 +132,25 @@ $(COMP_COMPONENTS) :
@echo $(OSEP)?xml version="$(QM)1.0$(QM)" encoding="$(QM)UTF-8$(QM)"?$(CSEP) > $@
@echo $(OSEP)components xmlns="$(QM)http://openoffice.org/2010/uno-components$(QM)"$(CSEP) >> $@
@echo $(SQM) $(SQM)$(OSEP)component loader="$(QM)com.sun.star.loader.SharedLibrary$(QM)" uri="$(QM)$(UNOPKG_PLATFORM)/$(COMP_IMPL_NAME)$(QM)"$(CSEP) >> $@
- @echo $(SQM) $(SQM)$(OSEP)implementation name="$(QM)my_module.my_sc_implementation.MyService1$(QM)"$(CSEP) >> $@
- @echo $(SQM) $(SQM)$(OSEP)service name="$(QM)my_module.MyService1$(QM)"/$(CSEP) >> $@
+ @echo $(SQM) $(SQM)$(OSEP)implementation name="$(QM)mymodule.my_sc_implementation.MyService1$(QM)"$(CSEP) >> $@
+ @echo $(SQM) $(SQM)$(OSEP)service name="$(QM)mymodule.MyService1$(QM)"/$(CSEP) >> $@
@echo $(SQM) $(SQM)$(OSEP)/implementation$(CSEP) >> $@
- @echo $(SQM) $(SQM)$(OSEP)implementation name="$(QM)my_module.my_sc_implementation.MyService2$(QM)"$(CSEP) >> $@
- @echo $(SQM) $(SQM)$(OSEP)service name="$(QM)my_module.MyService2$(QM)"/$(CSEP) >> $@
+ @echo $(SQM) $(SQM)$(OSEP)implementation name="$(QM)mymodule.my_sc_implementation.MyService2$(QM)"$(CSEP) >> $@
+ @echo $(SQM) $(SQM)$(OSEP)service name="$(QM)mymodule.MyService2$(QM)"/$(CSEP) >> $@
@echo $(SQM) $(SQM)$(OSEP)/implementation$(CSEP) >> $@
@echo $(SQM) $(SQM)$(OSEP)/component$(CSEP) >> $@
@echo $(OSEP)/components$(CSEP) >> $@
-$(COMP_PACKAGE) : $(SHAREDLIB_OUT)/$(COMP_IMPL_NAME) $(COMP_RDB) $(COMP_UNOPKG_MANIFEST) $(COMP_COMPONENTS)
+$(COMP_DESCRIPTION) : description.xml
+ -$(MKDIR) $(subst /,$(PS),$(@D))
+ cp $^ $@
+
+$(COMP_PACKAGE) : $(SHAREDLIB_OUT)/$(COMP_IMPL_NAME) $(COMP_RDB) $(COMP_UNOPKG_MANIFEST) $(COMP_COMPONENTS) $(COMP_DESCRIPTION)
-$(DEL) $(subst \\,\,$(subst /,$(PS),$@))
-$(MKDIR) $(subst /,$(PS),$(@D))
-$(MKDIR) $(subst /,$(PS),$(SAMPLE_GEN_OUT)/$(UNOPKG_PLATFORM))
$(COPY) $(subst /,$(PS),$<) $(subst /,$(PS),$(SAMPLE_GEN_OUT)/$(UNOPKG_PLATFORM))
- cd $(subst /,$(PS),$(SAMPLE_GEN_OUT)) && $(SDK_ZIP) ../../bin/$(@F) $(COMP_NAME).components
+ cd $(subst /,$(PS),$(SAMPLE_GEN_OUT)) && $(SDK_ZIP) ../../bin/$(@F) $(COMP_NAME).components description.xml
cd $(subst /,$(PS),$(SAMPLE_GEN_OUT)) && $(SDK_ZIP) -u ../../bin/$(@F) $(COMP_RDB_NAME) $(UNOPKG_PLATFORM)/$(<F)
cd $(subst /,$(PS),$(SAMPLE_GEN_OUT)/$(subst .$(UNOOXT_EXT),,$(@F))) && $(SDK_ZIP) -u ../../../bin/$(@F) META-INF/manifest.xml
@@ -224,5 +223,6 @@ clean :
-$(DELRECURSIVE) $(subst /,$(PS),$(SAMPLE_SLO_OUT))
-$(DELRECURSIVE) $(subst /,$(PS),$(SAMPLE_OBJ_OUT))
-$(DEL) $(subst \\,\,$(subst /,$(PS),$(COMP_COMPONENTS)))
+ -$(DEL) $(subst \\,\,$(subst /,$(PS),$(COMP_DESCRIPTION)))
-$(DEL) $(subst \\,\,$(subst /,$(PS),$(OUT_BIN)/$(COMP_NAME)*))
-$(DEL) $(subst \\,\,$(subst /,$(PS),$(OUT_BIN)/*$(APP1_NAME)*))
diff --git a/odk/examples/DevelopersGuide/Components/CppComponent/TestCppComponent.cxx b/odk/examples/DevelopersGuide/Components/CppComponent/TestCppComponent.cxx
index 0dd690995dcd..95d46dd2b9b8 100644
--- a/odk/examples/DevelopersGuide/Components/CppComponent/TestCppComponent.cxx
+++ b/odk/examples/DevelopersGuide/Components/CppComponent/TestCppComponent.cxx
@@ -38,8 +38,8 @@
#include <cppuhelper/bootstrap.hxx>
#include <com/sun/star/bridge/XUnoUrlResolver.hpp>
#include <com/sun/star/frame/XComponentLoader.hpp>
-#include <my_module/MyService1.hpp>
-#include <my_module/MyService2.hpp>
+#include <mymodule/MyService1.hpp>
+#include <mymodule/MyService2.hpp>
using namespace com::sun::star::uno;
using namespace com::sun::star::lang;
@@ -57,15 +57,15 @@ SAL_IMPLEMENT_MAIN()
fprintf(stdout, "\nconnected to a running office...\n");
// create a new instance of MyService1
- Reference<my_module::XSomething> xSomething =
- my_module::MyService1::create(xContext);
+ Reference<mymodule::XSomething> xSomething =
+ mymodule::MyService1::create(xContext);
// call methodOne and print the return value on stdout
OUString s = xSomething->methodOne(OUString("Hello World!"));
fprintf(stdout,"\nCreate new instance of MyService1\nCall of XSomething.methOne at MyService1 = %s", OUStringToOString( s, RTL_TEXTENCODING_ASCII_US ).getStr());
// create a new instance of MyService2 with the specified string argument
- xSomething = my_module::MyService2::create(xContext, OUString("Hello My World!"));
+ xSomething = mymodule::MyService2::create(xContext, OUString("Hello My World!"));
// call methodTwo and print the return value of methodTwo
s = xSomething->methodTwo();
diff --git a/odk/examples/DevelopersGuide/Components/CppComponent/description.xml b/odk/examples/DevelopersGuide/Components/CppComponent/description.xml
new file mode 100644
index 000000000000..6c4e2396bd1b
--- /dev/null
+++ b/odk/examples/DevelopersGuide/Components/CppComponent/description.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+-->
+<d:description xmlns:d="http://openoffice.org/extensions/description/2006">
+ <d:dependencies>
+ <l:LibreOffice-minimal-version value="4.1" d:name="LibreOffice 4.1"
+ xmlns:l="http://libreoffice.org/extensions/description/2011"/>
+ </d:dependencies>
+</d:description>
diff --git a/odk/examples/DevelopersGuide/Components/CppComponent/service1_impl.cxx b/odk/examples/DevelopersGuide/Components/CppComponent/service1_impl.cxx
index a8b9305314f6..11320c252c34 100644
--- a/odk/examples/DevelopersGuide/Components/CppComponent/service1_impl.cxx
+++ b/odk/examples/DevelopersGuide/Components/CppComponent/service1_impl.cxx
@@ -40,7 +40,7 @@
#include <com/sun/star/lang/XServiceInfo.hpp>
#include <com/sun/star/lang/XTypeProvider.hpp>
-#include <my_module/XSomething.hpp>
+#include <mymodule/XSomething.hpp>
using namespace ::rtl; // for OUString
@@ -53,18 +53,18 @@ namespace my_sc_impl
Sequence< OUString > SAL_CALL getSupportedServiceNames_MyService1Impl()
{
Sequence< OUString > names(1);
- names[0] = "my_module.MyService1";
+ names[0] = "mymodule.MyService1";
return names;
}
OUString SAL_CALL getImplementationName_MyService1Impl()
{
- return OUString("my_module.my_sc_implementation.MyService1");
+ return OUString("mymodule.my_sc_implementation.MyService1");
}
class MyService1Impl
- : public ::my_module::XSomething
+ : public ::mymodule::XSomething
, public lang::XServiceInfo
, public lang::XTypeProvider
{
@@ -124,11 +124,11 @@ Any MyService1Impl::queryInterface( Type const & type )
static_cast< lang::XServiceInfo * >( this ) );
return makeAny( x );
}
- if (type.equals(::cppu::UnoType<my_module::XSomething>::get()))
+ if (type.equals(::cppu::UnoType<mymodule::XSomething>::get()))
{
// return sample interface
- Reference< ::my_module::XSomething > x(
- static_cast< ::my_module::XSomething * >( this ) );
+ Reference< ::mymodule::XSomething > x(
+ static_cast< ::mymodule::XSomething * >( this ) );
return makeAny( x );
}
// querying for unsupported type
@@ -158,7 +158,7 @@ Sequence< Type > MyService1Impl::getTypes()
Sequence< Type > seq( 3 );
seq[ 0 ] = ::cppu::UnoType<lang::XTypeProvider>::get();
seq[ 1 ] = ::cppu::UnoType<lang::XServiceInfo>::get();
- seq[ 2 ] = ::cppu::UnoType<my_module::XSomething>::get();
+ seq[ 2 ] = ::cppu::UnoType<mymodule::XSomething>::get();
return seq;
}
@@ -183,7 +183,7 @@ OUString MyService1Impl::methodTwo( )
OUString MyService1Impl::getImplementationName()
{
// unique implementation name
- return OUString("my_module.my_sc_implementation.MyService1");
+ return OUString("mymodule.my_sc_implementation.MyService1");
}
sal_Bool MyService1Impl::supportsService( OUString const & serviceName )
{
@@ -192,7 +192,7 @@ sal_Bool MyService1Impl::supportsService( OUString const & serviceName )
Sequence< OUString > MyService1Impl::getSupportedServiceNames()
{
// this object only supports one service
- OUString serviceName("my_module.MyService1");
+ OUString serviceName("mymodule.MyService1");
return Sequence< OUString >( &serviceName, 1 );
}
diff --git a/odk/examples/DevelopersGuide/Components/CppComponent/service2_impl.cxx b/odk/examples/DevelopersGuide/Components/CppComponent/service2_impl.cxx
index 1920f82ead7c..eecaec5a3db1 100644
--- a/odk/examples/DevelopersGuide/Components/CppComponent/service2_impl.cxx
+++ b/odk/examples/DevelopersGuide/Components/CppComponent/service2_impl.cxx
@@ -42,7 +42,7 @@
#include <com/sun/star/lang/XServiceInfo.hpp>
#include <com/sun/star/lang/XInitialization.hpp>
#include <com/sun/star/lang/IllegalArgumentException.hpp>
-#include <my_module/XSomething.hpp>
+#include <mymodule/XSomething.hpp>
using namespace ::rtl; // for OUString
@@ -61,17 +61,17 @@ extern Reference< XInterface > SAL_CALL create_MyService1Impl(
static Sequence< OUString > getSupportedServiceNames_MyService2Impl()
{
Sequence<OUString> names(1);
- names[0] = "my_module.MyService2";
+ names[0] = "mymodule.MyService2";
return names;
}
static OUString getImplementationName_MyService2Impl()
{
- return OUString("my_module.my_sc_implementation.MyService2");
+ return OUString("mymodule.my_sc_implementation.MyService2");
}
class MyService2Impl : public ::cppu::WeakImplHelper3<
- ::my_module::XSomething, lang::XServiceInfo, lang::XInitialization >
+ ::mymodule::XSomething, lang::XServiceInfo, lang::XInitialization >
{
OUString m_sData;
// it's good practice to store the context for further use when you use
@@ -138,7 +138,7 @@ OUString MyService2Impl::methodTwo( )
OUString MyService2Impl::getImplementationName()
{
// unique implementation name
- return OUString("my_module.my_sc_implementation.MyService2");
+ return OUString("mymodule.my_sc_implementation.MyService2");
}
sal_Bool MyService2Impl::supportsService( OUString const & serviceName )
diff --git a/odk/examples/DevelopersGuide/Components/CppComponent/some.idl b/odk/examples/DevelopersGuide/Components/CppComponent/some.idl
index 22f6f74d16ea..18e3395a16d7 100644
--- a/odk/examples/DevelopersGuide/Components/CppComponent/some.idl
+++ b/odk/examples/DevelopersGuide/Components/CppComponent/some.idl
@@ -36,7 +36,7 @@
#include <com/sun/star/uno/XInterface.idl>
#include <com/sun/star/lang/IllegalArgumentException.idl>
-module my_module
+module mymodule
{
interface XSomething
diff --git a/odk/examples/DevelopersGuide/Components/JavaComponent/Makefile b/odk/examples/DevelopersGuide/Components/JavaComponent/Makefile
index d78259e36936..a20c5f44406d 100644
--- a/odk/examples/DevelopersGuide/Components/JavaComponent/Makefile
+++ b/odk/examples/DevelopersGuide/Components/JavaComponent/Makefile
@@ -65,8 +65,6 @@ IDLFILES = XSomethingA.idl \
SomethingA.idl \
SomethingB.idl
-# normally the idl file should be stored in a directory tree fitting the module
-# structure, for the example we know the module structure
PACKAGE = com/sun/star/test
COMPJAVAFILES = \
@@ -77,7 +75,6 @@ COMPJAVAFILES = \
GENCLASSFILES = $(patsubst %.idl,$(OUT_COMP_CLASS)/$(PACKAGE)/%.class,$(IDLFILES))
GENCLASSNAMES = $(patsubst %.idl,$(PACKAGE)/%.class,$(IDLFILES))
GENTYPELIST = $(subst /,.,$(patsubst %.idl,-T$(PACKAGE)/% ,$(IDLFILES)))
-GENURDFILES = $(patsubst %.idl,$(OUT_COMP_GEN)/%.urd,$(IDLFILES))
COMPCLASSFILES = $(patsubst %.java,$(OUT_COMP_CLASS)/%.class,$(COMPJAVAFILES))
@@ -101,14 +98,10 @@ $(OUT_COMP_CLASS)/%.Manifest :
@echo UNO-Type-Path: $(basename $(notdir $*)).uno.jar> $@
@echo RegistrationClassName: TestServiceProvider>> $@
-$(OUT_COMP_GEN)/%.urd : %.idl
- -$(MKDIR) $(subst /,$(PS),$(@D))
- $(IDLC) -I. -I$(IDL_DIR) -O$(OUT_COMP_GEN) $^
-
-$(OUT_COMP_GEN)/%.rdb : $(GENURDFILES)
+$(OUT_COMP_GEN)/%.rdb : $(patsubst %,$(PACKAGE)/%,$(IDLFILES))
-$(DEL) $(subst \\,\,$(subst /,$(PS),$@))
-$(MKDIR) $(subst /,$(PS),$(@D))
- $(REGMERGE) $@ /UCR $(GENURDFILES)
+ $(UNOIDLWRITE) $(URE_TYPES) $(OFFICE_TYPES) . $@
$(OUT_COMP_CLASS)/$(PACKAGE)/%.class : $(COMP_RDB)
-$(MKDIR) $(subst /,$(PS),$(@D))
@@ -157,11 +150,11 @@ $(OUT_COMP_CLASS)/%/manifest.xml :
@echo $(OSEP)/manifest:manifest$(CSEP) >> $@
# rule for component package file
-$(COMP_PACKAGE) : $(COMP_RDB) $(COMP_JAR) $(COMP_UNOPKG_MANIFEST) $(COMP_COMPONENTS)
+$(COMP_PACKAGE) : $(COMP_RDB) $(COMP_JAR) $(COMP_UNOPKG_MANIFEST) $(COMP_COMPONENTS) description.xml
-$(DEL) $(subst \\,\,$(subst /,$(PS),$@))
-$(MKDIR) $(subst /,$(PS),$(@D))
$(COPY) $(subst /,$(PS),$(COMP_RDB)) $(subst /,$(PS),$(OUT_COMP_CLASS))
- $(SDK_ZIP) $@ $(COMP_COMPONENTS)
+ $(SDK_ZIP) $@ $(COMP_COMPONENTS) description.xml
cd $(subst /,$(PS),$(OUT_COMP_CLASS)) && $(SDK_ZIP) -u ../../bin/$(@F) $(COMP_RDB_NAME) $(COMP_JAR_NAME)
cd $(subst /,$(PS),$(OUT_COMP_CLASS)/$(subst .$(UNOOXT_EXT),,$(@F))) && $(SDK_ZIP) -u ../../../bin/$(@F) META-INF/manifest.xml
$(DEL) $(subst \\,\,$(subst /,$(PS),$(OUT_COMP_CLASS)/$(COMP_RDB_NAME)))
diff --git a/odk/examples/DevelopersGuide/Components/JavaComponent/SomethingA.idl b/odk/examples/DevelopersGuide/Components/JavaComponent/com/sun/star/test/SomethingA.idl
index e609ad461b75..e609ad461b75 100644
--- a/odk/examples/DevelopersGuide/Components/JavaComponent/SomethingA.idl
+++ b/odk/examples/DevelopersGuide/Components/JavaComponent/com/sun/star/test/SomethingA.idl
diff --git a/odk/examples/DevelopersGuide/Components/JavaComponent/SomethingB.idl b/odk/examples/DevelopersGuide/Components/JavaComponent/com/sun/star/test/SomethingB.idl
index 5f458aa889d9..5f458aa889d9 100644
--- a/odk/examples/DevelopersGuide/Components/JavaComponent/SomethingB.idl
+++ b/odk/examples/DevelopersGuide/Components/JavaComponent/com/sun/star/test/SomethingB.idl
diff --git a/odk/examples/DevelopersGuide/Components/JavaComponent/XSomethingA.idl b/odk/examples/DevelopersGuide/Components/JavaComponent/com/sun/star/test/XSomethingA.idl
index 61b501229e34..61b501229e34 100644
--- a/odk/examples/DevelopersGuide/Components/JavaComponent/XSomethingA.idl
+++ b/odk/examples/DevelopersGuide/Components/JavaComponent/com/sun/star/test/XSomethingA.idl
diff --git a/odk/examples/DevelopersGuide/Components/JavaComponent/XSomethingB.idl b/odk/examples/DevelopersGuide/Components/JavaComponent/com/sun/star/test/XSomethingB.idl
index 92d0bd19e711..92d0bd19e711 100644
--- a/odk/examples/DevelopersGuide/Components/JavaComponent/XSomethingB.idl
+++ b/odk/examples/DevelopersGuide/Components/JavaComponent/com/sun/star/test/XSomethingB.idl
diff --git a/odk/examples/DevelopersGuide/Components/JavaComponent/description.xml b/odk/examples/DevelopersGuide/Components/JavaComponent/description.xml
new file mode 100644
index 000000000000..6c4e2396bd1b
--- /dev/null
+++ b/odk/examples/DevelopersGuide/Components/JavaComponent/description.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+-->
+<d:description xmlns:d="http://openoffice.org/extensions/description/2006">
+ <d:dependencies>
+ <l:LibreOffice-minimal-version value="4.1" d:name="LibreOffice 4.1"
+ xmlns:l="http://libreoffice.org/extensions/description/2011"/>
+ </d:dependencies>
+</d:description>
diff --git a/odk/examples/DevelopersGuide/Components/SimpleLicense/Makefile b/odk/examples/DevelopersGuide/Components/SimpleLicense/Makefile
index efcac2aac3cf..5ee470fb0031 100644
--- a/odk/examples/DevelopersGuide/Components/SimpleLicense/Makefile
+++ b/odk/examples/DevelopersGuide/Components/SimpleLicense/Makefile
@@ -74,7 +74,6 @@ COMP_CLASSFILES = $(patsubst %.java,$(COMP_CLASS_OUT)/%.class,$(COMP_JAVAFILES))
GEN_CLASSFILES = $(patsubst %.idl,$(SAMPLE_CLASS_OUT)/$(PACKAGE)/%.class,$(IDLFILES))
GEN_TYPELIST = $(subst /,.,$(patsubst %.idl,-T$(PACKAGE)/% ,$(IDLFILES)))
-GEN_URDFILES = $(patsubst %.idl,$(SAMPLE_GEN_OUT)/%.urd,$(IDLFILES))
# the generated types are necessary for the component and the application jar
GEN_CLASSFILENAMES = $(subst $(SAMPLE_CLASS_OUT)/,,$(GEN_CLASSFILES))
@@ -96,14 +95,10 @@ $(COMP_GEN_OUT)/%.Manifest :
@echo UNO-Type-Path: $(basename $(notdir $*)).uno.jar> $@
@echo RegistrationClassName: $(basename $*)>> $@
-$(SAMPLE_GEN_OUT)/%.urd : %.idl
- -$(MKDIR) $(subst /,$(PS),$(@D))
- $(IDLC) -C -I. -I$(IDL_DIR) -O$(SAMPLE_GEN_OUT) $<
-
-$(COMP_GEN_OUT)/%.rdb : $(GEN_URDFILES)
+$(COMP_GEN_OUT)/%.rdb : $(IDLFILES)
-$(DEL) $(subst \\,\,$(subst /,$(PS),$@))
-$(MKDIR) $(subst /,$(PS),$(@D))
- $(REGMERGE) $@ /UCR $(GEN_URDFILES)
+ $(UNOIDLWRITE) $(URE_TYPES) $(OFFICE_TYPES) $< $@
$(GEN_CLASSFILES) : $(COMP_RDB)
-$(MKDIR) $(subst /,$(PS),$(@D))
diff --git a/odk/examples/DevelopersGuide/Components/SimpleLicense/description.xml b/odk/examples/DevelopersGuide/Components/SimpleLicense/description.xml
index efc2dcb172c3..e36a90b92c74 100644
--- a/odk/examples/DevelopersGuide/Components/SimpleLicense/description.xml
+++ b/odk/examples/DevelopersGuide/Components/SimpleLicense/description.xml
@@ -19,6 +19,11 @@
<description xmlns="http://openoffice.org/extensions/description/2006"
xmlns:xlink="http://www.w3.org/1999/xlink">
+ <dependencies>
+ <l:LibreOffice-minimal-version value="4.1" d:name="LibreOffice 4.1"
+ xmlns:d="http://openoffice.org/extensions/description/2006"
+ xmlns:l="http://libreoffice.org/extensions/description/2011"/>
+ </dependencies>
<registration>
<simple-license accept-by="admin" default-license-id="de">
<license-text xlink:href="registration/license_de.txt" lang="de" license-id="de" />
diff --git a/odk/examples/DevelopersGuide/Components/Thumbs/org/openoffice/comp/test/Makefile b/odk/examples/DevelopersGuide/Components/Thumbs/org/openoffice/comp/test/Makefile
index c89cbb62f0a6..8792173e645f 100644
--- a/odk/examples/DevelopersGuide/Components/Thumbs/org/openoffice/comp/test/Makefile
+++ b/odk/examples/DevelopersGuide/Components/Thumbs/org/openoffice/comp/test/Makefile
@@ -91,11 +91,11 @@ $(OUT_COMP_CLASS)/%/manifest.xml :
@echo $(OSEP)/manifest:manifest$(CSEP) >> $@
# rule for component package file
-$(COMP_PACKAGE) : $(COMP_RDB) $(COMP_JAR) $(COMP_UNOPKG_MANIFEST) $(COMP_COMPONENTS)
+$(COMP_PACKAGE) : $(COMP_RDB) $(COMP_JAR) $(COMP_UNOPKG_MANIFEST) $(COMP_COMPONENTS) description.xml
-$(DEL) $(subst \\,\,$(subst /,$(PS),$@))
-$(MKDIR) $(subst /,$(PS),$(@D))
$(COPY) $(subst /,$(PS),$(COMP_RDB)) $(subst /,$(PS),$(OUT_COMP_CLASS))
- $(SDK_ZIP) $@ $(COMP_COMPONENTS)
+ $(SDK_ZIP) $@ $(COMP_COMPONENTS) description.xml
cd $(subst /,$(PS),$(OUT_COMP_CLASS)) && $(SDK_ZIP) -u ../../bin/$(@F) $(COMP_RDB_NAME) $(COMP_JAR_NAME)
cd $(subst /,$(PS),$(OUT_COMP_CLASS)/$(subst .$(UNOOXT_EXT),,$(@F))) && $(SDK_ZIP) -u ../../../bin/$(@F) META-INF/manifest.xml
$(DEL) $(subst \\,\,$(subst /,$(PS),$(OUT_CLASS)/$(COMP_RDB_NAME)))
diff --git a/odk/examples/DevelopersGuide/Components/Thumbs/org/openoffice/comp/test/description.xml b/odk/examples/DevelopersGuide/Components/Thumbs/org/openoffice/comp/test/description.xml
new file mode 100644
index 000000000000..6c4e2396bd1b
--- /dev/null
+++ b/odk/examples/DevelopersGuide/Components/Thumbs/org/openoffice/comp/test/description.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+-->
+<d:description xmlns:d="http://openoffice.org/extensions/description/2006">
+ <d:dependencies>
+ <l:LibreOffice-minimal-version value="4.1" d:name="LibreOffice 4.1"
+ xmlns:l="http://libreoffice.org/extensions/description/2011"/>
+ </d:dependencies>
+</d:description>
diff --git a/odk/examples/DevelopersGuide/Components/Thumbs/org/openoffice/test/Makefile b/odk/examples/DevelopersGuide/Components/Thumbs/org/openoffice/test/Makefile
index a9f13dbf5920..b2622e9e69f8 100644
--- a/odk/examples/DevelopersGuide/Components/Thumbs/org/openoffice/test/Makefile
+++ b/odk/examples/DevelopersGuide/Components/Thumbs/org/openoffice/test/Makefile
@@ -54,14 +54,10 @@ ALL : \
include $(SETTINGS)/stdtarget.mk
-$(OUT_COMP_GEN)/%.urd : %.idl
- -$(MKDIR) $(subst /,$(PS),$(@D))
- $(IDLC) -I. -I../../.. -I$(IDL_DIR) -O$(OUT_COMP_GEN) $^
-
-$(OUT_COMP_GEN)/%.rdb : $(GENURDFILES)
+$(OUT_COMP_GEN)/%.rdb : $(IDLFILES)
-$(DEL) $(subst \\,\,$(subst /,$(PS),$@))
-$(MKDIR) $(subst /,$(PS),$(@D))
- $(REGMERGE) $@ /UCR $(GENURDFILES)
+ $(UNOIDLWRITE) $(URE_TYPES) $(OFFICE_TYPES) ../../.. $@
$(OUT_COMP_CLASS)/%.class : $(COMP_RDB)
-$(MKDIR) $(subst /,$(PS),$(@D))
diff --git a/odk/examples/DevelopersGuide/Components/Thumbs/thumbs.mk b/odk/examples/DevelopersGuide/Components/Thumbs/thumbs.mk
index d5dbc181e83e..07f9bfea9848 100644
--- a/odk/examples/DevelopersGuide/Components/Thumbs/thumbs.mk
+++ b/odk/examples/DevelopersGuide/Components/Thumbs/thumbs.mk
@@ -40,7 +40,6 @@ IDLFILES = XImageShrink.idl \
GENCLASSFILES = $(patsubst %.idl,$(OUT_COMP_CLASS)/$(IDL_PACKAGE)/%.class,$(IDLFILES))
GENCLASSNAMES = $(patsubst %.idl,$(IDL_PACKAGE)/%.class,$(IDLFILES))
GENTYPELIST = $(subst /,.,$(patsubst %.idl,-T$(IDL_PACKAGE)/% ,$(IDLFILES)))
-GENURDFILES = $(patsubst %.idl,$(OUT_COMP_GEN)/%.urd,$(IDLFILES))
APP1_NAME=Thumbs
APP1_JAR=$(OUT_COMP_CLASS)/$(APP1_NAME).jar
diff --git a/odk/examples/DevelopersGuide/Components/dialogcomponent/Makefile b/odk/examples/DevelopersGuide/Components/dialogcomponent/Makefile
index 23d766868eb4..84d489e1895b 100644
--- a/odk/examples/DevelopersGuide/Components/dialogcomponent/Makefile
+++ b/odk/examples/DevelopersGuide/Components/dialogcomponent/Makefile
@@ -65,8 +65,6 @@ COMP_COMPONENTS=$(COMP_NAME).components
IDLFILES = XTestDialogHandler.idl \
TestDialogHandler.idl
-# normally the idl file should be stored in a directory tree fitting the module structure,
-# for the example we know the module structure
PACKAGE = com/sun/star/test
#PACKAGE = org/openoffice
@@ -75,7 +73,6 @@ COMP_CLASSFILES = $(patsubst %.java,$(COMP_CLASS_OUT)/%.class,$(COMP_JAVAFILES))
GEN_CLASSFILES = $(patsubst %.idl,$(SAMPLE_CLASS_OUT)/$(PACKAGE)/%.class,$(IDLFILES))
GEN_TYPELIST = $(subst /,.,$(patsubst %.idl,-T$(PACKAGE)/% ,$(IDLFILES)))
-GEN_URDFILES = $(patsubst %.idl,$(SAMPLE_GEN_OUT)/%.urd,$(IDLFILES))
# the generated types are necessary for the component and the application jar
GEN_CLASSFILENAMES = $(subst $(SAMPLE_CLASS_OUT)/,,$(GEN_CLASSFILES))
@@ -97,14 +94,10 @@ $(COMP_GEN_OUT)/%.Manifest :
@echo UNO-Type-Path: $(basename $(notdir $*)).uno.jar> $@
@echo RegistrationClassName: $(basename $*)>> $@
-$(SAMPLE_GEN_OUT)/%.urd : %.idl
- -$(MKDIR) $(subst /,$(PS),$(@D))
- $(IDLC) -C -I. -I$(IDL_DIR) -O$(SAMPLE_GEN_OUT) $<
-
-$(COMP_GEN_OUT)/%.rdb : $(GEN_URDFILES)
+$(COMP_GEN_OUT)/%.rdb : $(patsubst %,$(PACKAGE)/%,$(IDLFILES))
-$(DEL) $(subst \\,\,$(subst /,$(PS),$@))
-$(MKDIR) $(subst /,$(PS),$(@D))
- $(REGMERGE) $@ /UCR $(GEN_URDFILES)
+ $(UNOIDLWRITE) $(URE_TYPES) $(OFFICE_TYPES) . $@
$(GEN_CLASSFILES) : $(COMP_RDB)
-$(MKDIR) $(subst /,$(PS),$(@D))
@@ -136,10 +129,10 @@ $(COMP_GEN_OUT)/%/manifest.xml :
@echo $(OSEP)/manifest:manifest$(CSEP) >> $@
# rule for component package file
-$(COMP_PACKAGE) : $(COMP_RDB) $(COMP_JAR) $(COMP_UNOPKG_MANIFEST) $(COMP_COMPONENTS)
+$(COMP_PACKAGE) : $(COMP_RDB) $(COMP_JAR) $(COMP_UNOPKG_MANIFEST) $(COMP_COMPONENTS) description.xml
-$(DEL) $(subst \\,\,$(subst /,$(PS),$@))
-$(MKDIR) $(subst /,$(PS),$(@D))
- $(SDK_ZIP) $@ $(COMP_COMPONENTS)
+ $(SDK_ZIP) $@ $(COMP_COMPONENTS) description.xml
cd $(subst /,$(PS),$(COMP_GEN_OUT)) && $(SDK_ZIP) -u ../../../bin/$(@F) $(COMP_RDB_NAME)
cd $(subst /,$(PS),$(SAMPLE_CLASS_OUT)) && $(SDK_ZIP) -u ../../bin/$(@F) $(COMP_JAR_NAME)
cd $(subst /,$(PS),$(COMP_GEN_OUT)) && $(SDK_ZIP) -u ../../../bin/$(@F) META-INF/manifest.xml
diff --git a/odk/examples/DevelopersGuide/Components/dialogcomponent/TestDialogHandler.idl b/odk/examples/DevelopersGuide/Components/dialogcomponent/com/sun/star/test/TestDialogHandler.idl
index 1c5e8ad4c199..1c5e8ad4c199 100644
--- a/odk/examples/DevelopersGuide/Components/dialogcomponent/TestDialogHandler.idl
+++ b/odk/examples/DevelopersGuide/Components/dialogcomponent/com/sun/star/test/TestDialogHandler.idl
diff --git a/odk/examples/DevelopersGuide/Components/dialogcomponent/XTestDialogHandler.idl b/odk/examples/DevelopersGuide/Components/dialogcomponent/com/sun/star/test/XTestDialogHandler.idl
index b7c680f3666d..b7c680f3666d 100644
--- a/odk/examples/DevelopersGuide/Components/dialogcomponent/XTestDialogHandler.idl
+++ b/odk/examples/DevelopersGuide/Components/dialogcomponent/com/sun/star/test/XTestDialogHandler.idl
diff --git a/odk/examples/DevelopersGuide/Components/dialogcomponent/description.xml b/odk/examples/DevelopersGuide/Components/dialogcomponent/description.xml
new file mode 100644
index 000000000000..6c4e2396bd1b
--- /dev/null
+++ b/odk/examples/DevelopersGuide/Components/dialogcomponent/description.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+-->
+<d:description xmlns:d="http://openoffice.org/extensions/description/2006">
+ <d:dependencies>
+ <l:LibreOffice-minimal-version value="4.1" d:name="LibreOffice 4.1"
+ xmlns:l="http://libreoffice.org/extensions/description/2011"/>
+ </d:dependencies>
+</d:description>
diff --git a/odk/examples/DevelopersGuide/Spreadsheet/Makefile b/odk/examples/DevelopersGuide/Spreadsheet/Makefile
index 39633e176919..e5b8401d6879 100644
--- a/odk/examples/DevelopersGuide/Spreadsheet/Makefile
+++ b/odk/examples/DevelopersGuide/Spreadsheet/Makefile
@@ -111,7 +111,6 @@ APP_CLASSNAMES = $(patsubst %.java,%.class,$(APP_JAVAFILES))
COMP1_GENCLASSFILES = $(patsubst %.idl,$(COMP1_CLASS_OUT)/$(PACKAGE)/%.class,$(COMP1_IDLFILES))
COMP1_GENTYPELIST = $(subst /,.,$(patsubst %.idl,-T$(PACKAGE)/% ,$(COMP1_IDLFILES)))
-COMP1_GENURDFILES = $(patsubst %.idl,$(COMP1_GEN_OUT)/%.urd,$(COMP1_IDLFILES))
COMP1_CLASSFILES = $(patsubst %.java,$(COMP1_CLASS_OUT)/%.class,$(COMP1_JAVAFILES))
@@ -139,14 +138,10 @@ $(SAMPLE_GEN_OUT)/%.Manifest :
@echo RegistrationClassName: $(basename $(basename $(@F)))>> $@
# IDLs only for component 1 relevant
-$(COMP1_GEN_OUT)/%.urd : %.idl
- -$(MKDIR) $(subst /,$(PS),$(@D))
- $(IDLC) -I. -I$(IDL_DIR) -O$(COMP1_GEN_OUT) $^
-
-$(COMP1_RDB) : $(COMP1_GENURDFILES)
+$(COMP1_RDB) : $(COMP1_IDLFILES)
-$(DEL) $(subst \\,\,$(subst /,$(PS),$@))
-$(MKDIR) $(subst /,$(PS),$(@D))
- $(REGMERGE) $@ /UCR $<
+ $(UNOIDLWRITE) $(URE_TYPES) $(OFFICE_TYPES) $< $@
$(COMP1_CLASS_OUT)/$(PACKAGE)/%.class : $(COMP1_RDB)
-$(MKDIR) $(subst /,$(PS),$(@D))
@@ -190,11 +185,11 @@ $(COMP2_UNOPKG_MANIFEST) :
@echo $(SQM) $(SQM)manifest:full-path="$(QM)$(COMP2_COMPONENTS)$(QM)"/$(CSEP)>> $@
@echo $(OSEP)/manifest:manifest$(CSEP) >> $@
-$(COMP1_PACKAGE) : $(COMP1_RDB) $(COMP1_JAR) $(COMP1_UNOPKG_MANIFEST) $(COMP1_COMPONENTS)
+$(COMP1_PACKAGE) : $(COMP1_RDB) $(COMP1_JAR) $(COMP1_UNOPKG_MANIFEST) $(COMP1_COMPONENTS) description.xml
echo "####" $(@)
-$(DEL) $(subst \\,\,$(subst /,$(PS),$@))
-$(MKDIR) $(subst /,$(PS),$(@D))
- $(SDK_ZIP) $@ $(COMP1_COMPONENTS)
+ $(SDK_ZIP) $@ $(COMP1_COMPONENTS) description.xml
cd $(subst /,$(PS),$(COMP1_GEN_OUT)) && $(SDK_ZIP) -u ../../../bin/$(@F) $(<F)
cd $(subst /,$(PS),$(SAMPLE_CLASS_OUT)) && $(SDK_ZIP) -u ../../bin/$(@F) $(COMP1_JAR_NAME)
cd $(subst /,$(PS),$(COMP1_GEN_OUT)/$(subst .$(UNOOXT_EXT),,$(@F))) && $(SDK_ZIP) -u ../../../../bin/$(@F) META-INF/manifest.xml
diff --git a/odk/examples/DevelopersGuide/Spreadsheet/description.xml b/odk/examples/DevelopersGuide/Spreadsheet/description.xml
new file mode 100644
index 000000000000..6c4e2396bd1b
--- /dev/null
+++ b/odk/examples/DevelopersGuide/Spreadsheet/description.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+-->
+<d:description xmlns:d="http://openoffice.org/extensions/description/2006">
+ <d:dependencies>
+ <l:LibreOffice-minimal-version value="4.1" d:name="LibreOffice 4.1"
+ xmlns:l="http://libreoffice.org/extensions/description/2011"/>
+ </d:dependencies>
+</d:description>
diff --git a/odk/examples/cpp/counter/Makefile b/odk/examples/cpp/counter/Makefile
index b848adb02afd..1694c9d4459a 100644
--- a/odk/examples/cpp/counter/Makefile
+++ b/odk/examples/cpp/counter/Makefile
@@ -66,8 +66,6 @@ CXXFILES = countermain.cxx
SLOFILES = $(patsubst %.cxx,$(OUT_COMP_SLO)/%.$(OBJ_EXT),$(COMPCXXFILES))
OBJFILES = $(patsubst %.cxx,$(OUT_COMP_SLO)/%.$(OBJ_EXT),$(CXXFILES))
-GENURDFILES = $(patsubst %.idl,$(OUT_COMP_GEN)/%.urd,$(IDLFILES))
-
TYPESLIST = -Tfoo.XCountable
# Targets
@@ -77,16 +75,10 @@ ALL : \
include $(SETTINGS)/stdtarget.mk
-$(OUT_COMP_GEN)/%.urd : %.idl
- -$(MKDIR) $(subst /,$(PS),$(@D))
- $(IDLC) -I. -I$(IDL_DIR) -O$(OUT_COMP_GEN) $<
-
-# This example type library will be extended by the URE types
-$(OUT_BIN)/%.rdb : $(GENURDFILES)
+$(OUT_BIN)/%.rdb : $(IDLFILES)
-$(MKDIR) $(subst /,$(PS),$(@D))
-$(DEL) $(subst \\,\,$(subst /,$(PS),$@))
- $(REGMERGE) $@ /UCR $(GENURDFILES)
-# $(REGMERGE) $@ / $(URE_TYPES)
+ $(UNOIDLWRITE) $(URE_TYPES) $(OFFICE_TYPES) $< $@
$(COMP_TYPEFLAG) : $(COMP_RDB) $(SDKTYPEFLAG)
-$(MKDIR) $(subst /,$(PS),$(@D))
diff --git a/odk/examples/java/Inspector/Makefile b/odk/examples/java/Inspector/Makefile
index a0d80bf6d36d..b7c611be0d40 100644
--- a/odk/examples/java/Inspector/Makefile
+++ b/odk/examples/java/Inspector/Makefile
@@ -65,8 +65,6 @@ COMP_REGISTERFLAG=$(COMP_GEN_OUT)$(PS)java_$(COMP_NAME)_register_component.flag
IDLFILES = InstanceInspector.idl \
XInstanceInspector.idl
-# normally the idl file should be stored in a directory tree fitting the
-# module structure, for the example we know the module structure
PACKAGE = org/openoffice
COMP_JAVAFILES = XDialogProvider.java XTreeControlProvider.java XTreePathProvider.java MethodParametersDialog.java HideableMutableTreeNode.java HideableTreeModel.java Introspector.java XUnoNode.java SwingUnoNode.java UnoNode.java XUnoMethodNode.java SwingUnoMethodNode.java UnoMethodNode.java XUnoPropertyNode.java SwingUnoPropertyNode.java UnoPropertyNode.java XUnoFacetteNode.java SwingUnoFacetteNode.java TDocSupplier.java UnoTreeRenderer.java InspectorAddon.java XLanguageSourceCodeGenerator.java SourceCodeGenerator.java InspectorPane.java SwingDialogProvider.java SwingTreeControlProvider.java SwingTreePathProvider.java Inspector.java
@@ -74,7 +72,6 @@ COMP_CLASSFILES = $(patsubst %.java,$(COMP_CLASS_OUT)/%.class,$(COMP_JAVAFILES))
GEN_CLASSFILES = $(patsubst %.idl,$(SAMPLE_CLASS_OUT)/$(PACKAGE)/%.class,$(IDLFILES))
GEN_TYPELIST = $(subst /,.,$(patsubst %.idl,-T$(PACKAGE)/% ,$(IDLFILES)))
-GEN_URDFILES = $(patsubst %.idl,$(SAMPLE_GEN_OUT)/%.urd,$(IDLFILES))
# the generated types are necessary for the component jar
GEN_CLASSFILENAMES = $(subst $(SAMPLE_CLASS_OUT)/,,$(GEN_CLASSFILES))
@@ -101,16 +98,11 @@ $(COMP_GEN_OUT)/%.Manifest :
-$(MKDIR) $(subst /,$(PS),$(@D))
@echo RegistrationClassName: $(basename $(basename $(@F)))> $@
-# rule for compiling the IDL files
-$(SAMPLE_GEN_OUT)/%.urd : %.idl
- -$(MKDIR) $(subst /,$(PS),$(@D))
- $(IDLC) -C -I. -I$(IDL_DIR) -O$(SAMPLE_GEN_OUT) $<
-
# rule for creating the component rdb file
-$(COMP_GEN_OUT)/%.rdb : $(GEN_URDFILES)
+$(COMP_GEN_OUT)/%.rdb : $(patsubst %,$(PACKAGE)/%,$(IDLFILES))
-$(DEL) $(subst \\,\,$(subst /,$(PS),$@))
-$(MKDIR) $(subst /,$(PS),$(@D))
- $(REGMERGE) $@ /UCR $(GEN_URDFILES)
+ $(UNOIDLWRITE) $(URE_TYPES) $(OFFICE_TYPES) . $@
# rule for creating IDL dependent class files
$(GEN_CLASSFILES) : $(COMP_RDB)
@@ -152,13 +144,13 @@ $(COMP_GEN_OUT)/%/manifest.xml :
@echo $(OSEP)/manifest:manifest$(CSEP) >> $@
# rule for component package file
-$(COMP_PACKAGE) : $(COMP_RDB) $(COMP_JAR) Addons.xcu ProtocolHandler.xcu ObjectInspector.xcu ObjectInspector.xcs $(COMP_UNOPKG_MANIFEST)
+$(COMP_PACKAGE) : $(COMP_RDB) $(COMP_JAR) Addons.xcu ProtocolHandler.xcu ObjectInspector.xcu ObjectInspector.xcs description.xml $(COMP_UNOPKG_MANIFEST)
-$(DEL) $(subst \\,\,$(subst /,$(PS),$@))
-$(MKDIR) $(subst /,$(PS),$(@D))
cd $(subst /,$(PS),$(COMP_GEN_OUT)) && $(SDK_ZIP) ../../../bin/$(@F) $(COMP_RDB_NAME)
cd $(subst /,$(PS),$(SAMPLE_CLASS_OUT)) && $(SDK_ZIP) -u ../../bin/$(@F) $(COMP_JAR_NAME)
- $(SDK_ZIP) -u $@ Addons.xcu ProtocolHandler.xcu ObjectInspector.xcu ObjectInspector.xcs
+ $(SDK_ZIP) -u $@ Addons.xcu ProtocolHandler.xcu ObjectInspector.xcu ObjectInspector.xcs description.xml
cd $(subst /,$(PS),$(COMP_GEN_OUT)) && $(SDK_ZIP) -u ../../../bin/$(@F) META-INF/manifest.xml
$(COMP_REGISTERFLAG) : $(COMP_PACKAGE)
diff --git a/odk/examples/java/Inspector/description.xml b/odk/examples/java/Inspector/description.xml
new file mode 100644
index 000000000000..6c4e2396bd1b
--- /dev/null
+++ b/odk/examples/java/Inspector/description.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+-->
+<d:description xmlns:d="http://openoffice.org/extensions/description/2006">
+ <d:dependencies>
+ <l:LibreOffice-minimal-version value="4.1" d:name="LibreOffice 4.1"
+ xmlns:l="http://libreoffice.org/extensions/description/2011"/>
+ </d:dependencies>
+</d:description>
diff --git a/odk/examples/java/Inspector/InstanceInspector.idl b/odk/examples/java/Inspector/org/openoffice/InstanceInspector.idl
index 81b3961703c5..81b3961703c5 100644
--- a/odk/examples/java/Inspector/InstanceInspector.idl
+++ b/odk/examples/java/Inspector/org/openoffice/InstanceInspector.idl
diff --git a/odk/examples/java/Inspector/XInstanceInspector.idl b/odk/examples/java/Inspector/org/openoffice/XInstanceInspector.idl
index ca96a27e1c57..ca96a27e1c57 100644
--- a/odk/examples/java/Inspector/XInstanceInspector.idl
+++ b/odk/examples/java/Inspector/org/openoffice/XInstanceInspector.idl
diff --git a/odk/examples/java/MinimalComponent/Makefile b/odk/examples/java/MinimalComponent/Makefile
index 0639b1cacaa7..5b303ddb64ea 100644
--- a/odk/examples/java/MinimalComponent/Makefile
+++ b/odk/examples/java/MinimalComponent/Makefile
@@ -79,7 +79,6 @@ COMP_CLASSFILES = $(patsubst %.java,$(COMP_CLASS_OUT)/%.class,$(COMP_JAVAFILES))
GEN_CLASSFILES = $(patsubst %.idl,$(SAMPLE_CLASS_OUT)/$(PACKAGE)/%.class,$(IDLFILES))
GEN_TYPELIST = $(subst /,.,$(patsubst %.idl,-T$(PACKAGE)/% ,$(IDLFILES)))
-GEN_URDFILES = $(patsubst %.idl,$(SAMPLE_GEN_OUT)/%.urd,$(IDLFILES))
# the generated types are necessary for the component and the application jar
GEN_CLASSFILENAMES = $(subst $(SAMPLE_CLASS_OUT)/,,$(GEN_CLASSFILES))
@@ -101,14 +100,10 @@ $(COMP_GEN_OUT)/%.Manifest :
@echo UNO-Type-Path: $(basename $*).uno.jar> $@
@echo RegistrationClassName: $(basename $*)>> $@
-$(SAMPLE_GEN_OUT)/%.urd : %.idl
- -$(MKDIR) $(subst /,$(PS),$(@D))
- $(IDLC) -C -I. -I$(IDL_DIR) -O$(SAMPLE_GEN_OUT) $<
-
-$(COMP_GEN_OUT)/%.rdb : $(GEN_URDFILES)
+$(COMP_GEN_OUT)/%.rdb : $(IDLFILES)
-$(DEL) $(subst \\,\,$(subst /,$(PS),$@))
-$(MKDIR) $(subst /,$(PS),$(@D))
- $(REGMERGE) $@ /UCR $(GEN_URDFILES)
+ $(UNOIDLWRITE) $(URE_TYPES) $(OFFICE_TYPES) $< $@
$(GEN_CLASSFILES) : $(COMP_RDB)
-$(MKDIR) $(subst /,$(PS),$(@D))
@@ -161,10 +156,10 @@ $(COMP_GEN_OUT)/%/manifest.xml :
@echo $(OSEP)/manifest:manifest$(CSEP) >> $@
# rule for component package file
-$(COMP_PACKAGE) : $(COMP_RDB) $(COMP_JAR) $(COMP_UNOPKG_MANIFEST) $(COMP_NAME).components
+$(COMP_PACKAGE) : $(COMP_RDB) $(COMP_JAR) $(COMP_UNOPKG_MANIFEST) $(COMP_NAME).components description.xml
-$(DEL) $(subst \\,\,$(subst /,$(PS),$@))
-$(MKDIR) $(subst /,$(PS),$(@D))
- $(SDK_ZIP) $@ $(COMP_NAME).components
+ $(SDK_ZIP) $@ $(COMP_NAME).components description.xml
cd $(subst /,$(PS),$(COMP_GEN_OUT)) && $(SDK_ZIP) -u ../../../bin/$(@F) $(COMP_RDB_NAME)
cd $(subst /,$(PS),$(SAMPLE_CLASS_OUT)) && $(SDK_ZIP) -u ../../bin/$(@F) $(COMP_JAR_NAME)
cd $(subst /,$(PS),$(COMP_GEN_OUT)) && $(SDK_ZIP) -u ../../../bin/$(@F) META-INF/manifest.xml
diff --git a/odk/examples/java/MinimalComponent/description.xml b/odk/examples/java/MinimalComponent/description.xml
new file mode 100644
index 000000000000..6c4e2396bd1b
--- /dev/null
+++ b/odk/examples/java/MinimalComponent/description.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+-->
+<d:description xmlns:d="http://openoffice.org/extensions/description/2006">
+ <d:dependencies>
+ <l:LibreOffice-minimal-version value="4.1" d:name="LibreOffice 4.1"
+ xmlns:l="http://libreoffice.org/extensions/description/2011"/>
+ </d:dependencies>
+</d:description>
diff --git a/odk/examples/java/Spreadsheet/Makefile b/odk/examples/java/Spreadsheet/Makefile
index e246628496f5..f4d845be9fda 100644
--- a/odk/examples/java/Spreadsheet/Makefile
+++ b/odk/examples/java/Spreadsheet/Makefile
@@ -75,7 +75,6 @@ COMPJAVAFILES = CalcAddins.java
#GENJAVAFILES = $(patsubst %.idl,$(OUT_COMP_GEN)/$(PACKAGE)/%.java,$(IDLFILES))
GENCLASSFILES = $(patsubst %.idl,$(OUT_COMP_CLASS)/$(PACKAGE)/%.class,$(IDLFILES))
GENTYPELIST = $(subst /,.,$(patsubst %.idl,-T$(PACKAGE)/% ,$(IDLFILES)))
-GENURDFILES = $(patsubst %.idl,$(OUT_COMP_GEN)/%.urd,$(IDLFILES))
COMPCLASSFILES = $(patsubst %.java,$(OUT_COMP_CLASS)/%.class,$(COMPJAVAFILES))
#COMPCLASSFILES += $(subst $(OUT_COMP_GEN),$(OUT_COMP_CLASS),$(GENJAVAFILES:.java=.class))
@@ -101,14 +100,10 @@ $(OUT_COMP_CLASS)/%.Manifest :
@echo UNO-Type-Path: $(basename $*).uno.jar> $@
@echo RegistrationClassName: $(basename $*)>> $@
-$(OUT_COMP_GEN)/%.urd : %.idl
- -$(MKDIR) $(subst /,$(PS),$(@D))
- $(IDLC) -C -I. -I$(IDL_DIR) -O$(OUT_COMP_GEN) $<
-
-$(OUT_COMP_GEN)/%.rdb : $(GENURDFILES)
+$(OUT_COMP_GEN)/%.rdb : $(IDLFILES)
-$(DEL) $(subst \\,\,$(subst /,$(PS),$@))
-$(MKDIR) $(subst /,$(PS),$(@D))
- $(REGMERGE) $@ /UCR $(GENURDFILES)
+ $(UNOIDLWRITE) $(URE_TYPES) $(OFFICE_TYPES) $< $@
#$(OUT_COMP_GEN)/%.java : $(COMP_RDB)
$(GENCLASSFILES) : $(COMP_RDB)
@@ -157,11 +152,11 @@ $(OUT_COMP_CLASS)/%/manifest.xml :
@echo $(OSEP)/manifest:manifest$(CSEP) >> $@
# rule for component package file
-$(COMP_PACKAGE) : $(COMP_RDB) $(COMP_JAR) $(COMP_UNOPKG_MANIFEST) $(COMP_NAME).components
+$(COMP_PACKAGE) : $(COMP_RDB) $(COMP_JAR) $(COMP_UNOPKG_MANIFEST) $(COMP_NAME).components description.xml
-$(DEL) $(subst \\,\,$(subst /,$(PS),$@))
-$(MKDIR) $(subst /,$(PS),$(@D))
$(COPY) $(subst /,$(PS),$<) $(subst /,$(PS),$(OUT_COMP_CLASS))
- $(SDK_ZIP) $@ -u $(COMP_NAME).components
+ $(SDK_ZIP) $@ -u $(COMP_NAME).components description.xml
cd $(subst /,$(PS),$(OUT_COMP_CLASS)) && $(SDK_ZIP) -u ../../bin/$(@F) $(COMP_RDB_NAME) $(COMP_JAR_NAME)
cd $(subst /,$(PS),$(OUT_COMP_CLASS)/$(subst .$(UNOOXT_EXT),,$(@F))) && $(SDK_ZIP) -u ../../../bin/$(@F) META-INF/manifest.xml
$(DEL) $(subst \\,\,$(subst /,$(PS),$(OUT_COMP_CLASS)/$(<F)))
diff --git a/odk/examples/java/Spreadsheet/description.xml b/odk/examples/java/Spreadsheet/description.xml
new file mode 100644
index 000000000000..6c4e2396bd1b
--- /dev/null
+++ b/odk/examples/java/Spreadsheet/description.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+-->
+<d:description xmlns:d="http://openoffice.org/extensions/description/2006">
+ <d:dependencies>
+ <l:LibreOffice-minimal-version value="4.1" d:name="LibreOffice 4.1"
+ xmlns:l="http://libreoffice.org/extensions/description/2011"/>
+ </d:dependencies>
+</d:description>
diff --git a/odk/examples/java/ToDo/Makefile b/odk/examples/java/ToDo/Makefile
index 94fc4dde8a00..4fdc8a31f364 100644
--- a/odk/examples/java/ToDo/Makefile
+++ b/odk/examples/java/ToDo/Makefile
@@ -58,8 +58,6 @@ COMP_COMPONENTS=$(COMP_NAME).components
IDLFILES = XToDo.idl \
ToDo.idl
-# normally the idl file should be stored in a directory tree fitting the module
-# structure, for the example we know the module structure
PACKAGE = org/openoffice
COMP_JAVAFILES = ToDo.java
@@ -67,7 +65,6 @@ COMP_CLASSFILES = $(patsubst %.java,$(COMP_CLASS_OUT)/%.class,$(COMP_JAVAFILES))
GEN_CLASSFILES = $(patsubst %.idl,$(COMP_CLASS_OUT)/$(PACKAGE)/%.class,$(IDLFILES))
GEN_TYPELIST = $(subst /,.,$(patsubst %.idl,-T$(PACKAGE)/% ,$(IDLFILES)))
-GEN_URDFILES = $(patsubst %.idl,$(COMP_GEN_OUT)/%.urd,$(IDLFILES))
$(COMP_NAME)_CLASSFILES = $(COMP_NAME).class \
@@ -90,14 +87,10 @@ $(COMP_CLASS_OUT)/%.Manifest :
@echo UNO-Type-Path: $(basename $*).uno.jar> $@
@echo RegistrationClassName: $(basename $(basename $(@F)))>> $@
-$(COMP_GEN_OUT)/%.urd : %.idl
- -$(MKDIR) $(subst /,$(PS),$(@D))
- $(IDLC) -C -I. -I$(IDL_DIR) -O$(COMP_GEN_OUT) $<
-
-$(COMP_GEN_OUT)/%.rdb : $(GEN_URDFILES)
+$(COMP_GEN_OUT)/%.rdb : $(patsubst %,$(PACKAGE)/%,$(IDLFILES))
-$(DEL) $(subst \\,\,$(subst /,$(PS),$@))
-$(MKDIR) $(subst /,$(PS),$(@D))
- $(REGMERGE) $@ /UCR $(GEN_URDFILES)
+ $(UNOIDLWRITE) $(URE_TYPES) $(OFFICE_TYPES) . $@
$(GEN_CLASSFILES) : $(COMP_RDB)
-$(MKDIR) $(subst /,$(PS),$(@D))
@@ -126,10 +119,10 @@ $(COMP_GEN_OUT)/%/manifest.xml :
@echo $(OSEP)/manifest:manifest$(CSEP) >> $@
# rule for component package file
-$(COMP_PACKAGE) : $(COMP_RDB) $(COMP_JAR) $(COMP_UNOPKG_MANIFEST) $(COMP_NAME).components
+$(COMP_PACKAGE) : $(COMP_RDB) $(COMP_JAR) $(COMP_UNOPKG_MANIFEST) $(COMP_NAME).components description.xml
-$(DEL) $(subst \\,\,$(subst /,$(PS),$@))
-$(MKDIR) $(subst /,$(PS),$(@D))
- $(SDK_ZIP) $@ $(COMP_NAME).components
+ $(SDK_ZIP) $@ $(COMP_NAME).components description.xml
cd $(subst /,$(PS),$(COMP_GEN_OUT)) && $(SDK_ZIP) -u ../../bin/$(@F) $(COMP_RDB_NAME)
cd $(subst /,$(PS),$(COMP_CLASS_OUT)) && $(SDK_ZIP) -u ../../bin/$(@F) $(COMP_JAR_NAME)
cd $(subst /,$(PS),$(COMP_GEN_OUT)) && $(SDK_ZIP) -u ../../bin/$(@F) META-INF/manifest.xml
diff --git a/odk/examples/java/ToDo/description.xml b/odk/examples/java/ToDo/description.xml
new file mode 100644
index 000000000000..6c4e2396bd1b
--- /dev/null
+++ b/odk/examples/java/ToDo/description.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+-->
+<d:description xmlns:d="http://openoffice.org/extensions/description/2006">
+ <d:dependencies>
+ <l:LibreOffice-minimal-version value="4.1" d:name="LibreOffice 4.1"
+ xmlns:l="http://libreoffice.org/extensions/description/2011"/>
+ </d:dependencies>
+</d:description>
diff --git a/odk/examples/java/ToDo/ToDo.idl b/odk/examples/java/ToDo/org/openoffice/ToDo.idl
index d632831c4028..d632831c4028 100644
--- a/odk/examples/java/ToDo/ToDo.idl
+++ b/odk/examples/java/ToDo/org/openoffice/ToDo.idl
diff --git a/odk/examples/java/ToDo/XToDo.idl b/odk/examples/java/ToDo/org/openoffice/XToDo.idl
index 11a107c08166..11a107c08166 100644
--- a/odk/examples/java/ToDo/XToDo.idl
+++ b/odk/examples/java/ToDo/org/openoffice/XToDo.idl
diff --git a/odk/settings/std.mk b/odk/settings/std.mk
index 0923a2798761..e457e844c671 100644
--- a/odk/settings/std.mk
+++ b/odk/settings/std.mk
@@ -89,6 +89,7 @@ else
SDK_SED=sed
endif
IDLC="$(OO_SDK_HOME)/bin/idlc"
+UNOIDLWRITE="$(OO_SDK_HOME)/bin/unoidl-write"
CPPUMAKER="$(OO_SDK_HOME)/bin/cppumaker"
JAVAMAKER="$(OO_SDK_HOME)/bin/javamaker"
REGMERGE="$(OO_SDK_URE_BIN_DIR)/regmerge"
diff --git a/odk/util/check.pl b/odk/util/check.pl
index 0ffc004d8717..a67d63152bc3 100644
--- a/odk/util/check.pl
+++ b/odk/util/check.pl
@@ -46,7 +46,7 @@ if (-d "$SdkDir") {
print "check binaries: ";
if (check_dir("bin")) {
my @binarylist = ( "idlc","cppumaker","javamaker",
- "unoidl-check",
+ "unoidl-check", "unoidl-write",
"unoapploader", "uno-skeletonmaker" );
if ($ENV{SYSTEM_UCPP} eq "") {
push @binarylist,"ucpp";