diff options
Diffstat (limited to 'patches/chromium/tools/gyp/0003-Allow-letting-qmake-do-the-link-step.patch')
-rw-r--r-- | patches/chromium/tools/gyp/0003-Allow-letting-qmake-do-the-link-step.patch | 70 |
1 files changed, 0 insertions, 70 deletions
diff --git a/patches/chromium/tools/gyp/0003-Allow-letting-qmake-do-the-link-step.patch b/patches/chromium/tools/gyp/0003-Allow-letting-qmake-do-the-link-step.patch deleted file mode 100644 index 88d1a83c8..000000000 --- a/patches/chromium/tools/gyp/0003-Allow-letting-qmake-do-the-link-step.patch +++ /dev/null @@ -1,70 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Jocelyn Turcotte <jocelyn.turcotte@digia.com> -Date: Thu, 27 Feb 2014 17:42:48 +0100 -Subject: Allow letting qmake do the link step - -This adds a let_qmake_do_the_linking target variable to tell ninja -not to link but rather dump the linking information from gyp in a -file that we'll parse with qmake. - -Change-Id: Icfaadae7ce4e9895f76b5fe06e05124e9b980e8b -Reviewed-by: Zoltan Arvai <zarvai@inf.u-szeged.hu> -Reviewed-by: Andras Becsi <andras.becsi@digia.com> ---- - pylib/gyp/generator/ninja.py | 43 +++++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 43 insertions(+) - -diff --git a/pylib/gyp/generator/ninja.py b/pylib/gyp/generator/ninja.py -index a169234..909c8d8 100644 ---- a/pylib/gyp/generator/ninja.py -+++ b/pylib/gyp/generator/ninja.py -@@ -1101,6 +1101,49 @@ class NinjaWriter: - else: - command = command + '_notoc' - -+ if config.get('let_qmake_do_the_linking', 0): -+ def toAbsPaths(paths): -+ return [os.path.relpath(path, self.toplevel_build) if os.path.isabs(path) else path -+ for path in paths] -+ def qmakeLiteral(s): -+ return s.replace('"', '\\"') -+ -+ # Generate this file for all solink targets, this assumes that -+ # a .pro file will pick up this pri file and do the rest of the work. -+ pri_file = open(os.path.join(self.toplevel_build, self.name + "_linking.pri"), 'w') -+ -+ if self.flavor == 'win': -+ # qmake will take care of the manifest -+ ldflags = filter(lambda x: not x.lower().startswith('/manifest'), ldflags) -+ -+ # Replace "$!PRODUCT_DIR" with "$$PWD" in link flags (which might contain some -L directives). -+ prefixed_lflags = [self.ExpandSpecial(f, '$$PWD') for f in ldflags] -+ prefixed_library_dirs = ['-L' + self.ExpandSpecial(f, '$$PWD') for f in config.get('library_dirs', [])] -+ prefixed_libraries = gyp.common.uniquer([self.ExpandSpecial(f, '$$PWD') for f in spec.get('libraries', [])]) -+ if self.flavor == 'mac': -+ prefixed_libraries = self.xcode_settings.AdjustLibraries(prefixed_libraries) -+ elif self.flavor == 'win': -+ prefixed_libraries = self.msvs_settings.AdjustLibraries(prefixed_libraries) -+ -+ # Make sure that we have relative paths to our out/(Release|Debug), where we generate our .pri file, and then prepend $$PWD to them. -+ prefixed_object_and_archives = ['$$PWD/' + o for o in toAbsPaths(link_deps)] -+ -+ pri_file.write("QMAKE_LFLAGS += %s\n" % qmakeLiteral(' '.join(prefixed_lflags))) -+ # Follow the logic of the solink rule. -+ if self.flavor != 'mac' and self.flavor != 'win': -+ pri_file.write("LIBS_PRIVATE += -Wl,--whole-archive %s -Wl,--no-whole-archive\n" % qmakeLiteral(' '.join(prefixed_object_and_archives))) -+ else: -+ pri_file.write("LIBS_PRIVATE += %s\n" % qmakeLiteral(' '.join(prefixed_object_and_archives))) -+ # External libs have to come after objects/archives, the linker resolve them in order. -+ pri_file.write("LIBS_PRIVATE += %s\n" % qmakeLiteral(' '.join(prefixed_library_dirs + prefixed_libraries))) -+ # Make sure that if ninja modifies one of the inputs, qmake/make will link again. -+ pri_file.write("POST_TARGETDEPS += %s\n" % qmakeLiteral(' '.join(prefixed_object_and_archives))) -+ pri_file.close() -+ -+ # In this mode we prevent letting ninja link at all. -+ command = 'phony' -+ command_suffix = '' -+ - if len(solibs): - extra_bindings.append(('solibs', gyp.common.EncodePOSIXShellList(solibs))) - |