summaryrefslogtreecommitdiff
path: root/solenv
AgeCommit message (Collapse)Author
2021-10-31fix usage of MSVC's -debug:fastlinkLuboš Luňák
Using /link while only compiling does nothing (and MSVC apparently doesn't bother to warn). Fix gbuild to pass -debug:fastlink when linking, and limit it to dbgutil builds, since pdb files cannot be moved elsewhere if the option is used. Change-Id: I0325c55ddea1ce881b60b1373c81019d154ef672 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124526 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-10-30upgrade libjpeg-turbo to 2.1.1Caolán McNamara
simd enabled for x86_64 and x86, arm/aarch64 might be worth exploring too Change-Id: Ic2726ee8c6b6e59ca983b977ee2731f5b78b97d1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123898 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-10-28Fix passing DYLD_LIBRARY_PATH into lldb on macOSStephan Bergmann
...making sure that the shell expands the leading DYLD_LIBRARY_PATH=${DYLD_LIBRARY_PATH:+$DYLD_LIBRARY_PATH:}... before it reaches lldb. (This gets rid of gb_{Cppunit,Pyhton}_{PRE,POST}GDBTRACE again. No idea why c38a4d9ce248b4b3fcc9208b25dfa599fe506ac0 "Make the CPPUNITTRACE="lldb --" thing work again (on macOS)" used -s with a temp file rather than -o to pass that env var into lldb.) Change-Id: I9ae5217a9629981c8652fc5aca8f97fa6eb99729 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124331 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-10-28-flto: only use firstword of PARALLELISMChristian Lohmaier
jenkins agents use PARALLELISM with additional load limit, e.g. PARALLELISM="16 -l 24" causing the linker to complain about not finding -l24 when lto is enabled. So only use the first element/the number of jobs to use and omit the load limit here. Change-Id: Ie3e2bdbde1b89d9371d1d9b9e426f42a91d2eca8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124288 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2021-10-28move a comment to the proper placeLuboš Luňák
Change-Id: I8d8b921febd0b57213bbb912a600e0c7698da555
2021-10-27tdf#145296 better fix to launch dialog when active radiobutton is clickedCaolán McNamara
this basically reverts commit 312a32f6b6c83c5747b617249d794fc87ffd8b9b tdf#145296 use a 'clickable' widget for custom spacing commit 592235d64d6f9638a61865712ca385ec58d688c4 tdf#145296 use a 'clickable' widget for custom depth and uses a mouse-release workaround to detect the case of clicking on an already active radiobutton which gives a result basically indistinguishable from the pre 7.2 experience Change-Id: Ic7ac6fa20843466b1d0c77586e25f4aabf814328 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124285 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-10-26Use LO repo for mkdocs git linksHossein
* Use git.libreoffice.org instead of cgit.freedesktop.org for the git links generated by mkdocs scripts Change-Id: Iac6e9ea1b73dcd0155786798c0ec162865299ada Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124186 Tested-by: Jenkins Tested-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org> Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
2021-10-26tdf#145296 use a 'clickable' widget for custom depthCaolán McNamara
Change-Id: Ifb64e1bef2a0b216f97fe112115a997973201268 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124164 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-10-25bsd (as used by macOS) ar does not support '@' optionCaolán McNamara
so gb_LinkTarget__command_staticlink should use the same workaround for that as gb_LinkTarget__command_dynamiclink does Change-Id: Ied9d8a3b99f09d6ea1b705e0c1ce3ef3b2d14190 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124156 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-10-20Drop support for dead GNU JavaStephan Bergmann
...which no longer worked anyway at least since aafc10c9edb61e13ac557c7e43c8d4a31dce4f37 "Bump Java baseline to Java 8": According to <https://en.wikipedia.org/wiki/GNU_Compiler_for_Java>, the last version of GCC providing Java was GCC 6.5. But trying to add a build of that ("Tools - Options... - LibreOffice - Advanced - Java Options - Add...") would already have failed before this commit due to a java.lang.ClassFormatError ("JREProperties (unrecognized class file version)") when executing the JREProperties code compiled with --release 8. (Whereas now it fails because it cannot even determine a JRE installation there according to the SunInfo rather than GnuInfo rules used for the now-unknown vendor.) The <updated> elements of the modified jvmfwk/distributions/OpenOfficeorg/javavendors_*.xml have not been updated in line with the rules documented at the end of jvmfwk/README.md: As mentioned above, a GNU Java JRE cannot have been selected prior to this commit anyway, so even though this is nominally an incompatible change of the xml files, actually updating <updated> would only have negative ("just annoying if an already selected JRE is still supported") but no positive consequences. Change-Id: Ica245677dae977360bdb3c6544897eb060c3f844 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123906 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-10-20upgrade glm to 0.0.9.9.8Caolán McNamara
Change-Id: I39ca17984cc03de815386343b2f4c4fffd5c861e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123891 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-10-20upgrade liblangtag to 0.6.3Caolán McNamara
langtag-valencia.patch.0 merged as: https://bitbucket.org/tagoh/liblangtag/commits/fe35532a0b98d5a8179b9edee0d61ea8db9b5921 external/liblangtag/Wformat-overflow.patch redundant since: https://bitbucket.org/tagoh/liblangtag/commits/49135ef561f309078f0bfd6e1f15052769cf75b4 Change-Id: Ieeb19679837f03a6938c97f069d6fb1e6dd9a30d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123890 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-10-15Remove non-const Sequence::begin()/end() in internal codeMike Kaganski
... to avoid hidden cost of multiple COW checks, because they call getArray() internally. This obsoletes [loplugin:sequenceloop]. Also rename toNonConstRange to asNonConstRange, to reflect that the result is a view of the sequence, not an independent object. TODO: also drop non-const operator[], but introduce operator[] in SequenceRange. Change-Id: Idd5fd7a3400fe65274d2a6343025e2ef8911635d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123518 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-10-14filter out also link.exe messages about LTO code generationLuboš Luňák
Change-Id: I4f61bfd829429745141cd03eb0db625fe0458e32 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123584 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-10-13use -flto=auto for gcc if no $PARALLELISM is setLuboš Luňák
I'm not sure if all gcc versions support the value, but if older ones do not they at least silently accept it. Change-Id: If18ce1cbf6122cf9ded00eee5c2058d70e486c0c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123540 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-10-13MSVC LTO does not like mixing 32bit and 64 codeLuboš Luňák
So disable LTO for x64 code when building for 32bit. Change-Id: I8445d8307b3b797b78cea12e6322e0d792c71dfd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123537 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-10-11clang does not support -flto=<number>Luboš Luňák
This may happen when building with GCC when Clang is used for Skia and --with-parallelism is in effect. Change-Id: Ic52dbbcf53253ed73413af4ea8254b000eee72d6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123430 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-10-11merge LD_PLUGIN use with other LTO useLuboš Luňák
It seems LD_PLUGIN predates the other --plugin usage, so make that one use LD_PLUGIN instead of using --plugin twice. Change-Id: I00133be18e576bc9a797853621a20dd7d5245344 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123257 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-10-11use ThinLTO for Clang everywhereLuboš Luňák
No idea why it should be used only on Apple platforms and normal LTO elsewhere. ThinLTO should build faster and the result should perform roughly the same. Change-Id: Ie93cf0ba810ee5bb2309fcbd3548a4847587b3d4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123256 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-10-09Rename bookmrk* -> bookmark*Julien Nabet
Change-Id: I9dec77b2af8abe5abb286ff76ed85d1e4078ee6a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123325 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2021-10-08vcl: test PhysicalFontCollection and move to vcl::font namespaceChris Sherlock
- tested PhysicalFontCollection, noted odd behaviour with search names and normalization - moved PhysicalFontCollection.hxx to vcl/inc/font - moved PhysicalFontCollection into vcl::font namespace Note that I needed to regenerate the pch file otherwise errors were generated. Change-Id: Ifa0c7b871c40687bd15002565d2f7a3e408218f8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122036 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-10-07remove python make dependency from MoTargetCaolán McNamara
not needed since... commit 7fdf1663ed8e689e7fb154ab22a9dcb7fc7bf43c Author: Caolán McNamara <caolanm@redhat.com> Date: Thu Sep 14 15:57:38 2017 +0100 remove interim update module for gettext support Change-Id: I05df619848cde842a5cda79d20e013914ce882d4 Change-Id: I094c033db356f32b93c77f7bdbd4ce5be8b0b0ae Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123151 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-10-05drop 'using namespace std' in s* + toolkitJulien Nabet
Change-Id: Ibd0b983d46a5683df64b4de79cd444427705e9e3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123118 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2021-10-05vcl: test PhysicalFontFace and move to vcl::font namespaceChris Sherlock
- moved PhysicalFontFace.hxx to vcl/inc/font - added PhysicalFontFace to vcl::font namespace - had to regenerate precompiled_vcl.hxx - tested PhysicalFontFace, with some extensive tests for IsBetterMatch() Change-Id: I860022ac244f8a827f6f9cb7ed9018c5d9c328cb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121970 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-10-04We need com_sun_star_animations_AnimatePhysics_get_implementationTor Lillqvist
Fix crash in iOS app reported at https://github.com/CollaboraOnline/online/issues/3321 . Change-Id: I1b5fedb0d5db84cc3f6a75b52c29a39ebe7a6ed9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123046 Tested-by: Tor Lillqvist <tml@collabora.com> Reviewed-by: Tor Lillqvist <tml@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123047 Tested-by: Jenkins
2021-10-03unterminated call to function 'call': missing ')'.Caolán McNamara
Change-Id: Ida812eb3a002da3d99ddf3179d674a653f7ed2b9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123027 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-10-03TODO: remove missing .po support when writerfilter .po files existCaolán McNamara
Change-Id: I8f20845fcb1fbd598cf1c1c8c8ff20b3e9c37bfc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123012 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-10-02new loplugin:moveparamNoel Grandin
Look for places where we can pass Primitive2DContainer by move reference and so avoid unnecessary copies. Change-Id: I1db167feba6d1a616ca6fc39778118ae20106bd1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122964 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-09-29qt6: Add a qt6 VCL pluginMichael Weghorn
This adds a new "qt6" VCL plugin based on Qt 6. Building the plugin is enabled by autogen option '--enable-qt6' (and optionally setting 'QT6DIR' as needed). Use the 'SAL_USE_VCLPLUGIN=qt6' environment variable before running LO to select this VCL plugin. Taking qt6 into account at all relevant places certainly still requires follow-up changes, but this builds and runs with a self-compiled qtbase from the 'dev' git branch as of commit 3ce0672143d2eb3c3809f82998a4d71c5800d77a. I didn't see anything obviously broken in a quick run, but didn't test much. This reuses and shares the qt5 VCL plugin code; the qt6 headers and sources for now just '#include' the qt5 ones. Version checks are used for the code places that need different handling to be built against Qt 6. The build system parts in this commit were mostly done by copying the qt5 equivalents, then adapting as needed. Some notes on things I came across while porting to qt6: 1) At least in my self-compiled Qt versions, 'moc' (the meta-object compiler) is located in the 'libexec' subdirectory in 'QT6DIR', while the Qt 5 equivalent is located in the "bin" subdirectory of 'QT5DIR', so the configure.ac check uses the former. 2) moc does not process classes from the included headers. Since the headers in 'vcl/inc/qt6' just '#include' the ones from 'vcl/inc/qt5', running moc on the qt6 headers doesn't work, so moc is currently run on the qt5 headers for qt6 as well (s. 'vcl/CustomTarget_qt6_moc.mk'). That will have to be adapted in case the qt6 VCL plugin uses "own" headers instead of just including the qt5 ones at some point. 3) QX11Extras has been removed from Qt 6. [1] says: > Changes to Qt X11 Extras > > The QX11Info class has been removed. > > Clients that still rely on the functionality can include the private > header <QtGui/private/qtx11extras_p.h> as a stopgap solution. To enable > private headers use QT += core-private with qmake, or add a project > dependency to Qt::CorePrivate with CMake. I didn't take any closer look, just dropped the use of QtX11Extras for qt6 for now. 4) XCB_ICCCM is no longer needed. It is only used in qt5 to workaround a Qt bug fixed in Qt 5.12, s. commit fe2baf9e84e0ca9aeaa683e37076f57fa3f38dca Author: Jan-Marek Glogowski <jan-marek.glogowski@extern.cib.de> Date: Tue Dec 3 08:32:58 2019 +0100 Qt5 fix missing XCB_ICCCM_WM_HINT_WINDOW_GROUP 5) X11-specific code is still used for key modifier handling. Therefore, still check for the XCB headers when 'USING_X11' is set in configure.ac, and use a 'QT6_USING_X11' define (as qt5 uses 'QT5_USING_X11'). 6) There's currently no Qt 6 video sink for GStreamer. As of today, qt-gstreamer is unmaintained and there is no Qt 6 version. The project's README [2] says: > 0. Maintenance Notice > --------------------- > > This code is unmaintained. You can use it at your own risk. > > If you want to integrate video display in your QML-based UI, > you should consider using 'qmlglsink', from gst-plugins-good. > This is a well supported video sink that uses the generic > gstreamer-gl stack and is in many ways superior to 'qtquick2videosink' > that is provided by qt-gstreamer. You can use this code as an example: > https://cgit.freedesktop.org/gstreamer/gst-plugins-good/tree/tests/examples/qt/qmlsink > > If you are not interested in using QML in your UI, then you > may use one of the other elements provided by this module > (see below). If you do that, it would be helpful to let us > know that this code is still useful to you. We may consider > adding these elements in one of the core gstreamer modules. > > If you are here for the Qt-style bindings, I'm sorry to disappoint you. > The alternative is to use the C API, or the GStreamermm C++ API. > Qt-style bindings are cool, but unfortunately they are very hard > to maintain because they are written by hand. If you are interested > in continuing this project, you are welcome to implement a > generator for them, probably based on GObject-Introspection. > I am happy to provide directions if you want to pursue such a thing. Therefore, the Qt video sink handling is qt5-only and the corresponding handling for GOBJECT (used for the GStreamer video sink handling) was not taken over for qt6. This presumably means that video playback in Impress presentations does not work when using qt6 with they Qt Wayland plugin, s. tdf#125219 for the corresponding bug for qt5/kf5. (I did not build the qtwayland module to actually test this, though. Video playback with the Qt xcb plugin in a Wayland session works.) [1] https://doc-snapshots.qt.io/qt6-dev/extras-changes-qt6.html [2] https://cgit.freedesktop.org/gstreamer/qt-gstreamer/tree/README Change-Id: Ib105ccfb2c3630ec5d5403793a3cd9ba31d85bdf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122808 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2021-09-28com_sun_star_comp_svx_CharacterSpacingToolBoxControl is duplicatedCaolán McNamara
com_sun_star_comp_svx_CharacterSpacingToolBoxControl_get_implementation is already listed under svx/util/svx.component Change-Id: I55fd0e2aff051b62b33d5b257ced8e934c9053d9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122770 Tested-by: Tor Lillqvist <tml@collabora.com> Reviewed-by: Tor Lillqvist <tml@collabora.com>
2021-09-28More constructors needed for the DISABLE_DYNLOADING caseTor Lillqvist
Fixes https://github.com/CollaboraOnline/online/issues/3293. Change-Id: I3c0eaedf47321f0e81be4ac52c66f8e55381ac32 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122720 Tested-by: Tor Lillqvist <tml@collabora.com> Reviewed-by: Tor Lillqvist <tml@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122755
2021-09-28vcl: rename OutDevState to StackChris Sherlock
I have moved the header file to include/vcl/rendercontext as this will eventually be part of the RenderContext split from OutputDevice. State and associated enums have also been moved to the vcl namespace. I have also moved ComplexTextLayoutFlags into the vcl::text namespace. Change-Id: I0abbf560e75b45a272854b267e948c240cd69091 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121524 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2021-09-27vcl: move FontSelectPattern to own file and into vcl::font namespaceChris Sherlock
Change-Id: I2f01a8e67c52ece9b434777203aa9fbc9ac8be02 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122613 Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Jenkins
2021-09-24disable these for fuzzing as well as !HAVE_FEATURE_DBCONNECTIVITYCaolán McNamara
Change-Id: I90d9680590c9f9e36fdafaca9c98955a03654da7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122589 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-09-24need connectivity_dbase_ODriver if HAVE_FEATURE_DBCONNECTIVITY is trueCaolán McNamara
to get calc to attempt to import a dbase file Change-Id: I22cc0b69f785f1194feabff2eb88b86cde6eb6b9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122474 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-09-24need OSDBCDriverManager if HAVE_FEATURE_DBCONNECTIVITY is trueCaolán McNamara
to get calc to attempt to import a dbase file Change-Id: I177b41504cb42e5ba3ced799698d5f77305102d7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122456 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-09-23Look for the udkapi types.rdb file in the right place when cross-compilingTor Lillqvist
Fixes cross-compilation to iOS on macOS. Previously is was looking for instdir_for_build/LibreOfficeDev.app/Contents/program/types.rdb The correct location is instdir_for_build/LibreOfficeDev.app/Contents/Resources/ure/share/misc/types.rdb Now it is possible to build the master branch for iOS again. (No idea whether it works.) Change-Id: If5b09c77601b5a5136c26e1d383654a85b6cc795 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122516 Tested-by: Jenkins Reviewed-by: Tor Lillqvist <tml@collabora.com>
2021-09-23Adapt solenv/flatpak-manifest.in to recent download.lst changesStephan Bergmann
Change-Id: I3d97bbc023dee481420cc1fda8f36f4d3f6364fa Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122510 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-09-23external: update pdfium to 4643Miklos Vajna
Change-Id: I4e86b163a9abef88f26c6c0ae91ae0a4008658f1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122485 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2021-09-22avoid some more D9025 warningsLuboš Luňák
Change-Id: I01f8df5f399b17f46da9a59501bea28bc70cac4e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122431 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-09-22Apparently we need to define gb_Library_PLAINEXT_FOR_BUILD for iOSTor Lillqvist
Helps a build for iOS proceed a bit further. Change-Id: Icb0465eb204effbc0b777b5066d40d9938924eed Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122421 Tested-by: Jenkins Reviewed-by: Tor Lillqvist <tml@collabora.com>
2021-09-22make .pch file also depend on its source .hxx fileLuboš Luňák
This dependency is normally handled by either the .pch not existing (and so it needs building), or GCC/Clang output it in the deps, but MSVC doesn't seem to provide this dependency, so modifying the .hxx there doesn't trigger a rebuild. Change-Id: I83415d97b98b8861b3d53cba07c4ac2748e9f476 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122413 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-09-20use MSVC's /Zc:inline option to reduce binary sizeLuboš Luňák
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-20use clang-cl's -Zc:dllexportInlines- for clang-cl buildsLuboš Luňák
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-20use clang-cl's -Zc:dllexportInlines- for Skia (tdf#144598)Luboš Luňák
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. As an additional effect, this disables emitting copies of inlines functions in every .o file where the function is called (even if inlined), which means that it hopefully avoids the problem of SkOpts_avx.cpp generating a copy of SkRect::round() which would include AVX code, and the linker might select this as the instance of SkRect::round() to keep, thus making SSE2 code call AVX code without checking for AVX availability first. Change-Id: I97541ae11d05f489894bc9233271eb21fd520f43 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122335 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-09-20introduce SfxItemSetFixed and use it in DefaultPropertiesNoel Grandin
DefaultProperties::SetObjectItemSet is very hot when loading shapes, and a large chunk of that cost is allocating the pool item array. So use a template class to allocate the array in-line to the class, which means it can be allocated on-stack. Change-Id: Ic53b41f35784726362de38fceb35f8634cddf0a4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122310 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-09-19make "-external/" valid gbuild exclusion for FORCE_COMPILELuboš Luňák
Get the name of the directory extra level up, which is 'external' for external modules, and check that too. Change-Id: Ie9a3bffea0c64c07cf2e9dfa221fd27106a05443 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122307 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-09-18make FORCE_COMPILE_ALL more flexible than all or nothingLuboš Luňák
Rename it to FORCE_COMPILE and it takes the --enable-symbols specification of what to include, for example FORCE_COMPILE="all -sw/ -Library_sc". Change-Id: I92afd8e0abc75d3566285c197d6640c26c03db36 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122248 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-09-18make COMPILER_EXTERNAL_TOOL=1 work properly with generated sourcesLuboš Luňák
The normal compile commands would fail if the tool standing in as the compiler would not generate e.g. the dependency files. Change-Id: I590a925d3562c9677cbd836095cd0b8cfeb9613b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122247 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-09-18don't force compiler plugins when COMPILER_EXTERNAL_TOOL=1 is usedLuboš Luňák
Change-Id: I741d4e5450ba66d4452ee2e5398eaac0643a371f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122246 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>