Age | Commit message (Collapse) | Author | Files | Lines |
|
I.e. try to find and use Clang even if the default compiler is
something else. Skia is optimized to be built with Clang(-cl)
and in CPU-based raster mode some operations are several times
slower if built with something else (e.g. fmax/fmin do not get
optimized to inline assembly).
It is enough to select Clang to be installed in the MSVS installer.
At this point it unclear how to handle release binaries, if it
should work this way and enforced, or maybe Clang could be used
for building everything, or maybe some other way.
Change-Id: I6b95a0f2d5cbf176942d9e01136990b14be6dba8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92415
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
|
|
The following build:
$ make clean && make gb_CppunitTest_sc_ucalc
[...]
$ cd sc
$ make gb_CppunitTest_sc_ucalc
triggers:
sc/CppunitTest_sc_subsequent_filters_test.mk:133:
*** Missing font filelist -> run make more_fonts extras.
This didn't help the general Win32 font build problem AFAIK. There
were additional patches to the way Windows loads the LO provided
fonts, so just revert this.
This reverts commit 368c996b24e09c427a30972b3405493328db6779.
Change-Id: I841f96fe8312c47980c8e3be2e9d88242df5b28d
Reviewed-on: https://gerrit.libreoffice.org/84633
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
And make it simple to disable the whole feature by setting
gb_DISABLE_PCH_REUSE=1, just in case.
Also work around a possible BOOST_ALL_NO_LIB mismatch when
using the common PCH.
Change-Id: I96fd507edf1ada6242ac225026250e5a588d0193
Reviewed-on: https://gerrit.libreoffice.org/79365
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
|
|
Similar to gb_LinkTarget_set_precompiled_header, but uses PCH
created by another linktarget. This allows using a PCH even for linktargets
that are small and creating their own dedicated PCHs is not worth it.
The ultimate goal is having some default PCH that will be used if no
explicit PCH is set.
Change-Id: I4d72acdba7181bb5c7c1cdead776f548be36ba33
Reviewed-on: https://gerrit.libreoffice.org/79362
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
|
|
Change-Id: I617f606b64706e8bc32e827644e5f1d1ef27702a
Reviewed-on: https://gerrit.libreoffice.org/78624
Reviewed-by: Michael Stahl <Michael.Stahl@cib.de>
Tested-by: Jenkins
|
|
The current dependency is already a hack, because there is no way
I know of to depend on delivered top-level modules like more_fonts.
The original patch parses the gb_Package_MODULE_ooo_fonts list of
registered packages to add them as build dependencies.
But this is not sufficient, as it just adds the dependencies on the
installed / unpacked fonts in the workdir (actually it's just the
installer filelist), where they can't be found by the unit test
running in the instdir environment.
So this converts the depndency into a make error, if either the
filelist is missing or the included font files. But if we are in
a full run and know the more_fonts module, we simply depend on its
delivered files.
This needs some minimal changes to gbuild, as neither the delivered
file list nor the modules class names are yet available. And this
moves the fontconfig handling to extras, where the opensymbol font
is already handled.
Change-Id: I1b70a4c45ff189266ce56c57e534ddc45e7c5c19
Reviewed-on: https://gerrit.libreoffice.org/74624
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
Build spsupp for both x64 and x86, regardless of target platform.
This allows to install the ActiveX component to be used by both
64-bit and 32-bit applications on 64-bit systems (especially IE,
which runs both 64-bit and 32-bit processes simultaneously at
least on Win10), no matter which LO (32/64) was installed.
Move the DLLs from activex feature to ooo, to copy unconditionally.
Registration of LO-specific component will be also unconditional;
registration of replacement of MSO component will need own feature.
This doesn't yet register the component in system: TODO later.
Change-Id: Iccf5e73dfae306cb777f844d40611e23c4520a13
Reviewed-on: https://gerrit.libreoffice.org/71925
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Mike Kaganski <mike.kaganski@collabora.com>
|
|
As in, really disable, so that they do not even show. This moreover
avoids tons of D9025 warnings from MSVC about overriding -W4 with -w.
Change-Id: Ia2e72fd72d883d91bdd89e467ee42f259e2ae033
Reviewed-on: https://gerrit.libreoffice.org/72899
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
|
|
There is one usage of gb_Library_add_generated_cxxclrobjects in
the entire repo, and regrettably generated C++/CLR objects
weren't actually implemented in the new build system, so the
assembly.cxx with its generated version number was simply ignored.
|
|
The forwarding of LinkTarget subclass functions to LinkTarget functions
is currently done in a very elegant way that only requires listing the
bare function names once, but the downside is that the subclass
functions aren't defined in a way that "git grep" or "ctags" can find,
so replace that with more verbose copy-paste definitions.
Change-Id: I4bd7f1b1bc0904ae345958e39403ab508db584a1
Reviewed-on: https://gerrit.libreoffice.org/43196
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Stahl <mstahl@redhat.com>
|
|
* all .ui files go from <interface> to <interface domain="MODULE"> e.g. vcl
* all .src files go away and the english source strings folded into the .hrc as NC_("context", "source string")
* ResMgr is dropped in favour of std::locale imbued by boost::locale::generator pointed at matching
MODULE .mo files
* UIConfig translations are folded into the module .mo, so e.g. UIConfig_cui
goes from l10n target to normal one, so the res/lang.zips of UI files go away
* translation via Translation::get(hrc-define-key, imbued-std::locale)
* python can now be translated with its inbuilt gettext support (we keep the name strings.hrc there
to keep finding the .hrc file uniform) so magic numbers can go away there
* java and starbasic components can be translated via the pre-existing css.resource.StringResourceWithLocation
mechanism
* en-US res files go away, their strings are now the .hrc keys in the source code
* remaining .res files are replaced by .mo files
* in .res/.ui-lang-zip files, the old scheme missing translations of strings
results in inserting the english original so something can be found, now the
standard fallback of using the english original from the source key is used, so
partial translations shrink dramatically in size
* extract .hrc strings with hrcex which backs onto
xgettext -C --add-comments --keyword=NC_:1c,2 --from-code=UTF-8 --no-wrap
* extract .ui strings with uiex which backs onto
xgettext --add-comments --no-wrap
* qtz for gettext translations is generated at runtime as ascii-ified crc32 of
content + "|" + msgid
* [API CHANGE] remove deprecated binary .res resouce loader related uno apis
com::sun::star::resource::OfficeResourceLoader
com::sun::star::resource::XResourceBundleLoader
com::sun::star::resource::XResourceBundle
when translating strings via uno apis
com.sun.star.resource.StringResourceWithLocation
can continue to be used
Change-Id: Ia2594a2672b7301d9c3421fdf31b6cfe7f3f8d0a
|
|
...in favor of gb_LinkTarget_add_generated_exception_objects. The former would
have needed any flags to be passed in explicitly (but no call sites did), so
e.g. StaticLibrary_graphite didn't have any debug information (when building
with --enable-debug). I guess there is no downside to having C++ exception
support enabled in these places, and using _add_generated_cxxobjects instead was
likely an oversight in the first place (at least in the case of
external/graphite/StaticLibrary_graphite.mk, it was that way ever since
1ceb47d96da9e7977c96241f49ad291ff0466970 "graphite: convert to gbuild", but for
no apparent reason).
Change-Id: I9986a6c5ec30a521095dbe5315e5ca649741a790
|
|
...as clang-cl doesn't support the /clr switch.
* In configure.ac, capture the MSCV version (that would be used if CC hadn't
been overridden to use clang-cl) into MSVC_CXX.
* The logic which flags to pass into gb_CObject__command_pattern is coded into
the platform-agnostic LinkTarget.mk, so it's too late to try and filter all
relevant flags in com_GCC_class.mk, depending on whether a given .cxx file is
a normal one built with the normal $CXX or a special /clr one built with
$MSVC_CXX. Thus, a new CxxClrObject class had to be introduced that captures
this information early.
* When building with clang-cl, the generated config_host/config_*.h files
contain values suitable for clang-cl, but not for MSVC. But the .cxx files
compiled with MSVC happen to include config_global.h, and would fail. Hack
around that problem for now by introducing a hard-coded, minimal
solenv/clang-cl/config_global.h that is found first when buliding such a
CxxClrObject. Needs cleaning-up properly.
Change-Id: Iff8aac51c0b4fa906b14503c692640dda0996d33
Reviewed-on: https://gerrit.libreoffice.org/34509
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
Change-Id: I7566dcf21aae6b800adb58d8c94e350bb0da720c
|
|
Change-Id: Ia6395282916011d75a4fa01aa12e96d866621411
|
|
...to harmonize the mechanisms to not define LIBO_INTERNAL_ONLY for extension
code and CppunitTest_odk_checkapi. (It also needs to revert any -Wundef, as the
config_host/config_*.h files will not be included, so the HAVE_* macros will be
undefined.)
This obsoletes the need for RTL_DISABLE_FAST_STRING.
Change-Id: If5eacba80c349efb90762aade8f2ea6d2db7e314
|
|
...but rather dynamically created (via the SDK's setsdkenv_unix.sh.in) in the
SDK's per-user output tree. So better reflect that in instdir by putting the
symlinks into workdir/LinkTarget/Library/ instead on Mac. (Which has the
additional benefit that the location of the symlinks doesn't change with the
versioned SDKDIRNAME.)
Change-Id: I77237f6a5d64771c3cb0866e125925ed7b0ecdaf
|
|
to be used by odk/ checkapi test
Change-Id: I6bbb508cc6950a63218e8e4f3364306c7c79b087
|
|
Change-Id: I0e8524a0933114196a80317b9a427d8cd3f3e459
|
|
It probably does not make much sense in general but will be used to
optionally disable some implementations in a library.
Change-Id: Ib491b8b642907b5bb20d458cbf766c9c9a5a5111
|
|
Change-Id: Ib3c5d8f3921801f143447d8e01463905d80ac319
|
|
Unfortunately doing it like that breaks the case where as part of
building a dependent library some headers are generated and those
headers are then needed when compiling a depending library. Case in
point: sqlbison.hxx.
(Sure, for that particular case, as such it is fairly likely that we
don't want any of the database connectivity code at all in any iOS or
Android case, but working on the --disable-database-connectivity
configure switch is another task...)
This reverts commit ea61ed8efe8d84b88754b1c6af0a85a76b3ce424.
Change-Id: I8dd1f260160c90473ecf12ce862f37df9767fa19
|
|
In the DISABLE_DYNLOADING case, a gbuild "Library" is actually a
static archive, so no point in having it depend on other libraries and
be re-created each time one of those have changed.
This hopefully will speed up incremental rebuilds for iOS and Android
nicely, especially in a debugging tree, as the creation of large
static archives with debug information is quite slow.
Change-Id: I17d6a8aeffa65b1e09a7a11544683659c72a50ba
|
|
Change-Id: If1d0d5294af87f2b780deadb21d12a6ee90dead6
|
|
... use gb_Library_get_exports_target instead, which is already a
"final" target for Library.
Change-Id: I5b8a708ba97e351ef383dcc64ead4ab9ea8705c7
|
|
gb_Library_get_install_target and gb_Library__get_linktarget_target
Change-Id: I446e642fb43cf9804900b99b32dcc4c621dcb1c7
|
|
... it is an abbreviation of "Solar Version".
Since nobody can remember that:
remove OUTDIR OUTDIR_FOR_BUILD SOLARVER SOLARVERSION solarpath
and any mention thereof.
Change-Id: Idb3031c4f25a76ac05b22ec67e3ca3e1e8e512ad
Reviewed-on: https://gerrit.libreoffice.org/6515
Tested-by: LibreOffice gerrit bot <gerrit@libreoffice.org>
Reviewed-by: Michael Stahl <mstahl@redhat.com>
|
|
Change-Id: If8aded13ed91a871b119192401d2c2edbbd50f94
|
|
Change-Id: I696b550b495d1bf6549e3c54a3157d467a7ead8d
|
|
Had been totaly broken by the recent changes. (Which is fine, it is
just an experimental hack anyway, I am not sure whether it will ever
be used in anger. Just a pet peeve of mine, I dislike seeing
libraries, configuration files, resources etc mixed together in one
"program" folder, especially on OS X, where the convention is to have
app-specific dylibs and frameworks in "Frameworks", and resource files
in "Resources". But this is not any requirement as such; there are
apps in the Mac App Store that blatantly "break" this convention.)
Basically, replace uses of gb_PROGRAMDIRNAME and
gb_Package_PROGRAMDIRNAME with more specific LIBO_FOO_FOLDER, which
for normal builds all expand to the same "program" anyway.
Change-Id: I16c2b3351caa00e251e229aafbccb8346042d3c1
|
|
Change-Id: I299b088aebc0bb40bc395b774154d2fae1f5d669
|
|
Introduce SDKDIRNAME as a configury variable and use it instead of the
gbuild gb_Package_SDKDIRNAME. Then we can easily construct the
SDKDIRNAME_FOR_BUILD variant that is needed to find the specially
named SDK in instdir on OS X when cross-compiling.
Move the version number section in configure.ac earlier.
Change-Id: Iee3db1a50ad4c7a9f91bbc5e0d0b01d76a76f701
|
|
Add more FOO_FOR_BUILD variables and some gb_Foo_for_build functions.
Get rid of gb_INSTROOT and gb_DEVINSTALLROOT, just use INSTROOT.
Change-Id: Iee531b02d14fae41edb68ad589a5dec829a60255
|
|
- StaticLibrary and CppunitTest have all files in one directory
- Executable may have the executable itself in a different one
- Library may have files in up to 3 directories
... so create 2 directories (which may be the same) in
gb_LinkTarget_LinkTarget and a 3rd one in gb_Library__Library_impl.
This allows to get rid of the "mkdir LinkTarget/pdb/..." thing in
the header target rule, which was always ugly since it did not
get rebuilt when deleting it (or whole LinkTarget dir) from workdir.
Oh and the pattern dependency causes trouble:
$(WORKDIR)/LinkTarget/% : $(call gb_LinkTarget_get_headers_target,%)
... for files in ExtensionLibrary; it would be possible to put
ExtensionLibrary somewhere else of course but actually this pattern
dependency is unnecessary since we get the same thing whenever any
object is added to a link target and there shouldn't be link targets
without objects anyway.
Furthermore directory dependencies must be on the headers_target because
MSVC will write a PDB file when compiling objects.
Change-Id: Icd92e8768d6aafb094a4144f90165aa5ff233647
|
|
... because this is the time of day when one thinks, wouldn't life
simply be more awesome if there were a SHLXTHDL layer?
Change-Id: I02df8a8bf9d7d641ea060e2cfef6643fe2202353
|
|
Refactor everything to find and link libraries directly in INSTDIR.
- add gb_LinkTarget_get_linksearchpath_for_layer, and use it to set up
-L paths for T_LDFLAGS in such a way that only allowed libraries
can be linked against; i.e. it's not possible to link URE
linktargets against OOO or not-installed libraries
- gb_Library_get_target is now same as the gb_LinkTarget_get_target
(TODO: this needs cleanup)
- since a pattern rule won't work for linking libraries in INSTDIR,
add a separate per-file rule for every INSTDIR lib
- pattern rule can't find link target in the clean target any more
so add a LINKTARGET variable
- disable gb_Library_add_auxtarget, no auxtargets need to be copied
- tweak the call to gb_Library_Library_platform to pass in a path
in sdk/lib for the versioned URE libs
- fix the Library clean target
- add LAYER parameter to gb_LinkTarget_LinkTarget
- adjust platform link commands
- MSVC link command now uses explicit -manifestfile and -pdb
parameters to keep misc. files out of INSTDIR
- remove gb_Helper_OUTDIR_FOR_BUILDLIBDIR
- adjust Extension, CppunitTest, JunitTest, PythonTest, Gallery,
various CustomTargets to search INSTDIR
- remove SDK library symlinks and import libs from odk/Package_lib
- on Mac OS X, put .dylib symlinks into sdk/lib even though those
are not packaged and would be created by the SDK configury;
we need these to be somewhere for linking anyway
- add a (unfortunately cyclic) dependency on Package ure_install to sal
Change-Id: I70d88742f8c8232ad7b9521416275c67b64fe6cf
|
|
Change-Id: I625291ea86c1c3caf7fa5400e380defa6d0d0bc8
|
|
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
|
|
... instead of the import lib. If the DLL is an auxtarget, it cannot
be deleted without annoying errors, and we want to be able to rm -r
$(INSTIDR) and build incrementally from there.
- replace DLLTARGET -> ILIBTARGET
- replace gb_Library_DLLFILENAMES -> gb_Library_FILENAMES
- replace gb_Library_FILENAMES -> gb_Library_ILIBFILENAMES
- replace gb_Library_get_dllname -> gb_Library_get_filename
- replace gb_Library_get_filename -> gb_Library_get_ilibfilename
- replace gb_CppunitTest_get_libfilename -> gb_CppunitTest_get_ilibfilename
- replace gb_LinkTarget_set_dlltarget -> gb_LinkTarget_set_ilibtarget
Change-Id: I92a2f061a653b9b5941f3232d729987b1317b6f8
|
|
If the link targets are not in workdir then 2 different aspects are
needed: the previously used location relative to workdir's LinkTarget
dir (for all the misc. related targets), and the full target file.
Adding an additional parameter to all LinkTarget functions would be
quite annoying, especially since it would need passing through all the
gb_LinkTarget__use functions in RepositoryExternal.mk; instead encode
both into the linktarget itself, and modify the functions
gb_LinkTarget_get_target to return the target and all others to return
the workdir linktargetname.
- replace gb_Library_get_linktargetname with either:
* gb_Library__get_workdir_linktargetname
* gb_Library__get_linktarget_target
* gb_Library_get_linktarget
- similar for gb_Executable_get_linktargetname
- similar for gb_StaticLibrary_get_linktargetname
- similar for gb_CppunitTest__get_linktargetname
- add calls to gb_LinkTarget__get_workdir_linktargetname where needed
Change-Id: I917ad7957fee50ec2517a9f9cc9ff452c8d97d1b
|
|
Change-Id: Ic0a2fd3c1adeb55ec27f6a2eb4709be598120fba
|
|
Change-Id: Idce74274169970bdd35869578cc0046fe502e614
|
|
Change-Id: I7f8e12530344e23e9bc68510795e90640ea8fd43
|
|
The directory name is "ure-link" in a traditional OS X LibreOffice app
bundle.
Change-Id: I8e1380522a3c05e9018909fec8d46ba1f7be7858
|
|
Introduced gb_INSTROOT, which is the same as $(INSTDIR) except for Mac OS X,
where it is $(INSTDIR)/LibreOffice.app/Contents. Most stuff ends up there (so
most occurrences of $(INSTDIR) have been replaced with $(gb_INSTROOT)), but SDK-
related stuff goes to $(INSTDIR)/$(gb_Package_SDKDIRNAME). (And
GeneratedPackage needed to be made more flexible, to allow for packages that go
into either of those two places.)
For Android and iOS, gb_INSTROOT probably still needs to be set.
The most obvious missing thing yet to make instdir work for Mac OS X is the
instdir/*/LibreOffice.app/Contents/ure/ vs.
instdir/*/LibreOffice.app/Contents/ure-link/ split.
Change-Id: I4478edd27b14c92c96d92d5169bdca3ec50d78f5
|
|
Change-Id: Iea2a3d5d73ae6decb12082d850afd72514ef21a0
|
|
This commit breaks linkoo.
make dev-install continues to work as before but it's not necessary to
use it anymore.
make check now uses files copied into instdir by gbuild.
TODO: fix remaining issues so that instdir is the same as install/.
Change-Id: I66836170f0922ee9ba204a61ffacc30d9e9a5d98
|
|
There should be only two ways how to add file into instdir:
- gb_Helper_install used in gbuild
- gb_Package_set_outdir used also elsewhere,
preferably with scp2 containing its .filelist.
Change-Id: I75ec0ba63f32acf4b56b17dc972f4488edf6a777
|
|
...instead of reusing LO_LIB_DIR.
Change-Id: Ifb1ea672e35d4bb93a27b64445ecadf4cbe8f647
|
|
this introduces a "prestage dir" -- if a file can be found in that
directory, it will be copied over instead of build. Usecases for this
include:
- split builds:
e.g. a part of the LibreOffice gets build by a core package and
"writer" or "calc" package then only builds the additional missing
pieces (while copying existing files from the earlier package build)
please not this does not intend to produce separately installable
instances, only to generate the build in multiple steps, to:
- reduce filesystem usage of one build
- paralellisation: e.g. "writer" and "calc" could build at the same
time on two builders
- restart capability: e.g. if a build breaks in "writer", no need to
rebuild everything (relevant for slow and somewhat more flaky
platforms like arm)
- staged single build:
on a filesystem restrained builder, keeping all the objects around for
the build can be a burden. With this, such builders can do a partial
build (lets say: "make svx"), put the instdir aside, make clean and
continue -- but without needing to keep space for the object files of
the build up to svx.
It need gb_RUNNABLE_INSTDIR -- we are going there anyway, no need to
support other scenarios.
This needs more dependency breaking for most scenarios but a:
export gb_RUNNABLE_INSTDIR=T
make
cp -a instdir instdir_prestage
make clean
make sw.all
make sw.clean
export gb_Package_PRESTAGEDIR=`readlink -f instdir_prestage/unxlngx6.pro`
cd sw && make build # this does no compiles, it just copies
Change-Id: I22d4208b2fad0d8fc59426ba4c8c52122876f646
Reviewed-on: https://gerrit.libreoffice.org/5591
Reviewed-by: Björn Michaelsen <bjoern.michaelsen@canonical.com>
Tested-by: Björn Michaelsen <bjoern.michaelsen@canonical.com>
|