| <!DOCTYPE html> |
| |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License. |
| --> |
| |
| <html> |
| <head> |
| <title>OpenOffice add-in build instructions</title> |
| <meta charset="UTF-8"> |
| </head> |
| <body> |
| <h1>OpenOffice add-in build instructions</h1> |
| <p style="font-size:smaller"> |
| This page is adapted from the <a href="http://www.geoapi.org/geoapi-openoffice/build.html">GeoAPI build page</a>. |
| </p> |
| <p> |
| All <code>XFoo</code> Java interfaces are generated from IDL files with the same name. |
| As long as <code>XFoo</code> Java/IDL interfaces are not modified, there is no need for the OpenOffice SDK. |
| But if any <code>XFoo</code> interface is modified, then the steps documented below must be done. |
| The last step shall be executed on the client machine |
| (users can also use the <i>"Tools / Package manager"</i> menu from OpenOffice GUI). |
| </p> |
| |
| <p> |
| Replace <var>ooo-path</var> by the path to the OpenOffice installation directory. |
| That directory should contain the <code>program</code> sub-directories |
| The OpenOffice SDK shall be installed as a sub-directory of the OpenOffice root directory. |
| If the name of that SDK directory is different than <code>OpenOffice_SDK</code>, |
| then modify the <code>OO_SDK_HOME</code> value below accordingly. |
| </p> |
| |
| <blockquote><pre>export OFFICE_BASE_HOME=ooo-path |
| export OO_SDK_HOME=$OFFICE_BASE_HOME/OpenOffice_SDK |
| export PATH=$OFFICE_BASE_HOME/program:$OO_SDK_HOME/bin:$PATH</pre></blockquote> |
| |
| |
| <h2>Compiles the UNO <code>*.urd</code> binary file:</h2> |
| <p> |
| The following command generates <code>*.urd</code> files (to be deleted later). |
| The <code>-C</code> option is for including additional service information, |
| the <code>-cid</code> option is for checking if identifiers fulfill the UNO naming requirements, and |
| the <code>-w</code> option is for displaying warning messages. |
| </p> |
| <blockquote><pre>cd application/sis-openoffice/src/main/java |
| idlc -C -cid -w -I $OO_SDK_HOME/idl org/apache/sis/openoffice/*.idl</pre></blockquote> |
| |
| <div style="font-size:smaller"><b>MacOS troubleshooting:</b> |
| if the above command fails with a message like: |
| |
| <blockquote>“<code>dyld: Library not loaded: @executable_path/libreg.dylib.3</code> |
| (…) <code>Reason: image not found</code>”</blockquote> |
| |
| try adding the following environment variable: |
| |
| <blockquote><pre>export DYLD_FALLBACK_LIBRARY_PATH=$OFFICE_BASE_HOME/program</pre></blockquote> |
| </div> |
| |
| |
| <h2>Compiles the UNO <code>*.rdb</code> registry file and the <code>*.class</code> file:</h2> |
| <p> |
| The <code>*.rdb</code> and <code>*.class</code> files generated by the following commands |
| will need to be committed in the source code repository. |
| Committing compilation results is usually not recommended, but in this particular case |
| most users will not have the necessary installation for producing those files themselves |
| (including the <code>*.class</code> files, which is not the usual <code>javac</code> output). |
| </p> |
| <blockquote><pre>regmerge ../unopkg/sis.rdb /UCR org/apache/sis/openoffice/*.urd |
| rm org/apache/sis/openoffice/*.urd |
| cd ../unopkg |
| javamaker -BUCR sis.rdb $OFFICE_BASE_HOME/program/types.rdb -Torg.apache.sis.openoffice.XReferencing</pre></blockquote> |
| |
| |
| <h2>Derives a <code>*.java</code> source from the <code>*.class</code> file:</h2> |
| <p> |
| Following command can be skipped if the API defined by <code>*.idl</code> files did not changed. |
| If this command is executed, the result will be sent to the console. |
| Developer need to bring any changes to the Java interface manually. |
| </p> |
| <blockquote><pre>javap org.apache.sis.openoffice.XReferencing</pre></blockquote> |
| |
| |
| <h2>Build:</h2> |
| <blockquote><pre>cd ../../.. |
| mvn install</pre></blockquote> |
| |
| |
| <h2>Test in Apache OpenOffice:</h2> |
| <blockquote><pre>cd target |
| unopkg add apache-sis-0.8.oxt --log-file log.txt |
| scalc -Xdebug -env:RTL_LOGFILE=log.txt</pre></blockquote> |
| |
| </body> |
| </html> |