diff options
author | Alexander Kanavin <alex.kanavin@gmail.com> | 2018-01-03 17:02:01 +0200 |
---|---|---|
committer | Alexander Kanavin <alex.kanavin@gmail.com> | 2019-12-13 17:07:51 +0100 |
commit | 48f41930a773bdd48b9664b2fc5b1e45d6bc5688 (patch) | |
tree | a4e625bba2dcd95dfb61c760ac14106941fc3add /giscanner | |
parent | 3d4ed1dbccd3b7cf379fdff263be2af58fd35807 (diff) | |
download | gobject-introspection-48f41930a773bdd48b9664b2fc5b1e45d6bc5688.tar.gz |
giscanner: add a --lib-dirs-envvar option
By default LD_LIBRARY_PATH is set to the list of target library paths;
this breaks down in cross-compilation environment, as we need to run a
native emulation wrapper rather than the target binary itself. This patch
allows exporting those paths to a different environment variable
which can be picked up and used by the wrapper.
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Diffstat (limited to 'giscanner')
-rw-r--r-- | giscanner/ccompiler.py | 4 | ||||
-rw-r--r-- | giscanner/dumper.py | 3 | ||||
-rw-r--r-- | giscanner/scannermain.py | 3 |
3 files changed, 7 insertions, 3 deletions
diff --git a/giscanner/ccompiler.py b/giscanner/ccompiler.py index 4ad572c3..a81d4b86 100644 --- a/giscanner/ccompiler.py +++ b/giscanner/ccompiler.py @@ -174,7 +174,7 @@ class CCompiler(object): self._cflags_no_deprecation_warnings = "-Wno-deprecated-declarations" - def get_internal_link_flags(self, args, libtool, libraries, extra_libraries, libpaths): + def get_internal_link_flags(self, args, libtool, libraries, extra_libraries, libpaths, lib_dirs_envvar): # An "internal" link is where the library to be introspected # is being built in the current directory. @@ -184,7 +184,7 @@ class CCompiler(object): if os.name == 'nt': runtime_path_envvar = ['LIB', 'PATH'] else: - runtime_path_envvar = ['LD_LIBRARY_PATH', 'DYLD_FALLBACK_LIBRARY_PATH'] + runtime_path_envvar = ['LD_LIBRARY_PATH', 'DYLD_FALLBACK_LIBRARY_PATH'] if not lib_dirs_envvar else [lib_dirs_envvar] # Search the current directory first # (This flag is not supported nor needed for Visual C++) args.append('-L.') diff --git a/giscanner/dumper.py b/giscanner/dumper.py index efa18782..61942faf 100644 --- a/giscanner/dumper.py +++ b/giscanner/dumper.py @@ -240,7 +240,8 @@ class DumpCompiler(object): libtool, self._options.libraries, self._options.extra_libraries, - self._options.library_paths) + self._options.library_paths, + self._options.lib_dirs_envvar) args.extend(pkg_config_libs) else: diff --git a/giscanner/scannermain.py b/giscanner/scannermain.py index 4aeb4172..ca9065b2 100644 --- a/giscanner/scannermain.py +++ b/giscanner/scannermain.py @@ -126,6 +126,9 @@ def _get_option_parser(): parser.add_option("", "--use-ldd-wrapper", action="store", dest="ldd_wrapper", default=None, help="wrapper to use instead of ldd (useful when cross-compiling)") + parser.add_option("", "--lib-dirs-envvar", + action="store", dest="lib_dirs_envvar", default=None, + help="environment variable to write a list of library directories to (for running the transient binary), instead of standard LD_LIBRARY_PATH") parser.add_option("", "--program-arg", action="append", dest="program_args", default=[], help="extra arguments to program") |