| 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 55 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   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  Loading... | 
|  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:]) | 
| OLD | NEW |