Set up the toolchain to create sources and javadocs artifacts in
addition to JARs created during the build. Use Buck build tool for
that: [1]. This is a fork of Google's build tool Blaze, created by
Xooglers at Facebook. This build tool (like Blaze itself) uses
Python to write build files.
Add needed tools and build files to install LibreOffice API artifacts
to local Maven repository or deploy them to Maven Central.
To build all needed artifacts LibreOffice must be built regularly
with GNU make first. To build the rest of the API (sources and
javadocs):
$> buck build api
To replace version number with upcoming release version:
$> solenv/bin/version.py 5.1.0
To install the API to local Maven repository:
$> buck build api_install
To deploy the API to Maven Central:
$> buck build api_deploy
Detailed documentation is added to document the prerequisites and
the workflow to upload LibreOffice API to Maven Central.
* [1] https://buckbuild.com
Change-Id: Ibdd552a01110836703bc069abe829b9921491cac
Reviewed-on: https://gerrit.libreoffice.org/20343
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
Tested-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
Mozilla bootstrap driver is used in xmlsecurity to discover default
profile and induce the path to the public keys file location from
certification authorities. The same profile discovery code is used
in mork driver. Remove duplicated code and re-use the service from
mozilla bootstrap driver in mork driver.
Change-Id: I6bc271ccf75e89eb81767186ddd9078c1f64b73d
Reviewed-on: https://gerrit.libreoffice.org/20111
Reviewed-by: Michael Stahl <mstahl@redhat.com>
Tested-by: Michael Stahl <mstahl@redhat.com>
Since df62a2c81b gb_DEBUG_CFLAGS
was passed to bridge_noopt_objects target for MSVC to track
down EH breakage on 64 bit architecture. It was erroneously
done unconditionally. Fix it to only pass when one of:
--enable-dbgutil
--enable-debug
--enable-symbols
is present.
Change-Id: I2728c30156541be418c88a0ea284c0c6a16abba5
Reviewed-on: https://gerrit.libreoffice.org/19744
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Stahl <mstahl@redhat.com>
Starting with MSVC 14.0 (aka VS 2015) C Runtime (CRT) was divided in
two logical parts: The VCRuntime, which contained the compiler support
functionality required for things like process startup and exception
handling, and a "stable" part that contained all of the purely library
parts of the CRT.
Previously, all of the CRT headers, sources, and libraries were
distributed as part of the Visual C++ SDK, installed in the VC
subdirectory of Visual Studio installation (generally C:\Program
Files (x86)\Microsoft Visual Studio 14.0\VC). The files for the
VCRuntime are still part of the Visual C++ SDK. The headers, sources,
and libraries are now distributed as part of a separate Universal CRT
SDK. This SDK is included with Visual Studio; it is installed to
C:\Program Files (x86)\Windows Kits\10. The debug ucrtbased.dll is
also included as part of this SDK and is installed to the system
directory.
In I0ef8cda7b initial support was added to suport VS 2015. In this
change support for universal CRT, .NET 4.6 and SDK 10 is added. UCRT
dirs are added to CFLAG, CXXFLAG and ILIB. SDK 10 include path is
added to SOLARINC. .NET Framework 4.6 was splitted from SDK 10 and
needs to be discovered separately.
Change-Id: I2c484b6b1debab0d71523385021abb8fc8e6027f
Reviewed-on: https://gerrit.libreoffice.org/16642
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Stahl <mstahl@redhat.com>
Seamonkey based address book driver is based on pre-compiled libraries
and is only used on Windows 32 bit. Remove it in favor of mork driver.
Given that Seamonkey based mozab driver also provides Outlook and
Outlook Express address book integration, that Windows-32-bit--only
feature is lost for now. If necessary, support for that feature could
be rewritten from scratch, in a way that would also work for Windows 64
bit.
Change-Id: Ie1c125e692598bda999767c328c9e2262a2b82af
Reviewed-on: https://gerrit.libreoffice.org/19560
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
3.5 release is needed for MSVC 14.0 (aka VS 2015) support. Python 3.5
removed build toolchain support for MSVC 2013. Because we still need
to support it, we duplicate the Python directory in externals and
copy old patches and dispatch to this directory for MSVC 2013. Once
the support for MSVC 2013 is dropped on master, this directory can be
removed again.
Change-Id: Idf7bc351239582f583ecbdb53c923cbdcf968089
Reviewed-on: https://gerrit.libreoffice.org/17352
Reviewed-by: Michael Stahl <mstahl@redhat.com>
Tested-by: Michael Stahl <mstahl@redhat.com>
VC runtime was substantially refactored on MSVC 14.0. Among other,
_tiddata structure defined in crt/src/mtdll.h was replaced with
__vcrt_getptd defined in crt/src/vcruntime/vcruntime_internal.h.
All members before
unsigned long _NLG_dwCode
were removed, so that the approach to access the member
void * _tpxcptinfoptrs; /* ptr to exception info pointers */
with __pxcptinfoptrs() and compute the offset to the _curexception
member of _tiddata doesn't work on MSVC 14.0.
As of MSVC 14.0 __vcrt_getptd symbol isn't exported but Microsoft
have introduced methods to access current exception, current exception
context and processing throw (the later can be accessed through C++17
std::unhandled_exceptions() that was made available in MSVC 14.0):
* __current_exception()
* __current_exception_context()
* __processing_throw() aka std::unhandled_exceptions()
Make use of __current_exception() which we can hope will be maintained
going forward.
Change-Id: Ibfffa5fba62d6928328ac976cb1b24937277363e
Reviewed-on: https://gerrit.libreoffice.org/18475
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: David Ostrovsky <david@ostrovsky.org>
The member is inherited from a nonpublic virtual base class or
structure.
Declaring copy ctor and assignment operator as deleted in derived
class solved the problem.
Change-Id: Ic509f7e7311fd896656ecff80df3ece4503c3a65
Reviewed-on: https://gerrit.libreoffice.org/18328
Reviewed-by: David Ostrovsky <david@ostrovsky.org>
Tested-by: David Ostrovsky <david@ostrovsky.org>
MSVC 14.0 was failing to compile IMark class an friends with:
error C2280: 'SwModify &SwModify::operator =(const SwModify &)':
attempting to reference a deleted function: [1].
After defining copy ctor and assignment operator in SwModify and
derived classes as deleted the next failure was:
error C2512: 'sw::mark::IMark::IMark': no appropriate default
constructor available: [2].
Defining default ctor as default in IMark and derived classes
seems to make all compilers happy.
[1] http://paste.openstack.org/show/447854
[2] http://paste.openstack.org/show/447856
Change-Id: I2822e8ec4b98ca18d0a0128ed2ceeb38f347c5bf
Reviewed-on: https://gerrit.libreoffice.org/18362
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Stahl <mstahl@redhat.com>
Make the workaround in snprintf.h conditional on older MSVC version.
Investigation reveals that the GetShortPathNameW is presumably used by
legacy Duden extension that was built by Sun in a setsolar environment.
The uwinapi.lib was never part of the SDK, so ordinary extensions cannot
link against it. The PRIVATE export of the symbol that is only possible
with DEF file therefore does not matter much. With VC2015 there is no
need for LO code to use uwinapi.dll at all and gb_UWINAPI can be unset
in this case.
Change-Id: I23a5636db9431b0fa4350b665a6a69613d625264
Reviewed-on: https://gerrit.libreoffice.org/16677
Reviewed-by: Michael Stahl <mstahl@redhat.com>
Tested-by: Michael Stahl <mstahl@redhat.com>
9a6cdce37e was trying to fix the problem
with exposing deprecated vars and functions in system's error_code.hpp
include file by patching bundled boost version. This approach would
only make sense, when upstream version is going to be fixed ASAP. Apply
another approach, and follow the same pattern as applied in external
libraries, by defining
-DBOOST_ERROR_CODE_HEADER_ONLY \
-DBOOST_SYSTEM_NO_DEPRECATED
instead of patching bundled boost version. This way, the code would
work with unpatched system boost 1.59 final as well.
Change-Id: I8684ca458ea4a5b7d7c3c3acfe7c14a6d19bc665
Reviewed-on: https://gerrit.libreoffice.org/18201
Reviewed-by: David Ostrovsky <david@ostrovsky.org>
Tested-by: David Ostrovsky <david@ostrovsky.org>
1.59 upcoming release is needed for MSVC 14.0 (aka VS 2015) support.
There is a known breakage on MSVC with boost::none instance in
optional library. Use not documented define as explained in this
issue upstream [1]: BOOST_OPTIONAL_USE_OLD_DEFINITION_OF_NONE.
[1] https://svn.boost.org/trac/boost/ticket/11203
Change-Id: I25b1797da93f7959d15a70105d67100e0e2c4b3b
Reviewed-on: https://gerrit.libreoffice.org/17056
Reviewed-by: Michael Stahl <mstahl@redhat.com>
Tested-by: Jenkins <ci@libreoffice.org>
Mork service wasn't registred on windows as it was generally
excluded on this platform not matter what architecture was used.
Pofile discovery was broken, as XP_WIN wasn't define and the
code fall back to use UNIX directories for profile discovery
on windows that obviously cannot work.
Change-Id: I823378a1a094a2172ba2cb3bf9bdacedb27b36a2
Reviewed-on: https://gerrit.libreoffice.org/17349
Reviewed-by: David Ostrovsky <david@ostrovsky.org>
Tested-by: David Ostrovsky <david@ostrovsky.org>
In f24fa8efad added unit test wasn't
activated. Activating it now reveals that the test is failing. Add
TODOs for the failing asserts.
Change-Id: I6c9f36be3aa84a5d5092d2a3f576af39a15b935e
The same was done in mork driver [1] and mork driver was derived from
mozab driver.
[1] 317306710d
Change-Id: I64bc85819810707511a3cebd43802066cd94a727
Only two options are different for x64 bit platform compared to 32 bit:
+ --enable-64-bit
- --enable-win-mozab-driver
Change-Id: I17754acbb7d380fa6d2dee46ce68f780285a84b9
Reviewed-on: https://gerrit.libreoffice.org/14543
Reviewed-by: Michael Stahl <mstahl@redhat.com>
Tested-by: Michael Stahl <mstahl@redhat.com>
On Windows 32 bit ancient seamonkey library is linked against
libreoffice. In 64 bit we cannot used this library and we cannot
recompile it because it was removed. Instead use mork driver.
This would still meant functionality loss because Outlook and Outlook
Express address book wouldn't be supported any more.
Change-Id: I77fbb59aaeb6c7f3b6754e7ffb9172064155e8f3
Reviewed-on: https://gerrit.libreoffice.org/14275
Tested-by: Michael Stahl <mstahl@redhat.com>
Reviewed-by: Michael Stahl <mstahl@redhat.com>
This fix supports building jpeg-turbo on both cygwin 32 nd 64 bit.
When only cygwin 64 bit is used, then it can be simplified by
passing BUILD_PLATFORM to configure script on all platforms.
Change-Id: Id335282f1761fcf7313fb18a6b9250e5eac392e4
Reviewed-on: https://gerrit.libreoffice.org/14315
Tested-by: Michael Stahl <mstahl@redhat.com>
Reviewed-by: Michael Stahl <mstahl@redhat.com>
The order in which the hash table of incomplete structure types is
iterated is non-deterministic. Make sure that the array fields are
complete types before they are assigned.
This fixed weird error on Windows 64 bit. The reason this bug wasn't
hitting on 32 bit Windows build is because the generation order was
different and by chance the referenced fields were already generated.
Change-Id: Ifc8622b420fc25fea5a0ac8c09d08f7804c9b77c
Reviewed-on: https://gerrit.libreoffice.org/13851
Reviewed-by: Michael Stahl <mstahl@redhat.com>
Reviewed-by: Andras Timar <andras.timar@collabora.com>
Tested-by: Andras Timar <andras.timar@collabora.com>
Using 0 as index offset to set user data in window handle,
is failing on x64 platform with:
ERROR_INVALID_INDEX 1413 (0x585)
To find it out GetLastError() can be used:
SetLastError(0);
LONG_PTR salFrameBack = SetWindowLongPtrW(hWnd, 0, (LONG_PTR)pFrame);
DWORD status = GetLastError();
Switching to documented GWLP_USERDATA instead, solved the problem.
Change-Id: I496ed2915e44309eaaaa4b576dca30b0051bdbfd
Reviewed-on: https://gerrit.libreoffice.org/13807
Reviewed-by: David Ostrovsky <david@ostrovsky.org>
Tested-by: David Ostrovsky <david@ostrovsky.org>
When /Zmxxx option is provided to 64 bit compiler it throws on us
weird error messages, no matter what the value is passed. It was
mentioned in the knowledge base, that removing it entirely fixes
the problem.
Change-Id: I95296ad8811d0065498f0ef55ae503d4a07b914b
Reviewed-on: https://gerrit.libreoffice.org/13779
Reviewed-by: Michael Stahl <mstahl@redhat.com>
Tested-by: Michael Stahl <mstahl@redhat.com>
So that this is always wrong (on this platform) to write:
reinterpret_cast<foo>(reinterpret_cast<long>(bar))
it should be:
renterpret_cast<foo>(reinterpret_cast<sal_uIntPtr>(bar))
Change-Id: Ia286246ee1616988f755c2d2054b26efacc51af0
Reviewed-on: https://gerrit.libreoffice.org/13366
Reviewed-by: Michael Stahl <mstahl@redhat.com>
Tested-by: Michael Stahl <mstahl@redhat.com>
9df0e4a709735e5fb5c0e87779b0694c512f0de7 moved ct2n to AutoInstall,
but missed to add dependency in scp2/InstallModule_extensions.mk.
Change-Id: Ibfc30f1efa494996e832c8039fde69420f0ad5ee
Reviewed-on: https://gerrit.libreoffice.org/13398
Reviewed-by: Michael Stahl <mstahl@redhat.com>
Tested-by: Michael Stahl <mstahl@redhat.com>
On Windows x64 long is only 32-bit (while on other x64 platforms it is
typically 64-bit), but sal_uLong is not a typedef for unsigned long, but
rather for sal_uIntPtr, which in turn is large enough to take recast
pointer values (i.e., always 64-bit on 64-bit platforms).
sal_uLong was introduced as a "temporary helper type" to ease transition
from the old tools/solar.h types ("ULONG" etc.), but in the long run it
should be remove from the code base, and places that now use sal_uLong
analysed to use more appropriate types.
As short term solution, cast to sal_uLong fixes it.
Change-Id: I2169b7858517313616007a8fb2acc5c7d0487719
Reviewed-on: https://gerrit.libreoffice.org/13232
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Tested-by: Stephan Bergmann <sbergman@redhat.com>
Since GNU make 4.0 the output of --print-data-base command has been
slightly changed, so that class specific attributed aren'tt prefixed
with "#" char any more. To prevent the duplication of used regexs or
discontinuation of supporting widely used GNU make version 3.8x detect
the case that matches this regex:
target : VAR := VALUE
pand repend '#' character to retry the match for "pseudo" hash-starting
line. This way the same script works for both worlds.
Test Plan:
* have full build of LibreOffice
* install GNU make 4
* verify that gbuild-to-ide is able to parse and emit sane debug project
configuration for both GNU make versions:
$ make-3.8 debug-ide-integration
$ make-4 debug-ide-integration
Change-Id: I7d760d9570f2df510571cc1e8fd7f31115d43b92
Reviewed-on: https://gerrit.libreoffice.org/11751
Tested-by: Peter Foley <pefoley2@verizon.net>
Reviewed-by: Peter Foley <pefoley2@verizon.net>
"Empty" and "Not empty" predicates were unconditionally overriden
in filter dialog for date format columns. Rectify it by preventing
the overriding for these functions.
Test Plan:
* open calc document
* define column with date format
* put some data and let some columns empty
* apply standard filter on date column with "Not empty" function
* verify that rows with non empty columns still visible
Change-Id: I2111c5a6b6350cab63173d42419069813d1137b6
Reviewed-on: https://gerrit.libreoffice.org/11613
Reviewed-by: Kohei Yoshida <libreoffice@kohei.us>
Tested-by: Kohei Yoshida <libreoffice@kohei.us>