Commit Graph
34 Commits
Author SHA1 Message Date
Noel Grandin 5edaca5c89 use boost::small_vector in cppuhelper
shaves 5% off startup time

Change-Id: I901e1112727eb7a50f70d1853386e0696fee7e5e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167000
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
2024-05-03 09:00:41 +02:00
Noel Grandin 00f8f75f36 copy some comphelper code down into cppuhelper
Since I want to use them in the cppuhelper too, but comphelper is
"above" cppuhelper in the dependency tree.

And sharing the code between cppuhelper and the rest of LO
across the URE boundary appears to be nigh impossible.

Change-Id: I2ebf37746928dc820df43347dc1a2c158f00ec50
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151445
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-05-09 14:50:31 +02:00
Stephan Bergmann 45d93ea927 Fix clang-cl -Zc:dllexportInlines- build
That flag is only supported by clang-cl, not by MSVC, and
c7c9f3f57a "use clang-cl's -Zc:dllexportInlines-
for clang-cl builds" apparently naively assumed that it would work to build LO
with clang-cl and that flag without actually trying it out, and
1040228c35 "My clang-cl build does not work with
-Zc:dllexportInlines-" effectively disabled it completely.

The way to avoid unresolved external symbols during linking of URE libraries
(see the 1040228c35 commit message) is apparently
to also build libraries that the URE libraries depend on with the flag, hence
the change from gb_Library_set_is_ure_library to
gb_Library_set_is_ure_library_or_dependency.  For now, I only marked those
additional libraries (unoil and xmlreader) that actually caused issues when
linking the URE libraries.

Change-Id: I3a85c73246250981cd86b7ee41f87b41f393a4b1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126012
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
Tested-by: Jenkins
2021-12-02 07:39:52 +01:00
Tor Lillqvist e37c97bc1d Warn harder about unknown constructors and factories on iOS in Xcode
Use NSLog() and not just SAL_WARN(). There are so many irrelevant
SAL_WARN() warnings displayed that these ones that can be extremely
relevant are easily missed. I typically run the app in Xcode with
SAL_LOG=-WARN.

(Such warnings are typically caused by something missing from the
solenv/bin/native-code.py.)

Change-Id: I4ab16f4f652ac34319021c9427e2e9f911ee29e4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122721
Tested-by: Tor Lillqvist <tml@collabora.com>
Reviewed-by: Tor Lillqvist <tml@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122756
Tested-by: Jenkins
2021-09-28 10:59:20 +02:00
Luboš Luňák 47a8a65022 use MSVC's /Zc:inline option to reduce binary size
If I'm getting it right, MSVC has a non-conforming feature
that allows to declare a function as inline without defining its
body in the header, and it'll work if the function is actually
emitted elsewhere, and the linker will sort it out. This seems
to be implemented by forcing emitting of out-of-line copies
of all inline functions, which is wasteful. /Zc:inline disables
this useless feature, which seems to save quite some space
(optimized build, starmath's .o files 350k->220k, smlo.dll
2.5M->2.2M).

The docs don't say anything about binary compatibility,
but treat it the same way as -Zc:dllexportInlines, just in case.

This change also may help avoid the tdf#144598 problem for our
AVX/etc. code, such as in Calc.

Change-Id: I73cc5d46ba1e4245e8d3b6688804c2b9684d2f9a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122334
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-09-20 22:51:12 +02:00
Luboš Luňák c7c9f3f57a use clang-cl's -Zc:dllexportInlines- for clang-cl builds
This is clang-cl's equivalent of -fvisibility-inlines-hidden,
and it seems to be also sort of the equivalent of MSVC's
-Zc:inline. So it saves build time and disk space.

Clang docs say that this is binary compatible in only one
direction, so our public C++ code shouldn't be using this,
as external C++ code could try to use exported inlines
that are no longer there.

Change-Id: Ie6217808f8ee4a15344183abfc65038e1558d1b0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122352
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-09-20 22:50:59 +02:00
Jan Holesovsky eb15ac837e android: Avoid throwing exceptions through the bridges.
From some reason it does not work, so let's do the same we are doing on
iOS; at least for now.

Change-Id: I915f8683a112548fc3defc1114f9dce3aa7be30e
Reviewed-on: https://gerrit.libreoffice.org/84067
Reviewed-by: Tor Lillqvist <tml@collabora.com>
Tested-by: Tor Lillqvist <tml@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/84204
Tested-by: Jenkins
Reviewed-by: Jan Holesovsky <kendy@collabora.com>
2019-12-05 11:02:01 +01:00
Luboš Luňák 42af04bf24 do not require $(SRCDIR) in every gb_Library_set_precompiled_header
Change-Id: I7b3a22584bb2e4d501f509ffcd80929feed23a4c
Reviewed-on: https://gerrit.libreoffice.org/79360
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2019-09-23 10:47:25 +02:00
David Ostrovsky de030cd7a2 gbuild: Remove MSVC 2013 legacy code
Uwinapi is discontinued.

Change-Id: I063b4d0d8fab2d60de168e960a63b8181158ac01
Reviewed-on: https://gerrit.libreoffice.org/23198
Reviewed-by: David Ostrovsky <david@ostrovsky.org>
Tested-by: David Ostrovsky <david@ostrovsky.org>
2017-04-21 18:18:44 +02:00
Jochen Nitschke c664b27505 tdf#94306 remove unused boost dependencies
remove <boost/noncopyable.hpp> in pch and
remove boost from makefile if it was the only boost entry.

Change-Id: Icb945ae59c137571f4f63807601738eea5c3e831
Reviewed-on: https://gerrit.libreoffice.org/24061
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Stahl <mstahl@redhat.com>
2016-04-13 19:47:09 +00:00
Thomas Arnhold 13b2519800 update_pch: add a bunch of pch files
connectivity: 3m52s ->  2m47s
 cppcanvas:      28s ->    13s
 cppuhelper:     20s ->    14s
 dbaccess:     2m38s ->  2m01s
 hwpfilter:      16s ->    13s
 sot:            21s ->    16s

Change-Id: I49286bfe6be73dd1b861be632b95e17a99e82f8a
2014-06-04 21:18:40 +02:00
Takeshi Abe 541761d7b8 prefer makefile-gmake-mode
Change-Id: I9cc9bfbddd3a90e00eee3e674994e5d6207f9034
2014-04-28 23:35:42 +09:00
Michael Stahl d343c57f98 gbuild: make the versioned library the linktarget on Unixes
If there is a SOVERSION then the versioned library is a real file and
the unversioned one just a symlink; better to have the real file be the
target.

- add gb_Library_UDK_MAJORVER variable for SOVERSION
- remove version parameter of gb_Library_set_soversion_script;
  instead hardcode the SOVERSION since it must be included in the
  file name in gb_Library_FILENAMES anyway
- store the unversioned symlink in the ILIBTARGET variable
- via new gb_Library_get_workdir_target_versionlink function
- removed gb_Helper_install call that resulted in both versioned
  and unversioned libs in instdir

Change-Id: I2c6f1698f0e39fdb2c07964d43ed9485cbca0b30
2013-09-22 11:08:29 +02:00
Michael Meeks 72e5d0c8fb Move to MPLv2 license headers, with ESC decision and author's permission. 2013-04-30 13:34:06 +01:00
Stephan Bergmann 5275ed805a Revert "Revert "WIP: Experimental new binary type.rdb format""
This reverts commit 67e69a5582, applying a band-
aid fix to cli_ure/source/climaker for now.

Conflicts:
	stoc/inc/bootstrapservices.hxx
	stoc/source/tdmanager/lrucache.hxx
	stoc/source/tdmanager/tdmgr.cxx
	stoc/source/tdmanager/tdmgr_common.hxx
	stoc/source/tdmanager/tdmgr_tdenumeration.cxx
	stoc/source/tdmanager/tdmgr_tdenumeration.hxx

Change-Id: Iae669985d0194f06fa349a4a39f0ebd230bc5d28
2013-04-22 18:25:42 +02:00
Stephan Bergmann 67e69a5582 Revert "WIP: Experimental new binary type.rdb format"
This reverts commit 892ef8b056,
Windows-only cli_ure needs to be adapted first.
2013-03-09 13:03:49 +01:00
Stephan Bergmann 892ef8b056 WIP: Experimental new binary type.rdb format
Implement theTypeDescriptionManager directly on top of unoidl::Manager and
unoidl::Provider in cppuhelper instead of on top of css.reflection UNO
interfaces in stoc.  Adapt desktop/source/deployment/ accordingly.

There is no longer a com.sun.star.reflection.TypeDescriptionManager service
implementation now, only a com.sun.star.reflection.theTypeDescriptionManager
singleton one, which appears to not cause problems in practice.

Change-Id: I179501272f0712353b7d50d3eba2ec2bb79db373
2013-03-09 12:08:28 +01:00
Stephan Bergmann 320571bf70 WIP: Experimental new binary type.rdb format
Move unoidl functionality into a module of its own, as a prerequisite to use it
in codemaker etc.  (This is intended to ultimately remove modules store and
registry, modulo backwards compatibility constraints.)

Change-Id: If5274cbd3a595951e6cf7a9664bc542f01833f38
2013-02-25 16:24:44 +01:00
Stephan Bergmann fa559f1c41 WIP: Experimental new binary type.rdb format
Prepare cppuhelper/unoidl.hxx for direct consumption by code that currently uses
registry/ to read .rdb files (e.g., codemaker).  The additional exports will
need to be properly hidden from general users in gcc3.map (and documented,
and...).

Change-Id: I5cdff6fe69ab88435972e16dbda2311450f20ede
2013-02-22 17:24:09 +01:00
Michael Stahl a53586f4ef gbuild: do not copy boost headers around
- do not use gb_UnpackedTarball_copy_header_files for boost
- adapt the optimization in concat-deps.c for new path
- use boost_headers in all LinkTargets that require it
- add explicit include paths to mysqlc, mysqlcppconn, libvisio, liborcus

Change-Id: I0c43e73ed43cc9d2e6bce8faf55e992d655a0bb9
2013-01-26 22:20:06 +01:00
Stephan Bergmann dcdda1d610 Unfold remainder of add_access_control_entries at call site
Change-Id: I6e1a5a0223c1ea3e1a8c8800fb4cb032719ecf4f
2013-01-16 11:39:03 +01:00
Stephan Bergmann 3250fad637 Extract servicemanager and typedescriptionprovider from defaultbootstrap
Change-Id: I94fe7e68c5a49e591a625e9bf62108acac69428d
2013-01-16 11:39:02 +01:00
Michael Meeks c8a733079f cppuhelper: add compatible symbol for obsolete method. 2012-12-06 09:48:49 +00:00
Michael Meeks c95f6b679a remove obsolete stdidlclass. 2012-12-06 09:12:57 +00:00
David Tardon 76987f83c8 replace findsofficepath.obj by static lib
Change-Id: I652ac46aec72a92667995353efa637f0a2310672
2012-10-10 17:26:54 +02:00
Michael Stahl 5032dc0fc3 gbuild: invert handling of standard system libraries:
Always link in gb_STDLIBS, except when the library explicitly opts out
with gb_LinkTarget_disable_standard_system_libs.

Change-Id: I489a99114fbfa46d0421a27cf6c7b899dc268a4a
2012-09-28 16:49:08 +02:00
Michael Stahl b85c349783 gbuild: replace direct gb_STDLIBS use with ...
... new gb_LinkTarget_add_standard_system_libs

Change-Id: Ib2bc843098db3d8c6822b45a3d21724e67f57d69
2012-09-28 16:49:06 +02:00
Michael Stahl 2e677c3981 gbuild: split uwinapi out of gb_STDLIBS
Change-Id: I53316e0b9369d806197bccb42cf22d3497af43e7
2012-09-28 16:49:05 +02:00
Stephan Bergmann 2171077c0c Introduce cppu::supportsService helper, adapt some call-sites
...more to follow (easy hack?)

Change-Id: Icb02626495701a3905c124c7368b98c3258e91b2
2012-09-14 19:32:30 +02:00
Stephan Bergmann c2fd9b533c New cppu::defaultBootstrap_InitialComponentContext implementation
...that no longer uses XSimpleRegistry structures for the service data and thus
is potentially more performant.

* Registry-based functions from cppuhelper/bootstrap are deprecated now, client
  code should always use defaultBootstrap_InitialComponentContext.

* References to the obsolete UNO_WRITERDB have been removed.

* Some of the functions in cppuhelper/source that are used from multiple .cxx
  but had not been properly placed into .hxx have been cleaned up.

* css.lang.ServiceManager XSet insert/remove now support special
  sequence<NamedValue> to improve live deployment/removal of XML-based extension
  components data.

* 09524d410b "stoc: accelerate opening of multiple
  XML .rdb files in a directory" and its follow-up
  cb5c881a7f "avoid using the new rdb reading
  logic for empty/non-existent directories" have been obsoleted by this change
  and have been reverted again.
2012-04-20 22:57:32 +02:00
Matúš Kukan 0273632956 cppuhelper: use InternalUnoApi 2012-04-09 21:04:38 +02:00
Michael Stahl 4c50f23f87 LinkTarget.mk: remove gb_LinkTarget_add_package_headers 2012-04-08 01:05:53 +02:00
Michael Stahl c923f7d2c2 gbuild: "use" vs. "add":
Naming convention for gbuild methods:
- "add" is used for stuff that is logically a part of the target
  (i.e. not registered at the Module, but defined in the target's makefile)
- "use" is used for stuff that is logically a different target
  (i.e. it is registered at the Module, has it's own makefile, may be
  in a different module than the target)
2012-04-08 01:05:52 +02:00
Matúš Kukan b222aa8fff cppuhelper: convert to gbuild
missing subsequent test qa/propertysetmixin/makefile.mk
2012-01-02 15:33:13 +01:00