summaryrefslogtreecommitdiff
path: root/Repository.mk
AgeCommit message (Collapse)Author
2022-09-27tdf#144348: Remove EmojiOne Color fontKhaled Hosny
The EmojiFont setting is now a comma-separated list of the three common color emoji fonts, it should fallback to the next font if the first is missing. Change-Id: I7aa134f914ab829704e9b707f511f166a81a0089 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140623 Tested-by: Jenkins Reviewed-by: خالد حسني <khaled@aliftype.com>
2022-09-14merge sdfilt library into sdNoel Grandin
it is very small, and this means we can get rid of some ugly runtime symbol loading Change-Id: I1d5f5da6a9e908ccd018915bf09b9ab97d67feb6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139866 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-06-20add a fuzzer for our lock filesCaolán McNamara
Change-Id: Iaf28aa4455ea9d798d9e2649e1e7c6f1216846f3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136194 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-06-10[API CHANGE] Remove deprecated idlc and regmerge from the SDKStephan Bergmann
* Client code must replace uses of idlc and regmerge with uses of unoidl-write, see the changes to odk/examples/ and ure/source/uretext/ in 40f2aee6584eafcf4cd1d95fcf1f775e5435440d "Provide unoidl-write also for the SDK" for examples. * The new types.rdb format is not compatible with LibreOffice < 4.1. Clients generating extensions containing such files are advised to use appropriate LibreOffice-minimal-version elements. * For compatibility with old extensions, reading the legacy types.rdb format is still supported. * The SDK no longer ships an idl/ sub-directory containing the udkap and offapi .idl files (as, unlike idlc, unoidl-write does not need them). odk/config/cfgWin.js had to be adapted to look (somewhat arbitrarily) for an examples/ sub-directory instead of idl/ when checking for "an sdk folder". gb_UnoApi_package_idlfiles became unused and has been removed. * The idlc and regmerge executables have been removed. Module idlc has been removed except for idlc/test/parser/, which is also used by CustomTarget_unoidl/unoidl-write_test, and which may eventually be moved into module unoidl. Module external/ucpp and the corresponding configure options have also been removed. Change-Id: I42a0231699b863b5ebe2bee63bc32c8f79278cc1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122363 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-06-10LanguageTool Grammar Checker implementationMert Tumer
Signed-off-by: Mert Tumer <mert.tumer@collabora.com> Change-Id: I275cbea668afc5beb5147370119631df8b6a2d46 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135178 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2022-06-04ScriptForge - New 'UnitTest' service for BasicJean-Pierre Ledure
The "UnitTest" service is implemented as a new Basic library called 'SFUnitTests'. ScriptForge unit tests (SF_UnitTest class module) ====================== Class providing a framework to execute and check sets of unit tests. The UnitTest unit testing framework was originally inspired by unittest.py in Python and has a similar flavor as major unit testing frameworks in other languages. It supports - test automation - sharing of setupand shutdown code - aggregation of tests into collections. Both the - code describing the unit tests - code to be tested must be written exclusively in Basic (the code might call functions written in other languages). The code to be tested may be released as an extension. It does not need to make use of ScriptForge services. The test reporting device is the Console. Definitions: - Test Case: each test case is a Basic Sub. - Test Suite: a collection of test cases stored in 1 Basic module. - Unit test: a set of test suites stored in 1 library. Two modes: - the normal mode ("full mode"), using test suites and test cases The UnitTest service is passed as argument to each test case. - the "simple mode" limited to the use of the Assert...() methods. Service invocation examples: - In full mode, the service creation is external to test cases Dim myUnitTest As Variant myUnitTest = CreateScriptService("UnitTest", ThisComponent, "Tests") ' Test code is in the library "Tests" ' located in the current document - In simple mode, the service creation is internal to every test case Dim myUnitTest As Variant myUnitTest = CreateScriptService("UnitTest") With myUnitTest If Not .AssertTrue(...) Then ... ' ... .Dispose() End With Error handling To support the debugging of the tested code, the UnitTest service, in cases of - assertion failure - Basic run-time error in the tested code - Basic run-time error in the testing code (the unit tests) will comment the error location and description in a message box and in the console log, providing every test case (in either mode) implements an error handler containing at least a call to the ReportError() method. Change-Id: I9d9b889b148f172cd868af455493c8c696d1e953 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135365 Tested-by: Jean-Pierre Ledure <jp@ledure.be> Tested-by: Jenkins Reviewed-by: Jean-Pierre Ledure <jp@ledure.be>
2022-04-26Drop unused CT2N extensionGabor Kelemen
It is not bundled by any downstream distributions so it makes no much sense to keep it integrated here. Change-Id: I80180e53e050b8b3cd1b173ef01b51e8d706f295 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133355 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2022-04-11Add unoidl-read to the SDKStephan Bergmann
...as a replacement for the legacy regview Change-Id: I1e1eecb45f27422727f28feb19c2479af867bd79 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132816 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-04-11unoidl-check does not need to be part of installation setsStephan Bergmann
...it is a build-time tool used from solenv/gbuild/UnoApiTarget.mk, and should be of no value for users of LO (or of the SDK). It was presumably a historic mistake that its predecessor regcompare was included in installation sets in the first place. (The only mention of it in the Developers' Guide, which only acknowledged its existence without giving any details how to use it, has been removed in <https://wiki.documentfoundation.org/index.php?title=Documentation/DevGuide/Writing_UNO_Components&oldid=492551> "Drop mention of build-time tool unoidl-check that should not be part of any installation sets".) Change-Id: I626e22fa18ad900af150afe29a36aa1ceaf5e259 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132814 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-03-30Add UNO API for custom Jump ListsSamuel Mehrbrodt
Allows adding custom jump list categories to Windows Task Bar Change-Id: I13b6c3ad5de386cf74e2b346f10889bc46a8ad4e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131540 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de>
2022-02-25Provide unoidl-write also for the SDKStephan Bergmann
...after the new types.rdb format that unoidl-write generates has been used internally since LibreOffice 4.1 in 2013; following up on 6db34b6b33ba8e3b13683efd05df8441b87e9c92 "Directly build UNOIDL .rdb files from .idl files" and its "The legacy tools idlc, regcompare, regmerge, and regview are still contained in the URE or SDK for now." The tools idlc and regmerge are deprecated but still shipped in the SDK for now. The plan is to drop them completely for LO 7.5. odk/examples/ and ure/source/uretest/ are adapted to use unoidl-write instead of idlc and regmerge: * unoidl-write does not use a C preprocessor and the # directives in .idl files, it supports reading a single .idl file (containing an arbitrary number of declarations) or a directory tree where each directory corresponds to a UNOIDL module of the same name and each .idl file contains the declaration of the (non-module) UNOIDL entity of the same name. For some of the odk/examples/, that required moving individual .idl files into sub-directories named after the respective modules. In odk/settings/std.mk, definitinos of IDL and REGMERGE have been replaced with a new UNOIDLWRITE. * unoidl-write always enforces reserved UNOIDL identifier restrictions (see 04af4e4f55f3ef319a78edd4d0109e2e7eba90b6 "[API CHANGE] Fix all bad UNOIDL identifiers across offapi" and 620179240670bd00f60555f1f5c5b0268492f97c "Enforce the UNOIDL identifier scheme") (which idlc only enforced optionally with -cid -we). That required renaming "my_module" in odk/examples/DevelopersGuide/Components/CppComponent/. * The new types.rdb format is not compatibly with LibreOffice < 4.1. Clients generating extensions containing such files are advised to use appropriate LibreOffice-minimal-version elements. Change-Id: I1a248fd96e86ecbf407f829bc100d44bfe7f4e7d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130533 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-02-18first cut at using Gtk4 built in video playbackCaolán McNamara
Change-Id: Ib996cd3f5ddbf20a81cdbe4b1c6546d6df478fde Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129783 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-02-14Add LibreOffice Crash extensionSamuel Mehrbrodt
This extension crashes LibreOffice. It is to be used to test the crashreporter setup. Change-Id: I494cdcd746dd49a4f566507712c601494a0bbfac Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128906 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de>
2022-01-31ofz: fix build, webpfuzzer missing from Repository.mkCaolán McNamara
Change-Id: I8cd33d24b3289b00471aa10404dbb77343365d7c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129245 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-01-21The Emscripten FS image isn't installed anymoreJan-Marek Glogowski
... it's just symlinked by the unxgcc.mk link target to binary locations. Change-Id: Idce067d82de6751cf422d924e00537d93fd716bc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128730 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2022-01-20WASM --enable-wasm-strip now skips lots of LO codeArmin Le Grand (Allotropia)
... resulting in a stripped-down, Writer-only build to decrease the resulting WASM bytecode size. It removes the following code from the build: * All other major modules: Base, Calc, Chart, Draw, Impress and Math and related writerperfect filters * The premultiply tables * The (auto-)recovery functionality * All accessibility (but not the accessibility document checker) * The LanguageGuess component * EPUB support * The start center / BackingWindow * The TipOfTheDay functionality * The splash screen communication Currently crashs with anything different then soffice --writer. Closing the document also still crashes. FYI: many of these features are now behind ENABLE_WASM_STRIP_* defines, but they normally don't work on their own, globally! That's because we started with stripping the main components. Change-Id: Ib9c0f9452815910c0a2aceaf142ba1ad4a9cb0d7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126182 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2022-01-19WASM merge wasm-qt into static moduleJan-Marek Glogowski
Change-Id: I1ed26685561fd79d26cc0844faa3dfe4c00d439a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128625 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2022-01-19WASM add fontconfig data to FS imageJan-Marek Glogowski
We probably want to pre-create the fontconfig cache in the image. Startup time still is not really worse for me, but YMMV. Change-Id: I419682339dd6d943753de9043ff82f2fb877b168 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128624 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2022-01-19WASM create and link the Emscripten FS imageJan-Marek Glogowski
There are three posibilites to add files to the image: - gb_emscripten_fs_image_files to add individual files - gb_emscripten_fs_image_autoinstall to add files from AutoInstall - gb_emscripten_fs_image_filelists to add files from a .filelist Change-Id: If6804e282a37a37ffae1d291d2af8430e60b59d1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128598 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2022-01-19WASM UNO: add a minimal dummy bridgeThorsten Behrens
... and use the same fake exception rethrowing code then the mobile platforms. Change-Id: Ic90de1cfd1e0092d6064d041a613d60d9f5f76b5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128596 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2022-01-19WASM more initial bits and piecesJan-Marek Glogowski
All the small stuff, which is needed for the WASM build, but is not really worth an extra patch. * No soffice.sh script needed for WASM * WASM soffice.bin executable extension is html * Some small additional SAL_LOG output * Default to colibre icon theme * Test for qt5 even without X11 * Remove emconfigure artefacts at the end of the configure run * No oosplash for WASM * Disable the Office IPC thread * Suppress -Wno-enum-conversion for Cairo builds * Fix libnumbertext by using gb_EMSCRIPTEN_CPPFLAGS * Map EMSCRIPTEN to LINUX nls * No extra newlines for missing icon theme images * Print the missing dependency in some gbuild error messages * Copy Qt WASM loader, HTML template and SVG logo for binaries * Especially build the vcldemo for Emscripten Change-Id: I356370c72cc09357411e14d0c00762152877a800 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128584 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2022-01-12gbuild: build static LO / link static executablesJan-Marek Glogowski
This allows to build a complete static LibreOffice on Linux, except for linked externals. Since LO's static build implies disabled dynamic loading, one must select one VCL backend to be compiled in. See the (large) comment in solenv/gbuild/static.mk trying to explain, why this implementation was chosen (spoiler: seems there is no other way) and what is actually implemented. This will collect all libraries, statics and externals of executables. If the executable uses components, it will get linked to all static components. While it works with any Executable, it just makes sense for soffice.bin, because the static component map sucks every dependency in, bloating most other binaries. In theory on could generate the dependencies based on the list of used components (see gb_CppunitTest_use_components), then generate a specific static constructor map, directly include it in the exe's cxx code and then link the minimal dependencies. The static LO should build on Linux with: --enable-customtarget-components --disable-dynamic-loading Tested VCL plugin config is: --disable-gtk3 --disable-gen --enable-qt5 The partial build support is split into a 2nd patch. Change-Id: Iafc95752fae9e88095f54a21f1e30a4f080815e2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126790 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2022-01-08Don't install the uno script when uno is not buildJan-Marek Glogowski
... move it into cpputools and rename ure/Package_install.mk to ure/Package_ure_install.mk, to match the module name. Follow up from commit 92a90cf5ccb998d2fcc77a62bb971534e410cdec ("Don't build the static uno binary"). I missed that hunk in a larger patch, because the script was in a different module, then the binary. Change-Id: If7f3152be9567cf84be176d3fedefbcd5ad8d387 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128138 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2022-01-08vcl: Create listfonts utilityChris Sherlock
The listfonts utility gets the details of all available fonts on the system. It prints out the information, or stores it in a text file, if a file name is passed to it as an argument. An example invocation to store the information in a file named fonts.txt is: ./bin/run listfonts fonts.txt To get the correct font metrics, you actually have to get the font metric from the system, and then set it as the current font of OutputDevice, then get the font metric (which corrects a variety of things like the orientation, line, height, slant, etc. - including converting from logical coords to device coords). The information is reported for each font family. On the top is the family name, and then comes other details. Here is a report for an example font: FreeSans Family type: swiss Style name: Regular Weight: normal Italic: none Pitch: variable Width type: normal Alignment: top Charset: UCS2 (aka Unicode) Symbol font? no Ascent: 13 Descent: 3 Internal leading: 0 External leading: 2 Line height: 16 Slant: 0 Bullet offset: 0 Fullstop centered? yes Orientation: 0 degrees Quality: 18477 There is a -v (or --verbose) option that output font features. Change-Id: Icfc4da96459bea47c4233a5509496566c04d460c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127365 Tested-by: Jenkins Reviewed-by: Hossein <hossein@libreoffice.org>
2022-01-08Unify condition names and fix "else" pathsJan-Marek Glogowski
Drop Build prefix and settle on Lib and Exe prefixes. Also add a note about the "else" part of the condition and fix offenders. While at it, define COND_LIB_SAL_TEXTENC to be used by sal to prevent diverting coditions in build and cxx code. Change-Id: I944587ca1ccbe46b765d1a631a7214c8126fe951 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128136 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2022-01-08Don't build the static uno binaryJan-Marek Glogowski
Change-Id: If6d5384d4692fba94070bb11bb5a47a66b813f58 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128135 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2022-01-08sp2bv is just used by the ODK on WindowsJan-Marek Glogowski
And I should have tested gb_Helper_optionals_and. Inspecting the generated token for comparison doesn't result in gb_[T1]_[T2], as I expected. So first filter the token from BUILD_TYPE, then filter-out the result from the input token. If true, then both sets are equal == and. Change-Id: I74a324f766331b30a0af9c9bfd7c927c1d21df53 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128115 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2022-01-07Don't build a static unopkgJan-Marek Glogowski
Currently we don't destinguish between between extensions without code, which couldn't be executed with DISABLE_DYNLOADING, and all other extensions, like translations, dictionaries, etc., so there is no need for a static unopkg. Change-Id: I427a51b3174d074e467a582e808490a85e98e8eb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128114 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2022-01-03Drop / merge some Haiku special build casesJan-Marek Glogowski
Just don't test gtk3, so it's also not enabled. This way we can also rename the kde install module to haiku on demand. The kf5be1 is kept kde-only; no idea if that is intentional. Change-Id: Id93b15fc6057a50da59efd655e1fc7d5f416c6de Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127894 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2021-12-30Minimal vcl applicationHossein
Created a minimal vcl application inside vcl/workben in ~55 loc in which creates a window and paints a simple text inside it. One can run the application by invoking: ./bin/run minvcl Change-Id: If648666ff25c4b66089a37c8d8164752663fa225 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125124 Tested-by: Jenkins Reviewed-by: Hossein <hossein@libreoffice.org>
2021-12-24Enforce cross-compilation for static buildsJan-Marek Glogowski
... AKA DISABLE_DYNLOADING, except for oss-fuzz, which will be converted to a cross build in a follow-up patch. This includes skipping the static registry and help tooling and aborts configure when the ODK is selected to be build. Change-Id: Ifae32e91acf5e9ffa234d8f915ee459b197091fe Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127287 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2021-12-22Separate core drawinglayer func. into drawinglayercore libraryTomaž Vajngerl
This separates the drawinglayer core functionallity into a separate library, to keep a strict separation what is backend dependent and what is not. More strict separation can be done at a later date. This will make it possible to push part of drawinglayer (part of processor2d) directly into VCL. Change-Id: Ibc26580067e50bf20d7cdd37fa0e44eb10200878 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127286 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-12-16drop ui-previewerCaolán McNamara
the need for this is gone now the transition from src to ui is completed. I certainly don't use this anymore. Change-Id: I5bf9c8bc4f00152977091f466c2e808b824acb44 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126925 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-12-16drop ui-previewer from install setCaolán McNamara
this is intended for use for bootstrapping the process of conversion of the .src to .ui and isn't useful to have in a normal install Change-Id: I88066bb086ca58a56c2adc7ef5a96b03b670f086 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126924 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-12-16Refactor Library_sal_textenc build conditionJan-Marek Glogowski
... by adding and using gb_CondSalTextEncodingLibrary. Change-Id: I04e8f56bde6296477d449f1c447e8133cdf86e6e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126788 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2021-12-15lockfile: use a single build conditionJan-Marek Glogowski
... and introduce solenv/gbuild/Conditions.mk The Conditions.mk is included just after the Helpers.mk, which should make its content available basically everywhere. Change-Id: Ie4498e12b3d0f676ed0c9abf4b3bb4899d6a1c03 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126787 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2021-12-13desktop_detector is also a vcl pluginJan-Marek Glogowski
Change-Id: I71445c16744674f75fed190911749f38226169e0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126715 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2021-12-04Remove merged gie library from install setJan-Marek Glogowski
Removed in commit 2270a58d7b25e683449c180576b7647f8d5256f4 ("Move GIF writer from filter module into VCL"), but accidently re-added (at least to the install set in commit ed583bf8d553b145f83b66118253aaf7ac94fa1a ("gbuild: introduce plugin + loader concepts"). Change-Id: I6ed9ab5aeab6a2ecc8dd169f0d8ddfb42b334b47 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126347 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2021-12-03Fix --disable-scripting for DESKTOP buildJan-Marek Glogowski
Unfortunatly we cannot add --disable-scripting to sub_conf_defaults, because Java currently has no equivalent to the PYTHON_FOR_BUILD setting. Change-Id: I89938a17307a363f5de808200914940503312829 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126186 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2021-12-01gbuild: introduce plugin + loader conceptsJan-Marek Glogowski
This introduces two concepts: a plugin and its loader (library) LO currrently has dependency cycles for some libraries. There is scui, which depends on sc, while sc dlopen's scui. There are the various vclplug_*, i18npool plugins, filters/gie, acc, etc. Usually these plugins link to their loader library, because they use its symbols. But as a result there is no sensible way to express the runtime dependency of loaders on the plugins. In GNU libtool plugins are called modules and they are implemented in an IMHO more sensible way by allowing missing symbols at link time. This way you can have a dependency from the loader library to its plugins, as the plugins don't depend on the loader, but you lose the link time detection of missing symbols. While this is in theory possible in LO too, LO currently has plugins, like acc (accessibility), loaded by tk (toolkit), which depends on svt (svtools), which itself depends on tk, so dropping the tk dependency for acc on its own doesn't help :-( And while the dependency of the plugins on their loader is fine for the shared / DYNLOADING build, for the "static" builds you must (somehow) link the plugins into the executables. I also codeified a few rules into the build system along with it: * just plugins are allowed to depend / link other plugins * plugins aren't allowed to be linked into the merge lib * plugin loaders are "limited" to libraries At the high level, this is implemented via new gbuild calls: * gb_Library_set_plugin_for,lib,loader: declare a library to be a plugin of a loader library and add a dependeny from the plugin library to the loader library * gb_Library_set_plugin_for_nodep,lib,loader: ^^^^ without adding the library dependeny * gb_Helper_register_plugins_for_install: "plugin" replacement for gb_Helper_register_libraries_for_install to implement some additional checks in the build system In the end this patch just adds a bit syntactic sugar and nothing changes for any build. Change-Id: I7b01d9c384cbc5838bd2cc93aff18e4868939d6e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126163 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2021-12-01Fix --disable-avmedia for DESKTOP buildJan-Marek Glogowski
Probably additional bits can be removed, but this now passes. Change-Id: I366bec43cfd6fb02e914c85c711b3b19586d534d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126161 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2021-12-01gbuild: serialize dynamic link for static buildsJan-Marek Glogowski
This is a hack, because make has no way to serialize processing of a target (just .NOTPARALLEL for the whole Makefile). It uses the lockfile tool / liblockfile 1.17. Since that polls the file, I adjusted the poll timeout to 5s max, because I found the 60s wait much too long. Guess even 1s would be ok... Since it's just a small build tool, I simply copied and patched its source, instead of creating an external project. And there is --with-system-lockfile=... to use an external binary instead. Change-Id: I16bc4579a273dcf1aac811ae4723ca325a0b9eba Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126152 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2021-10-15ScriptForge - new SFWidgets library, new PopupMenu serviceJean-Pierre Ledure
The SFWidgets library is intended to host the Toolbar, ToolbarControl (both future) and PopupMenu services. A popup menu is usually triggered by a mouse action (typically a right-click) on a dialog, a form, or one of their controls. In these cases the menu will be displayed below the clicked area. When triggered by other events, including in the normal flow of a user script, the script should provide the coordinates of the topleft edge of the menu versus the actual component. The menu is described from top to bottom with next methods: AddItem() AddCheckBox() AddRadioButton() Example: .AddCheckBox("View>Toolbars>Dialog") .AddCheckBox("View>Toolbars>Find", Status := True) .AddCheckBox("View>Status Bar", Status := True) .AddItem("View>Full Screen", Name := "FULLSCREEN") The SubmenuCharacter (Default = ">") is modifiable. Each menu item receives a numeric and a string identifier. The execute() method returns the item selected by the user. The service is available both from Basic and Python user scripts. The commit includes the review of build files to include the new library and the new modules. Change-Id: I2940be25313cc8fff7b337766edd348b04a20584 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123654 Tested-by: Jean-Pierre Ledure <jp@ledure.be> Tested-by: Jenkins Reviewed-by: Jean-Pierre Ledure <jp@ledure.be>
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-25add dbffuzzerCaolán McNamara
which requires dropping ---disable-database-connectivity Change-Id: I5b3a2027916a3cf844cefd90629c3fe918ead31e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122591 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-07-31fix install with --disable-cmisRene Engelhard
Change-Id: I51430a860a0b5047b566ed8184f0f563ec54f288 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119661 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2021-06-22configure: Improve help-options handlingJan-Marek Glogowski
This patch includes: * A README.help.md as a general documentation for the different help types, the LO code and help-related build options. * Adds --disable-xmlhelp for removing the xmlhelp support from the build. Disable for iOS, Android and Emscripten. This was partly included in HAVE_FEATURE_DESKTOP before. * Rename WITH_HELP define to WITH_HELPPACKS, which reflects the actual usage AFAIK. * Depend --with-omindex on --with-help=online and don't override the --with-help setting. Error out on conflicting options. * Depend --with-helppack-integration on build help variants, which actually result in help packs. Kind of reverts commit 2c38ea6d16b910294220cefaf8ae6a0683e6405a ("Building without --with-help is not supposed to disable help functionality"). Change-Id: Ie4cb73905b3ed94e991d9f1bd75cfbd6de9da385 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116222 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2021-05-25Resurrect io testconnection executableStephan Bergmann
...which appears to be the only code that exercises osl's socket (rather than named pipe) connections, so lets have that available at least for manual execution. Addresses various compiler and loplugin warnings, and extends a wait time to more reliably have the MyThread instance already accept when the second accept (on the main thread) is done. Change-Id: I761d747b08ab45f1ac03dad8b4197fae63228e16 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116103 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-05-10bodge a gtk4 starting point into existenceCaolán McNamara
this is not supposed to work or anything even close to that Change-Id: I46b4fed6a1e6cfc885cb4f7c24660bb6438d5101 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115293 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-05-05WASM: add initial support for Emscripten cross buildJan-Marek Glogowski
- configure with: - --host=wasm64-local-emscripten - had to make a few externals optional, so adding: - --disable-nss - --disable-cmis - --disable-curl Change-Id: I48d1c73d2675ad2e2beaf2c341578199efbd24ee Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111130 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>