summaryrefslogtreecommitdiff
path: root/solenv/gbuild/StaticLibrary.mk
AgeCommit message (Collapse)Author
2017-10-06gbuild: more verbose forwarding of LinkTarget functionsMichael Stahl
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>
2017-06-07Remove gb_LinkTarget_add_generated_cxxobjectsStephan Bergmann
...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
2017-02-21When building with clang-cl on Windows, build CLR code with MSVCStephan Bergmann
...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>
2014-12-21Remove unused gb_*_disable_compiler_pluginsStephan Bergmann
Change-Id: Ia6395282916011d75a4fa01aa12e96d866621411
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-11-17add a script to generate a dummy library to "build" all headersMichael Stahl
... to be used together --with-iwyu to track down bloat in headers, which are not always named in the convention that include-what-you-use expects for reporting issues. Change-Id: Idffda7d49cca43170717004d52779b4663de19ae
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
2013-11-04gbuild: remove error stubs for renamed/removed functionsMichael Stahl
Change-Id: If1d0d5294af87f2b780deadb21d12a6ee90dead6
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: remove static libraries from OUTDIRMichael Stahl
Refactor to find and link static libraries directly in WORKDIR. - gb_StaticLibrary_get_target is now same as the gb_LinkTarget_get_target - fix the StaticLibrary clean target Change-Id: Icf29d32d6487747a2e39d4599ceebccfead04667
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: 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-07-17remove gb_LinkTarget_add_noexception_objectBjoern Michaelsen
Change-Id: I44f7df6e5f816cfcf7a44c6c4c76e80924237d45 Reviewed-on: https://gerrit.libreoffice.org/4955 Reviewed-by: Björn Michaelsen <bjoern.michaelsen@canonical.com> Tested-by: Björn Michaelsen <bjoern.michaelsen@canonical.com>
2013-06-07gbuild: do not register static librariesMatúš Kukan
It does not make sense, there was only one group anyway. Change-Id: I606138ceed0bfc628b8a23abb864280d9626ed60
2013-06-03re-base on ALv2 code. Includes:Michael Meeks
Patches contributed by Mathias Bauer gnumake4 work variously http://svn.apache.org/viewvc?view=revision&revision=1394707 http://svn.apache.org/viewvc?view=revision&revision=1394326 http://svn.apache.org/viewvc?view=revision&revision=1397337 http://svn.apache.org/viewvc?view=revision&revision=1397315 http://svn.apache.org/viewvc?view=revision&revision=1396797 Patches contributed by Andre Fischer Fixed getcsym.awk to handle #-comments that contain special regexp chars. http://svn.apache.org/viewvc?view=revision&revision=1230971 118778: Added ADDITIONAL_REPOSITORIES environment variable and its automatic setup in configure. http://svn.apache.org/viewvc?view=revision&revision=1232004 118160: Added external CoinMP library. http://svn.apache.org/viewvc?view=revision&revision=1233909 Patches contributed by Herbert Duerr #i119168# use generic LICENSE file for langpacks and sdks http://svn.apache.org/viewvc?view=revision&revision=1310178 macosxotoolhelper: need to quote perl regexp if it may contain regexp metachars http://svn.apache.org/viewvc?view=revision&revision=1183367 allow gbuild with empty sysroot on linux http://svn.apache.org/viewvc?view=revision&revision=1179186 Patches contributed by Ingo Schmidt native373: #164472# improvements for msi database http://svn.apache.org/viewvc?view=revision&revision=1167540 http://svn.apache.org/viewvc?view=revision&revision=1167539 Patches contributed by Jurgen Schmidt adapt setup package scripts to handle special DS_Store file for developer snapshot builds http://svn.apache.org/viewvc?view=revision&revision=1232430 imported patch extensions_i117681.patch http://svn.apache.org/viewvc?view=revision&revision=1172102 Patches contributed by Michael Stahl gbuild: RepositoryFixes.mk should be optional http://svn.apache.org/viewvc?view=revision&revision=1166123 xslt filter: remove the FLA horror wordml import filter: replace FLA usage with plain XSLT http://svn.apache.org/viewvc?view=revision&revision=1363727 Patch contributed by Oliver-Rainer Wittmann i#88652: applied patch, remove unicows deps http://svn.apache.org/viewvc?view=revision&revision=1177585 Remove lots of OS2 conditionals, re-extract Rhino Java, unwind cppunit pieces, cleanup Mac image bits, remove coin-mp and re-package lpsolve, Oxygen & Crystal, fixup qstart bits, expand MPLv2 subset checking. Change-Id: Iad5c8a76399620b892671633c0d8c29996db3564
2013-02-25Last use of obsolete gb_*_add_api is long goneStephan Bergmann
Change-Id: Ia6c938ef0e45ec86c0c202e95ef28d49fccd3497
2012-12-10userfriendly make targets for build and cleanLuboš Luňák
So that now it's possible to do just 'make CppunitTest_sw_macros_test' instead of 'make /home/llunak/build/src/l2/workdir/unxlngx6/CppunitTest/sw_macros_test.test' Change-Id: Ibd1e9ef4fc825043a71bd669b2f5c37ffec68e33 Reviewed-on: https://gerrit.libreoffice.org/1253 Reviewed-by: Peter Foley <jpfoley2@gmail.com> Reviewed-by: David Ostrovsky <David.Ostrovsky@gmx.de> Reviewed-by: Luboš Luňák <l.lunak@suse.cz> Tested-by: Luboš Luňák <l.lunak@suse.cz>
2012-12-10rename to gb_Library_set_precompiled_headerLuboš Luňák
There can be only one precompiled header with some compilers anyway. Change-Id: I59e84bee2f57f36753b59b7518d701573affac12
2012-12-10bring back precompiled headers supportLuboš Luňák
This is mostly a revert of 992757cc5ebfb1df42636b8d3269cdbc10fc4148 and bc78ac68c2492e63a680f68b524c4a51179ea83e, with tweaks to apply. Also only MSVC support for now. Change-Id: Ia926b3c28125b52012156ccfd47932837b09d20a
2012-10-25gbuildification of expatDavid Ostrovsky
Two different xmlparse libraries are created: ascii_expat_xmlparse and expat_xmlparse. One without -DXML_UNICODE and one with. Source file are duplicated and renamed with gb_UnpackedTarball_set_post_action function to be able to add artifacts twice to gbuild machinery. On windows 64 bit additional two librares are created: expat_xmlparse_x64 and expat_xmltok_x64. That is due the problem with shell/shlxthandler (comment): ------------------------------------------------------ use UNICODE only because shell/shlxthandler doesn't link against ascii_expat_xmlparse ------------------------------------------------------ Include files are delivered to $(OUTDIR)/inc/external/expat now and not to $(OUTDIR)/inc/external any more. set_include call is added in RepositoryExternal.mk. To define dependency between StaticLibrary and ExternalProject new function was introduced: gb_StaticLibrary_use_external_project. Change-Id: I3b3aa40f39ef82c70f6f28790b582c83e48bdf76
2012-10-23gbuild: fix AUXTARGETS:Michael Stahl
This finally blew up spectacularly on Windows because we now have packages delivering external libraries to the solver, where the libraries are not defined by Library class, which leads to accidental inheritance of AUXTARGETS variable and failure to deliver nonexistent UnpackedTarball/.../libpq/postgresql-sdbc-impl.uno.dll Remove the custom deliver rule that uses AUXTARGETS, and instead let those files be handled individually by default Package.mk rules. This requires a dummy touch rule for each file, and unfortunately a pattern rule cannot be used here because of silly naming differences between implibs and dlls on Windows... AUXTARGETS do not cause problems for clean targets because there is no interdependency there, so keep them there. Change-Id: I2138f635334ff4517a2d31ef91cfd03a46745fd6
2012-10-22allow LDFLAGS from gbuild to be selective tooLubos Lunak
Just like CXXFLAGS can be controlled using --enable-selective-debuginfo. Non-debug libraries can be debug-stripped this way, which can save quite some disk space with those cppunittests which just include all .o's from sw/sc. Change-Id: Ib947f76f535161e4eef1421a5539df5e25fa4042
2012-09-29gbuild: gb_Library_TARGETS should really not be needed nowMatúš Kukan
Change-Id: I1a5f2fda44da782b43076eee67e292affe1bad1a
2012-09-26Revert "gbuild: remove gb_Library_TARGETS and ..."Michael Stahl
This reverts commit 599a94827e2b3957db3abf758d48ff7b3977e2f2. The special handling of PLAINLIBS_NONE breaks the build on MacOSX. Needs further cleanup of PLAINLIBS_NONE abuse first. Conflicts: solenv/gbuild/gbuild.mk Change-Id: I834b623405e7745568ee2422647746631167524b
2012-09-26gbuild: remove gb_Library_TARGETS and replace gb_Library_get_implibnameMatúš Kukan
Also makes more visible that gb_Library_PLAINLIBS_NONE are special. Change-Id: I58a667d75a0d964c8f02e36a4645402417a1a621
2012-09-26gbuild: remove empty gb_StaticLibrary_JPEGLIBS and gb_StaticLibrary_DEFSMatúš Kukan
Change-Id: I364ba0155e30909fd77c0c73e27e5c9ee0a59168
2012-09-24add gb_StaticLibrary_use_static_librariesMichael Stahl
... which is probably not needed for LO internal code, but very useful for RepositoryExternals. Change-Id: I5bd8edb97454f89ed33b041460019738e9552f18 Reviewed-on: https://gerrit.libreoffice.org/692 Reviewed-by: Fridrich Strba <fridrich@documentfoundation.org> Tested-by: Fridrich Strba <fridrich@documentfoundation.org>
2012-09-08rename: set_cxx_suffix -> set_generated_cxx_suffix; used for external libsMatúš Kukan
Change-Id: I023c6b35c2a65da566ff5bb3aea772c99c90dda3
2012-08-31gbuild: UnpackedTarball: do not rename files; set cxx suffix for libraryMatúš Kukan
Change-Id: I8bf119a4ab3fc7c2febfa80176358f668003b7d1
2012-08-24add support for external tarballs to gbuildDavid Tardon
Change-Id: Ic6645e9943b2445ebb37bb99114f777527c69af9
2012-08-23No reason to leave out use_sdk_api and use_udk_api, I thinkTor Lillqvist
Change-Id: I5bf5dd2708de103a1f4eb48ef2cb1a28b5e4cd29
2012-08-01Revert "StaticLibrary too"Michael Stahl
This reverts commit 23e5bb66436991d809d8d807f27d25f922fb062f. Does not work, see previous commit
2012-08-01StaticLibrary tooBjoern Michaelsen
Change-Id: I2bda0e3117fb70353c52d5998e7784b6123ab38e
2012-05-30remove already added set_x64Andras Timar
Change-Id: I62c72e499119eb43ed0c75fe1f5cb1c9fc06c113
2012-05-30use 64-bit compiler and linker for 64-bit Windows shell extensionsAndras Timar
Change-Id: I4ad94eca4ebbf7d8e989dba5a19296d727111850
2012-05-29add gb_StaticLibrary_set_x64David Tardon
Change-Id: Id54050f483aabf3514e4dd122ef295c6f1135fe4
2012-05-29make sure that $(OUTDIR)/lib exists before delivering libsDavid Tardon
Change-Id: I8a4b11c14c615ba47c8e58b5f30145f5e8d77f0d
2012-05-08gbuild: replace gb_LinkTarget_set_objcflags with add_objcflagsMichael Stahl
2012-05-08gbuild: refactor selective symbols again:Michael Stahl
The previous commit works but results in a ~0.4 second slowdown on tail_build, which is completely unacceptable; seems that at the cost of another ugly global variable in Module.mk we can get the performance back and then some, so refactor this again...
2012-05-08gbuild: refactor the selective symbols supportMichael Stahl
so it doesn't use wildcard but instead the actually registered LinkTargets.
2012-04-23more flexible --enable-symbols=<for>Luboš Luňák
the argument given now can - be 'all', meaning everything - start with -, meaning not to enable symbols for that item - end with /, meaning everything in that toplevel directory - be a target of the form targettype_name, e.g. Library_swui Note that there is no ordering and removal takes precedence.
2012-04-11add use_internal_*api for StaticLibrary tooDavid Tardon
2012-04-08LinkTarget.mk: remove gb_LinkTarget_add_package_headersMichael Stahl
2012-04-08StaticLibrary.mk: linking against dynamic libs considered sillyMichael Stahl
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-31gbuild: add gb_LinkTarget_add_custom_headersMatúš Kukan
to be used for generated headers which are not delivered to solver.
2012-02-17allow to suppress -Werror per link targetDavid Tardon
It is implemented for Executable, Library and StaticLibrary and works for C, C++, Objective C and Objective C++ sources. Please, do not misuse! Better fix your code!
2011-11-27remove pre-compiled header support in gbuild and gbuildified moduleNorbert Thiebaud
2011-08-11add support for generated plain c source filesMatúš Kukan
2011-08-11Implement AsmObject in gbuild (Windows only for now, stub for unxgcc).Jan Holesovsky
This fixes the build of 'basic' on Windows.