Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Side by Side Diff: make_gyp_wrapper.py

Issue 29510583: Issue 5393 - fix libraries order issue when linking of V8 mksnapshot for linux host (Closed) Base URL: https://github.com/adblockplus/libadblockplus.git
Patch Set: fix osx by limiting only for linux Created Aug. 10, 2017, 1:28 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
« no previous file with comments | « Makefile ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # coding: utf-8 2 # coding: utf-8
3 """This script fixes the support of manually compiled static libraries for 3 """This script fixes the support of manually compiled static libraries for
4 android NDK build system. 4 android NDK build system.
5 5
6 Issue: 6 Issue:
7 Let's say there are some manually compiled libraries specified in 7 Let's say there are some manually compiled libraries specified in
8 link_settings.libraries or in ldflags of a gyp file. In this case ndk-build 8 link_settings.libraries or in ldflags of a gyp file. In this case ndk-build
9 passes them to a linker after system libraries, like c++_static, and 9 passes them to a linker after system libraries, like c++_static, and
10 as the result linker cannot find functions from system libraries. 10 as the result linker cannot find functions from system libraries.
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 However merely to reduce any potential influence we override 66 However merely to reduce any potential influence we override
67 MakefileWriter.WriteAndroidNdkModuleRule to define manually compiled libraries 67 MakefileWriter.WriteAndroidNdkModuleRule to define manually compiled libraries
68 and override WriteList only while we are in the WriteAndroidNdkModuleRule method . 68 and override WriteList only while we are in the WriteAndroidNdkModuleRule method .
69 The aim of the latter method is exactly to write Rules for ndk-build and it is 69 The aim of the latter method is exactly to write Rules for ndk-build and it is
70 called at the end of Write. However, since WriteAndroidNdkModuleRule lacks 70 called at the end of Write. However, since WriteAndroidNdkModuleRule lacks
71 required information, we override method Write to store configurations as 71 required information, we override method Write to store configurations as
72 _abp_configs attribute of instance of MakefileWriter. 72 _abp_configs attribute of instance of MakefileWriter.
73 """ 73 """
74 74
75 import os 75 import os
76 import platform
76 import sys 77 import sys
77 import types 78 import types
78 79
79 base_dir = os.path.abspath(os.path.dirname(__file__)) 80 base_dir = os.path.abspath(os.path.dirname(__file__))
80 sys.path.append(os.path.join(base_dir, 'third_party', 'gyp', 'pylib')) 81 sys.path.append(os.path.join(base_dir, 'third_party', 'gyp', 'pylib'))
81 import gyp 82 import gyp
82 from gyp.generator.make import MakefileWriter, QuoteIfNecessary 83 from gyp.generator.make import MakefileWriter, QuoteIfNecessary
83 84
84 85
85 orig_MakefileWriter_Write = MakefileWriter.Write 86 orig_MakefileWriter_Write = MakefileWriter.Write
(...skipping 25 matching lines...) Expand all
111 if variable == "LOCAL_STATIC_LIBRARIES": 112 if variable == "LOCAL_STATIC_LIBRARIES":
112 value_list.append("${ABP_STATIC_LIBRARIES_${BUILDTYPE}}") 113 value_list.append("${ABP_STATIC_LIBRARIES_${BUILDTYPE}}")
113 orig_WriteList(value_list, variable, prefix, quoter) 114 orig_WriteList(value_list, variable, prefix, quoter)
114 self.WriteList = types.MethodType(overridden_WriteList, self) 115 self.WriteList = types.MethodType(overridden_WriteList, self)
115 orig_MakefileWriter_WriteAndroidNdkModuleRule(self, module_name, all_sources , link_deps) 116 orig_MakefileWriter_WriteAndroidNdkModuleRule(self, module_name, all_sources , link_deps)
116 self.WriteList = orig_WriteList 117 self.WriteList = orig_WriteList
117 118
118 MakefileWriter.Write = overridden_Write 119 MakefileWriter.Write = overridden_Write
119 MakefileWriter.WriteAndroidNdkModuleRule = overridden_WriteAndroidNdkModuleRule 120 MakefileWriter.WriteAndroidNdkModuleRule = overridden_WriteAndroidNdkModuleRule
120 121
122 # Issue 5393
123 # replace $(LD_INPUTS) by "-Wl,--start-group $(LD_INPUTS) -Wl,--end-group" but
124 # only for cmd_link_host and only on linux.
125 print platform.system()
126 if platform.system() == "Linux":
127 gyp.generator.make.LINK_COMMANDS_ANDROID = \
128 gyp.generator.make.LINK_COMMANDS_ANDROID[:663] + \
129 "-Wl,--start-group $(LD_INPUTS) -Wl,--end-group" + \
130 gyp.generator.make.LINK_COMMANDS_ANDROID[675:]
131
121 if __name__ == '__main__': 132 if __name__ == '__main__':
122 gyp.main(sys.argv[1:]) 133 gyp.main(sys.argv[1:])
OLDNEW
« no previous file with comments | « Makefile ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld