forked from amazingfate/loongoffice
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
81 lines
3.0 KiB
XML
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>
|