summaryrefslogtreecommitdiff
path: root/i18npool/Library_i18npool.mk
AgeCommit message (Collapse)Author
2021-12-10Generally determine Rdb content from gb_*_set_componentfile callsStephan Bergmann
...instead of by listing the content somewhat redundantly in the Rdb_*.mk files, to avoid duplication of logic for components that are only built conditionally (and thus should only be included conditionally in the corresponding Rdb). To achieve that, add an "rdb" parameter to gb_ComponentTarget_ComponentTarget (and to the gb_*_set_componentfile macros that internally call gb_ComponentTarget_ComponentTarget), which is used to make the appropriate gb_Rdb_add_component call internally from within gb_ComponentTarget_ComponentTarget. (As a special case, gb_CppunitTest_set_componentfile shall not call gb_Rdb_add_component, as that has already been done by the corresponding gb_Library_set_componentfile call, so allow the gb_ComponentTarget_ComponentTarget "rdb" parameter to be empty to support that special case.) Most Rdb_*.mk files are thus mostly empty now. One exception is i18npool/Rdb_saxparser.mk, which duplicates some of the Rdb_services content as needed during the build in CustomTarget_i18npool/localedata. 1c9a40299d328c78c035ca63ccdf22c5c669a03b "gbuild: create services.rdb from built components" had already tried to do something similar (in addition to other things) under a new --enable-services-rdb-from-build option. However, that approach had four drawbacks that this approach here addresses (and which thus partly reverts 1c9a40299d328c78c035ca63ccdf22c5c669a03b): 1 Rdb_services shall not contain the component files of all libraries that are built. While that commit filtered out the component files that go into Rdb_ure/services (ure/Rdb_ure.mk), it failed to filter out the component files that go into others like Rdb_postgresql-sdbc (connectivity/Rdb_postgresql-sdbc.mk). 2 The code added by that commit to Makefile.gbuild codified the knowledge that there is an Rdb_services, which is brittle. 3 The code added by that commit to solenv/gbuild/Rdb.mk codified the knowledge (for gb_Rdb__URECOMPONENTS) that there is an Rdb_ure/services, which is brittle. 4 Introducing an --enable-services-rdb-from-build option needlessly provided two different ways how the content of Rdb_services is assembled. The changes done here would leave --enable-services-rdb-from-build as a misnomer, as it no longer controls how Rdb_services is assembled. I thus renamed it to --enable-customtarget-components, as that is apparently what it still does now. Change-Id: Ia5e8df4b640146c77421fcec6daa11a9cd260265 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126577 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-12-06gbuild: create services.rdb from built componentsJan-Marek Glogowski
... and introduce the --enable-services-rdb-from-build option. Currently the build handles global build options redundant in a few places: * in Repository*mk + modules - the "real" build dependencies * the full services.rdb generation * the static UNO constructor map generation Also the component files don't reflect the really built components and so the RDB services generation must handle the whole options to select the correct components. So this optionally replaces the latter two by generating the list of components and it's constructors from the build itself. As a consequence, component files must now be split, so they reflect the real components in the libraries, otherwise the static constructor list will have missing symbols. IMHO this is more natural, as it happens in the same place already handling these build options for the sourcecode. This also adds a convenience helper to add multiple component files: gb_Library_set_componentfiles This is WIP and currently just works for the stripped WASM build, which introduces many more split component files in later patches. It also explicitly filters the gb_Rdb__URECOMPONENTS and the CppunitTest related components from the services.rdb. Maybe there is a good way to do this properly. Change-Id: I1b38a6f2c1e5221f18d7e5e756c30263b555d962 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126185 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>
2018-05-22Fold BreakIterator_CTL into BreakIterator_thKhaled Hosny
The split is pointless and misleading, there are no other subclasses of BreakIterator_CTL. Change-Id: I66e66834e6e064cea29f543434a35682ee7cd35d Reviewed-on: https://gerrit.libreoffice.org/54638 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Eike Rathke <erack@redhat.com>
2017-04-21gbuild: Remove MSVC 2013 legacy codeDavid Ostrovsky
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>
2016-12-20make IOS generic DISABLE_DYNLOADING and explicit link to icudataCaolán McNamara
Change-Id: I515fb2e772e63fef00711c87200512ea1bed024c Reviewed-on: https://gerrit.libreoffice.org/32206 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2015-04-26--enable-mergelibs: Turns out we don't need to install saxMatúš Kukan
We are lucky, saxparser(expwrap) is only needed to build localedata* libs which are only runtime dependencies, and can be built *after* libmerged. So, simplify and move runtime deps to CppunitTest. This reverts commits 59cea45ec247df1acb691308c940ff97673e4c48 and partially 5e45637568ceefee21fe329a5254881963fecd7a Change-Id: I1a1fb4a48fd1a22a9b3a48f0eb0f123649c113b0
2015-01-22This can be called really early, create the dir.Jan Holesovsky
Change-Id: Ie0097c20429104f10eb188ae0cbfcf5bc5a44e14
2014-04-22Add a new configure switch --with-locales for restricting the included localesTor Lillqvist
For now only effective in the DISABLE_DYNLOADING case, where it limits the locales compiled in to the i18npool library. Maybe should use this same option to also limit what collation tables etc are compiled in? Not expected to be used for desktop OSes, but can be useful for mobile platforms where every megabyte counts. Change-Id: If672b4cd19f44f8c7e119378faf40930a51969b7
2014-04-14Put the dict_ja and _zh data in files instead of code for iOSTor Lillqvist
Map the file(s) into memory on demand. The executable file of an app needs to be as small as possible. Including additional data files in an app bundle is fine. Change-Id: Ife9bfe99a2cf0473d459f38f50dfa3304b39e282
2014-04-08fdo#77123: Add option ignore kashida to the searchFaisal M. Al-Otaibi
This patch will add new checkbox to ignore kashida in the search and replace dialog. Change-Id: I9e7179242751103b8418d922ade5b9145170ad15
2013-06-21Revert "better dependency working also for libmerged"David Tardon
It might work with libmerged, but it does not work otherwise. This reverts commit f8fd2e6a3b21ec3899a74d7400cafaba4e83ff6c.
2013-06-21Fix fdo#52204 add new feature ignore diacritics in search for CTLabdulmajeed ahmed
Change-Id: Ie9044a35003217545bacea214ef59047bff3b8b1
2013-04-30Move to MPLv2 license headers, with ESC decision and author's permission.Michael Meeks
2013-04-25ditch libi18nlangtagicu againEike Rathke
Thanks to Fridrich for finding the real cause for why I thought this was necessary.. Change-Id: I77934b17c2b994a03cae5440253b165704de2fa4
2013-04-25use LanguageTagIcuEike Rathke
Change-Id: I3ced460cc5a03554dc77e19381af8a5ba202d2ab
2013-04-10supress warnings from icu-generated headersPeter Foley
Change-Id: Ibbf0c1148cf8ea37bb51e6c31d2e89efc9dfce00
2013-04-05new module i18nlangtagEike Rathke
Moved portions from module i18npool, all of former i18nisolang1 library that now is i18nlangtag. Included are languagetag, isolang and mslangid. This i18nlangtag code is now even used by module comphelper, so disentangling i18npool and making this an own module was needed to not create circular module dependencies. Change-Id: Ib887c3d6dde667403fd22d382310ba5f1a9b0015
2013-01-26gbuild: do not copy boost headers aroundMichael Stahl
- 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
2012-12-27convert icu to gbuild and add to tail_buildPeter Foley
Change-Id: Id7d8bc05b1393cc2bae4a531c8a47f62df24b1d6 Reviewed-on: https://gerrit.libreoffice.org/1488 Reviewed-by: Tor Lillqvist <tml@iki.fi> Tested-by: Tor Lillqvist <tml@iki.fi>
2012-12-02RepositoryExternal.mk: clean up awful icudata/icui18n duplicationMichael Stahl
Change-Id: Ic4794d9a908b60220a4a849ff263eaa08776550c
2012-09-28gbuild: invert handling of standard system libraries:Michael Stahl
Always link in gb_STDLIBS, except when the library explicitly opts out with gb_LinkTarget_disable_standard_system_libs. Change-Id: I489a99114fbfa46d0421a27cf6c7b899dc268a4a
2012-09-28gbuild: replace direct gb_STDLIBS use with ...Michael Stahl
... new gb_LinkTarget_add_standard_system_libs Change-Id: Ib2bc843098db3d8c6822b45a3d21724e67f57d69
2012-09-28gbuild: split uwinapi out of gb_STDLIBSMichael Stahl
Change-Id: I53316e0b9369d806197bccb42cf22d3497af43e7
2012-08-24better dependency working also for libmergedMatúš Kukan
Change-Id: I3c5cf65bee50ec0511031b50e1b9f5589491e6bd
2012-07-02targetted improvement of UNO API includes / usageMichael Meeks
2012-05-16i18npool: fix spurious re-deliver of i18npool.uno.so:Michael Stahl
The target is always older, because it is delivered while preserving the timestamp of the source, but here order only dependency is enough.
2012-04-18Use static linking when DISABLE_DYNLOADING (iOS)Tor Lillqvist
2012-04-12move dependency on localedata_en to i18npoolMatúš Kukan
2012-04-08gbuild: "use" vs. "add":Michael Stahl
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-03-24i18npool: use CustomTarget_*.mk makefilesMatúš Kukan
Also done lot of simplification and modernization.
2012-03-10gbuild: get rid of realpath in gb_Foo_set_includeMatúš Kukan
2012-03-08de-uno-ize ScriptTypeDetectorCaolán McNamara
leave a UnoScriptTypeDetector implementation that points to the trivial ScriptTypeDetector for external consumers, e.g. sdext
2011-11-27remove pch from the include listNorbert Thiebaud
2011-11-27remove pre-compiled header support in gbuild and gbuildified moduleNorbert Thiebaud
2011-08-19The shorter icu library names are used for WNTMSC onlyTor Lillqvist
2011-08-19Fix i18npool build on Windows.Jan Holesovsky
2011-08-18realpath is not necessary hereDavid Tardon
(moreover, its use breaks parallel build ;-)
2011-08-17convert i18npool to gbuildMatúš Kukan