meson/mesonbuild
Ting-Wei Lan cb36add970 gnome: Distinguish between internal and external linker flags
When an older version of the library being built is installed in the
same prefix as external dependencies, we have to be careful to construct
the linker or compiler command line. If a -L flag from external
dependencoes comes before a -L flag pointing to builddir, it is possible
for the linker to load older libraries from the installation prefix
instead of the newly built ones, which is likely to cause undefined
reference error.

Since the order of dependencies is not significant, we cannot expect
internal dependencies to appear before external dependencies when
recursively iterating the list of dependencies. To make it harder to
make mistakes, linker flags come from internal and external
dependencies are now stored in different order sets. Code using
_get_dependencies_flags are expected to follow the order when
constructing linker command line:

  1. Internal linker flags
  2. LDFLAGS set by users
  3. External linker flags

It is similar to what automake and libtool do for autotools projects.
2018-07-01 21:54:09 +00:00
..
backend ArLinker: Use response files on Windows 2018-06-25 16:12:35 +00:00
compilers fix find_library when cross-compiling 32-bit on 64-bit systems 2018-06-30 11:16:03 +00:00
dependencies Debug-log pkg-config calls 2018-07-01 17:00:33 +00:00
modules gnome: Distinguish between internal and external linker flags 2018-07-01 21:54:09 +00:00
scripts gtkdoc: Use generated types file if there is one 2018-06-26 22:58:45 +03:00
wrap wraptool: Convert to argparse 2018-06-06 20:02:37 +00:00
__init__.py Renamed meson package to mesonbuild so that we can have a script named meson in the same toplevel dir. 2016-01-16 17:35:29 +02:00
astinterpreter.py cleanup: Remove redundant parentheses 2017-01-18 21:22:47 +02:00
build.py Don't let build_always take precedence over build_by_default (#3816) 2018-07-01 16:55:38 +00:00
coredata.py Options: treat array option -Dopt= and -Dopt=[] as equivalent 2018-06-29 10:56:25 +00:00
environment.py Warn if compiler envvars point to cross compilers. Closes #3782. 2018-06-24 21:19:49 +03:00
interpreter.py Proper error message for non-found exe in run_target. Closes #3818 2018-07-01 19:45:03 +03:00
interpreterbase.py Interpreter: Fix subdir_done() to exit from inside if/foreach blocks 2018-06-07 12:56:27 +00:00
linkers.py ArLinker: Use response files on Windows 2018-06-25 16:12:35 +00:00
mconf.py mconf: Take only one optional builddir arg that defaults to '.' 2018-06-06 20:02:37 +00:00
mesonlib.py run_command: Add new kwarg 'capture' 2018-06-18 10:51:46 +00:00
mesonmain.py Fix glib build when using MSI installer. Closes #3762. 2018-06-26 23:01:52 +03:00
minit.py Use visual studio solution directories 2018-04-17 23:41:03 +02:00
minstall.py Make it work with current master. 2018-06-20 20:38:26 +03:00
mintro.py macos: Rewrite install_name for dependent built libraries on install 2018-06-18 06:33:23 +00:00
mlog.py Add VT100 ANSI escape sequences for Windows 10. 2018-05-01 20:17:14 +03:00
mparser.py Add support for octal and binary int literals. 2018-05-23 14:07:38 -07:00
mtest.py Report exit status or signal that killed the test 2018-06-17 21:22:42 +03:00
optinterpreter.py Add UserFeatureOption type 2018-06-18 04:57:32 +00:00
rewriter.py Always build parser objects anew to avoid leaking old data. 2018-03-27 00:39:45 +03:00