summaryrefslogtreecommitdiff
path: root/solenv/gbuild/LinkTarget.mk
AgeCommit message (Collapse)Author
2016-04-26Enable Clang plugin warnings in Bison source codeStephan Bergmann
-Werror is generally suppressed in Bison-generated C/C++ code (as in all other generated code) to silence warnings from the Bison skeleton code. And the Clang plugins suppress warnings in generated WORKDIR code based on the presumed source location (i.e., taking #line directives into account). So introduce a new PLUGIN_WARNINGS_AS_ERRORS mode where warnings from Clang plugins are reported as errors even if -Werror is suppressed. That way, any warnings in the Bison skeleton code still do not lead to compilation errors, while (at least plugin- emitted) warnings in the genuine source code do. Unfortunately this cannot also be enabled for Flex source code, as at least Flex 2.5.39 generates poor code that does not properly prefix all skeleton code with appropriate #line directives, so that some skeleton code would be mistaken for genunie source code, and compilation would fail due to errors. Also, %glr-parser Bison input appears to generate no #line directives at all (at least with Bison 3.0.4), so all of connectivity/source/parse/sqlbison.y is considered generated code and plugin warnings are still suppressed throughout. Change-Id: Id746e81cbfa5f77628b0a34c7b82780948e7db08
2015-11-28Add i18nlangtag and ucbhelper to libmergedMatúš Kukan
Change-Id: I717d3289d63787cd8148d480783092868a60873b
2015-11-28Add comphelper to libmergedMatúš Kukan
Change-Id: I59af9f5a9d0d3e189280f98bb18e522dc9ebf2fb
2015-10-07relax deps of link target on external projectsDavid Tardon
Compilation of the link target's source files does not require the external project to be built, just unpacked, unless the project generates some needed headers during configure/build. Change-Id: I2c9947cf13ce86878d2649829052551fc54f3883
2015-10-01loplugin:unusedmethodsNoel Grandin
- improvements to the plugin to find more method calls - improvements to python script to remove more false+ - fix the FORCE_COMPILE_ALL build flag to include code in the $WORKDIR Change-Id: I4d6015dcb9b9d60c26f0bcee8abad807177a7836 Reviewed-on: https://gerrit.libreoffice.org/19064 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2015-07-29RepositoryExternal.mk: for some reason Mac wants a GeneratedPackageMichael Stahl
Change-Id: I5d983fee8d5cd313fbd0d6ece800fa8b80d81b35
2015-04-29solenv: add COMPILER_EXTERNAL_TOOLMiklos Vajna
COMPILER_PLUGIN_TOOL has two effects: 1) It makes LinkTarget aware that no object code will be generated by the compiler (as the compiler is just a tool, not a real compiler), so e.g. it's expected that no dependency output will be generated. 2) It puts some of the clang plugins into rewriter mode. When using some external compiler tool (like a wrapper around clang-rename), then 1) is wanted, but not 2), i.e. getting rid of the dependency generation part is wanted, but none of the rewriter plugins should be activated. So add COMPILER_EXTERNAL_TOOL that does 1) without 2). Change-Id: I83c21da5763a62d654f93c574d89573cdc7c2138
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-04-20don't try to sign merged libs on windowsChristian Lohmaier
as those are fake, just textfiles with dll extension that signtool doesn't like. Also made the text more descriptive "invalid" is ambiguous, "invalid - merged lib" states the reason why the file is a dummy. Change-Id: I31801fd0c3aa593549fac5e6275189e18bbc0010 Reviewed-on: https://gerrit.libreoffice.org/15444 Reviewed-by: Michael Stahl <mstahl@redhat.com> Tested-by: Jenkins <ci@libreoffice.org>
2015-03-20Remove library urelibs. It was more just a temporary hack and is not used.Matúš Kukan
Change-Id: I7566dcf21aae6b800adb58d8c94e350bb0da720c
2014-12-21Remove unused gb_*_disable_compiler_pluginsStephan Bergmann
Change-Id: Ia6395282916011d75a4fa01aa12e96d866621411
2014-12-19No need for RTL_USING in addition to LIBO_INTERNAL_ONLYStephan Bergmann
Change-Id: Iaa65658aed6bb4abb20a4d95dc9c6caf7c1c764b
2014-12-18Introduce gb_*_set_external_codeStephan Bergmann
...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
2014-12-15gbuild: More automagic for libmergedMatúš Kukan
Only gb_Library_use_libraries stays because I think it's a good idea to see dependent libraries (potential candidates for merging) and hopefully the list does not change often anyway. This commit extends b6be3d3db3ffbc4c1a4528a8dc17aa95084e12ca Change-Id: I2682456f53cb2e8d7ea63eae15f8979a3c828401
2014-12-15gbuild: Do not require gb_Library_use_externals for libmergedMatúš Kukan
Instead, automatically get the externals when parsing other makefiles. This commit fixes the build and hopefully avoids problems in future because people didn't know they had to add externals for libmerged too. Similar should be done for other functions like add_libs... Change-Id: I5aea4c43f4b6838092ada81c310ef1100f241108
2014-11-20Fix build of ObjC(xx)Objects under COMPILER_PLUGIN_TOOLStephan Bergmann
Change-Id: I7974ee3119e0959cec09eefd5d5e6dcf87e9bd51
2014-11-17gbuild: print better file name for generated C++ sourceMichael Stahl
Change-Id: I7b028ff3af6c5cd6c48b4cf6095a16b57745db8c
2014-11-12Fix common typos. No automatic tools. Handmade…Andrea Gelmini
Change-Id: I1ab4e23b0539f8d39974787f226e57a21f96e959 Reviewed-on: https://gerrit.libreoffice.org/12164 Reviewed-by: Noel Grandin <noelgrandin@gmail.com> Tested-by: Noel Grandin <noelgrandin@gmail.com>
2014-09-15gbuild command for disabling usage of compiler plugins for a targetLuboš Luňák
to be used by odk/ checkapi test Change-Id: I6bbb508cc6950a63218e8e4f3364306c7c79b087
2014-07-24allow to continue build after removing workdir/DepDavid Tardon
Change-Id: Ia5ccf924979fc3c72ce585af46a7443733be2ad3
2014-06-09gbuild: avoid leaving invalid .d files behind if build interruptedMichael Stahl
The LinkTarget command builds the LinkTarget's dep-file as well as an optimization so the next make does not restart; in this case the dep-file is not the target so it will not be deleted by make in case the build is interrupted, and the next make can choke on the partially written .d file. Change-Id: I13b1884f1a974b7ce10b00e1df1d0f30222f4790
2014-02-25gbuild: one command for C/C++ objectsMatúš Kukan
Change-Id: I835bd56123acfbfb53e0d3d86e5d66b929b3181f
2014-02-18experimentally enable using depcache for full build speedupBjoern Michaelsen
Change-Id: I6c186ba7ca27166a272327bcfe6a94c391c3514f
2014-02-13gbuild: improve error messages about missing registrationsMichael Stahl
Change-Id: Ib3c5d8f3921801f143447d8e01463905d80ac319
2014-01-15LinkTarget: Avoid unnecessary library re-building in DISABLE_DYNLOADING case.Matúš Kukan
Change-Id: If469348f2385ef8009cf5a33f66f22d4a0e65070
2013-12-12Break circular dependencies with libmerged.Matúš Kukan
There is still libsvxlo.so <- libmergedlo.so dependency dropped, but that does not break the build and I can't find the source. Change-Id: I151375cad5d7365c309d9403810750b6cd2c5efb
2013-11-20gbuild: TARGETGUI variable must be set on all LinkTargetsMichael Stahl
... otherwise it will get inherited from Executables to StaticLibraries and then mt.exe will be unhappy and complain. Change-Id: Ic9cc32ea3d0fb5d1fe91c1e9efa354fdf30c8264
2013-11-04gbuild: remove error stubs for renamed/removed functionsMichael Stahl
Change-Id: If1d0d5294af87f2b780deadb21d12a6ee90dead6
2013-11-02gbuild: LinkTarget: improve gb_LinkTarget__get_headers_checkMichael Stahl
Can actually error out early in some cases of partial build with missing deps from other modules; probably better than trying to build (Static)Library with bogus vars. Change-Id: I4e2cbd42d3c84b9bc87607d263f3d80ba7914302
2013-11-02gbuild: LinkTarget: remove unnecessary variables on dep_targetMichael Stahl
Since commit 8b5a984d45005d3df1c89eae897d6e04612625d8 it is no longer the case that objects get build only via a dependency from Linktarget's dep_target, relying on the variables set on dep_target; now objects only get built via dependency from LinkTarget itself. So there is no need to set these variables on dep_target any more. Change-Id: Id0a831342ae6cfcff3bebe7010ece923f0262703
2013-11-02gbuild: LinkTarget: why are loads of variables set on headers_targetMichael Stahl
It is not obvious to me why that was ever needed. Change-Id: I3df679b41f0685ab288294fa3fadfede093f6f69
2013-11-02gbuild: gb_LinkTarget__get_headers_check can signal error nowMichael Stahl
... since no external link targets not with gbuild should be used via gb_LinkTarget_use_library/static_library. Change-Id: I1c3188dbbe2eaa2f5acfb8944a79ad3b67a95998
2013-11-02gbuild: LinkTarget: setting FLAGS on clean target not necessaryMichael Stahl
Change-Id: Icc07e06e0ea7a7e5094d758a9aba0415449f706f
2013-10-31solver doesn't solve anything...Michael Stahl
... 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>
2013-09-24fix --enable-mergelibs dependenciesMatúš Kukan
..and create gb_BUILD_HELPER_LIBS in instdir, so that they are found when gb_BUILD_HELPER_TOOLS link against them. Altough it's ugly - we don't want them in instdir otherwise. Change-Id: Ia946eceeaf7eada0c3b42379e95af9bdbf52957f
2013-09-22gbuild: fix gb_LinkTarget_set_precompiled_headerMichael Stahl
... for --enable-selective-debuginfo, use the right argument for that. Change-Id: I34bc1f473e02d8f7038478afadc8de24780ae88a
2013-09-22gbuild: add consistent directory dependencies for LinkTargetsMichael Stahl
- 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
2013-09-22gbuild: rename LinkTarget variable LIBSMichael Stahl
LIBS is apparently used by autotools build system and passed to configure at least in mythes and hunspell, where the LinkTarget variable could cause problems by inheritance. Change-Id: Ia267dd0a24c96914208869d7b47552b44a701735
2013-09-22gbuild: add a SHLXTHDL layer for librariesMichael Stahl
... 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
2013-09-22gbuild: remove libraries from OUTDIR and WORKDIRMichael Stahl
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
2013-09-22gbuild: remove SOVERSION variable since it is hardcoded anywayMichael Stahl
Change-Id: I625291ea86c1c3caf7fa5400e380defa6d0d0bc8
2013-09-22gbuild: make the versioned library the linktarget on UnixesMichael Stahl
If there is a SOVERSION then the versioned library is a real file and the unversioned one just a symlink; better to have the real file be the target. - add gb_Library_UDK_MAJORVER variable for SOVERSION - remove version parameter of gb_Library_set_soversion_script; instead hardcode the SOVERSION since it must be included in the file name in gb_Library_FILENAMES anyway - store the unversioned symlink in the ILIBTARGET variable - via new gb_Library_get_workdir_target_versionlink function - removed gb_Helper_install call that resulted in both versioned and unversioned libs in instdir Change-Id: I2c6f1698f0e39fdb2c07964d43ed9485cbca0b30
2013-09-22gbuild: make the DLL the LinkTarget of Library and CppunitTestMichael Stahl
... 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
2013-09-22gbuild: refactor LinkTarget representationMichael Stahl
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
2013-09-22gbuild: document parameters of LinkTarget methodsMichael Stahl
Change-Id: Ib22df5811ab07e93a9d7e987b66b12506265bf96
2013-09-22gbuild: add gb_Library_use_restargetMichael Stahl
Change-Id: Ic0a2fd3c1adeb55ec27f6a2eb4709be598120fba
2013-09-22gbuild: remove unused gb_LinkTarget_use_headersMichael Stahl
Change-Id: Idce74274169970bdd35869578cc0046fe502e614
2013-09-19Directly build UNOIDL .rdb files from .idl filesStephan Bergmann
...via unoidl-write and the new source-format registry provicers, instead of using idlc to produce .urd files, regmerge to merge them into legacy .rdb files, and unoidl-write to translate those to new UNOIDL .rdb files. gb_UnoApi and gb_InternalUnoApi ctors take an additional argument now that is the path (below $(SRCDIR)) of the source-format registry from which to obtain UNOIDL entity definitions. It can either be an .idl file (in which case no *_add_idlfiles calls should be used and the resulting .rdb will contain all the entities from that one .idl file; used in some tests to conveniently define all test-specific entities in a single file) or a directory denoting the root of an .idl file tree (in which case *_add_idlfiles calls specify the entites to include in the resulting .idl file). (In the first case, the generated .rdb file needs to depend on that single .idl file, so the gb_UnoApiTarget ctor contains a dependency on that additional argument, which happens, as a side effect, to trigger rebuilds in the second, tree-based case when addition/removal of .idl files in the tree causes updates of directory time-stamps.) UnoApiPartTarget and all the dependency-tracking logic based on .urd files in solenv/gbuild/UnoApiTarget.mk is gone. Generation of an .rdb file now depends on its source registry (see previous paragraph) and all the .idl files specified with *_add_idlfiles (in the second, tree-based case above). A consequence of that is that gb_UnoApi_add_idlfile, -_nohdl, and -_noheader all do the same now. I left them in for now anyway, maybe they become relevant again when the use of cppumaker is changed to read directly from a source-format registry instead of going via a .rdb registry. The legacy tools idlc, regcompare, regmerge, and regview are still contained in the URE or SDK for now. cb344cd59e1ddb7c6db66dbd9263b4755969d4ba "Revert 'Looks like idlc resolved typedefs inside sequence<...>'" is re-reverted as now "the current offapi.rdb is generated via unoidl-write instead of idlc." Change-Id: I3d9d92f17326bc9f49dd934c85aab6a17951d06d
2013-09-18New unoidl-check tool to replace regcompareStephan Bergmann
...for checking compatibility with the reference rdbs. unoidl-check is no longer based on the legacy registry format, but can process all the various new UNOIDL registry formats. regcompare is still included in the SDK for now. (gb_UnoApi[Target]_set_reference_rdbfile now takes a non-empty sequence of rdb files, any necessary dependencies of the final rdf file preceding it just like it is required on the unoidl-check command line. Also, executing the unoidl-check now properly depends on those rdb files.) TODO: unoidl-check is too conservative for now and flags some changes as incompatible that are not. Change-Id: I92e4c69403c5e3fcb31707c98c65a2f509592dd4
2013-09-16Replace reg2unoidl with unoidl-writeStephan Bergmann
...that can also generate an .rdb containing a specific set of entities, intended to replace idlc (when reading directly from .idl source registries). Change-Id: I630ce4640828979d7952dc24dbbef80a42a8140a