Index: webrtc/build/ios/merge_ios_libs.py |
diff --git a/webrtc/build/ios/merge_ios_libs b/webrtc/build/ios/merge_ios_libs.py |
similarity index 82% |
rename from webrtc/build/ios/merge_ios_libs |
rename to webrtc/build/ios/merge_ios_libs.py |
index d96d5e3c0c69c0b93d7ae6aab39061f939bfca7c..0b9a337a3cd57a927ccf45840132473163633950 100755 |
--- a/webrtc/build/ios/merge_ios_libs |
+++ b/webrtc/build/ios/merge_ios_libs.py |
@@ -16,6 +16,8 @@ import re |
import subprocess |
import sys |
+# Valid arch subdir names. |
+VALID_ARCHS = ['arm_libs', 'arm64_libs', 'ia32_libs', 'x64_libs'] |
def MergeLibs(lib_base_dir): |
kjellander_webrtc
2016/04/15 04:59:41
nit: +1 blank line before top-level definition
htt
tkchin_webrtc
2016/04/16 00:34:19
Done.
|
"""Merges generated iOS libraries for different archs. |
@@ -29,24 +31,22 @@ def MergeLibs(lib_base_dir): |
Returns: |
Exit code of libtool. |
""" |
- include_dir_name = 'include' |
- output_dir_name = 'lib' |
+ output_dir_name = 'fat_libs' |
archs = [arch for arch in os.listdir(lib_base_dir) |
- if arch[:1] != '.' and arch != output_dir_name |
- and arch != include_dir_name] |
+ if arch in VALID_ARCHS] |
# For each arch, find (library name, libary path) for arch. We will merge |
# all libraries with the same name. |
libs = {} |
- for dirpath, _, filenames in os.walk(lib_base_dir): |
- if dirpath.endswith(output_dir_name): |
+ for lib_dir in [os.path.join(lib_base_dir, arch) for arch in VALID_ARCHS]: |
+ if not os.path.exists(lib_dir): |
continue |
- for filename in filenames: |
- if not filename.endswith('.a'): |
- continue |
- entry = libs.get(filename, []) |
- entry.append(os.path.join(dirpath, filename)) |
- libs[filename] = entry |
- |
+ for dirpath, _, filenames in os.walk(lib_dir): |
+ for filename in filenames: |
+ if not filename.endswith('.a'): |
+ continue |
+ entry = libs.get(filename, []) |
+ entry.append(os.path.join(dirpath, filename)) |
+ libs[filename] = entry |
orphaned_libs = {} |
valid_libs = {} |
for library, paths in libs.items(): |
@@ -69,7 +69,6 @@ def MergeLibs(lib_base_dir): |
if not found: |
base_prefix = library[:-2].split('_')[0] |
for valid_lib, valid_paths in valid_libs.items(): |
- prefix = '_'.join(components) |
if valid_lib[:len(base_prefix)] == base_prefix: |
valid_paths.extend(paths) |
found = True |
@@ -89,6 +88,7 @@ def MergeLibs(lib_base_dir): |
libtool_re = re.compile(r'^.*libtool:.*file: .* has no symbols$') |
# Merge libraries using libtool. |
+ libtool_returncode = 0 |
for library, paths in valid_libs.items(): |
cmd_list = ['libtool', '-static', '-v', '-o', |
os.path.join(output_dir_path, library)] + paths |
@@ -99,14 +99,15 @@ def MergeLibs(lib_base_dir): |
print >>sys.stderr, line |
# Unconditionally touch the output .a file on the command line if present |
# and the command succeeded. A bit hacky. |
- if not libtoolout.returncode: |
+ libtool_returncode = libtoolout.returncode |
+ if not libtool_returncode: |
for i in range(len(cmd_list) - 1): |
if cmd_list[i] == '-o' and cmd_list[i+1].endswith('.a'): |
os.utime(cmd_list[i+1], None) |
break |
else: |
- return libtoolout.returncode |
- return libtoolout.returncode |
+ return libtool_returncode |
kjellander_webrtc
2016/04/15 04:59:42
You can skip this else statement.
tkchin_webrtc
2016/04/16 00:34:19
Done.
|
+ return libtool_returncode |
def Main(): |