OLD | NEW |
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 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
112 if variable == "LOCAL_STATIC_LIBRARIES": | 112 if variable == "LOCAL_STATIC_LIBRARIES": |
113 value_list.append("${ABP_STATIC_LIBRARIES_${BUILDTYPE}}") | 113 value_list.append("${ABP_STATIC_LIBRARIES_${BUILDTYPE}}") |
114 orig_WriteList(value_list, variable, prefix, quoter) | 114 orig_WriteList(value_list, variable, prefix, quoter) |
115 self.WriteList = types.MethodType(overridden_WriteList, self) | 115 self.WriteList = types.MethodType(overridden_WriteList, self) |
116 orig_MakefileWriter_WriteAndroidNdkModuleRule(self, module_name, all_sources
, link_deps) | 116 orig_MakefileWriter_WriteAndroidNdkModuleRule(self, module_name, all_sources
, link_deps) |
117 self.WriteList = orig_WriteList | 117 self.WriteList = orig_WriteList |
118 | 118 |
119 MakefileWriter.Write = overridden_Write | 119 MakefileWriter.Write = overridden_Write |
120 MakefileWriter.WriteAndroidNdkModuleRule = overridden_WriteAndroidNdkModuleRule | 120 MakefileWriter.WriteAndroidNdkModuleRule = overridden_WriteAndroidNdkModuleRule |
121 | 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 | |
132 if __name__ == '__main__': | 122 if __name__ == '__main__': |
133 gyp.main(sys.argv[1:]) | 123 gyp.main(sys.argv[1:]) |
OLD | NEW |