Files
loongoffice/odk/examples/DevelopersGuide/FirstSteps/build_FirstUnoContact.xml
Stephan Bergmann 0124111394 Replace unowinreg.dll with execution of reg QUERY
The SDK's <https://wiki.openoffice.org/wiki/Documentation/DevGuide/ProUNO/Java/
Transparent_Use_of_Office_UNO_Components> on all platforms included the Windows-
specific unowinreg.dll in generated jars (so that those jars, when distributed
to a Windows environment, would find a LO installation by inspecting the Windows
registry).  That unowinreg.dll was originally built as a 32-bit DLL (though when
building a 64-bit Windows LO, it happened to be built as a 64-bit DLL).  For
non-Windows LO builds, it could either be built locally with a MinGW toolchain
(--enable-build-unowinreg) or downloaded from dev-www.libreoffice.org.

However, that had various issues:

For one, unowinreg.dll was not necessarily available in a distributed jar as a
64-bit DLL for use with a 64-bit JRE on Windows.  (Theoretically, running such a
jar with a 32-bit JRE to access a 64-bit LO installation's URE jars could have
worked.  But practically, those URE jars in turn require native DLLs, which
would then not have been available as 32-bit DLLs for use in the 32-bit JRE.)

For another, at least the unowinreg.dll resulting from --enable-build-unowinreg
on Fedora 33 would have had a dependency on libgcc_s_dw2-1.dll that would
generally not have been available in a target Windows environment.

There appears to be no pure Java way to read the Windows registry, but instead
of using a native code DLL for that, it appears to work just as well to call out
to reg.exe and parse its output.

This removes the --enable-build-unowinreg and --with-mingw-cross-compiler
configuration options.  (The sole use of the MinGW toolchain in LO was for
building unowinreg.dll.)

Change-Id: I3283ea38c884d3221a205e5ab6ec99a2691ef474
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107140
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Tested-by: Jenkins
2020-12-03 15:01:00 +01:00

81 lines
3.0 KiB
XML

<?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/.
*
* This file incorporates work covered by the following license notice:
*
* 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 .
-->
<project basedir="." default="all" name="FirstUnoContact">
<property environment="env"/>
<property name="OFFICE_HOME" value="${env.OFFICE_HOME}"/>
<property name="OO_SDK_HOME" value="${env.OO_SDK_HOME}"/>
<target name="init">
<property name="OUTDIR" value="${OO_SDK_HOME}/WINExample.out/class/FirstUnoContact"/>
</target>
<path id="office.class.path">
<filelist dir="${OFFICE_HOME}/program/classes"
files="libreoffice.jar"/>
</path>
<fileset id="bootstrap.glue.code" dir="${OO_SDK_HOME}/classes">
<patternset>
<include name="com/sun/star/lib/loader/*.class"/>
</patternset>
</fileset>
<target name="compile" depends="init">
<mkdir dir="${OUTDIR}"/>
<javac debug="true" deprecation="true" destdir="${OUTDIR}" srcdir=".">
<classpath refid="office.class.path"/>
</javac>
</target>
<target name="jar" depends="init,compile">
<jar basedir="${OUTDIR}" compress="true"
jarfile="${OUTDIR}/FirstUnoContact.jar">
<exclude name="**/*.java"/>
<exclude name="*.jar"/>
<fileset refid="bootstrap.glue.code"/>
<manifest>
<attribute name="Main-Class" value="com.sun.star.lib.loader.Loader"/>
<section name="com/sun/star/lib/loader/Loader.class">
<attribute name="Application-Class" value="FirstUnoContact"/>
</section>
</manifest>
</jar>
</target>
<target name="all" description="Build everything." depends="init,compile,jar">
<echo message="Application built. FirstUnoContact!"/>
</target>
<target name="run" description="Try running it." depends="init,all">
<java jar="${OUTDIR}/FirstUnoContact.jar" failonerror="true" fork="true">
</java>
</target>
<target name="clean" description="Clean all build products." depends="init">
<delete>
<fileset dir="${OUTDIR}">
<include name="**/*.class"/>
</fileset>
</delete>
<delete file="${OUTDIR}/FirstUnoContact.jar"/>
</target>
</project>