Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(583)

Unified Diff: build/mac/strip_save_dsym

Issue 160538: Move the entire application into a dylib (framework) (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 11 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « build/mac/dump_app_syms ('k') | chrome/app/chrome_dll_main.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: build/mac/strip_save_dsym
===================================================================
--- build/mac/strip_save_dsym (revision 22482)
+++ build/mac/strip_save_dsym (working copy)
@@ -43,13 +43,18 @@
# architecture. On error, returns an empty list. Determines the architecture
# list by calling file.
def macho_archs(macho):
+ macho_types = ["executable",
+ "dynamically linked shared library",
+ "bundle"]
+ macho_types_re = "Mach-O (?:64-bit )?(?:" + "|".join(macho_types) + ")"
+
file_cmd = subprocess.Popen(["/usr/bin/file", "-b", "--", macho],
- stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+ stdout=subprocess.PIPE)
archs = []
type_line = file_cmd.stdout.readline()
- type_match = re.match("^Mach-O executable (.*)$", type_line)
+ type_match = re.match("^%s (.*)$" % macho_types_re, type_line)
if type_match:
archs.append(type_match.group(1))
return [type_match.group(1)]
@@ -60,7 +65,7 @@
for i in range(0, int(type_match.group(1))):
arch_line = file_cmd.stdout.readline()
arch_match = re.match(
- "^.* \(for architecture (.*)\):\tMach-O executable .*$",
+ "^.* \(for architecture (.*)\):\t%s .*$" % macho_types_re,
arch_line)
if arch_match:
archs.append(arch_match.group(1))
@@ -68,6 +73,9 @@
if file_cmd.wait() != 0:
archs = []
+ if len(archs) == 0:
+ print >> sys.stderr, "No architectures in %s" % macho
+
return archs
# Returns a dictionary mapping architectures contained in the file as returned
@@ -75,17 +83,19 @@
# Architectures with no LC_UUID load command are omitted from the dictionary.
# Determines the UUID value by calling otool.
def macho_uuids(macho):
+ uuids = {}
+
archs = macho_archs(macho)
+ if len(archs) == 0:
+ return uuids
- uuids = {}
-
for arch in archs:
if arch == "":
continue
otool_cmd = subprocess.Popen(["/usr/bin/otool", "-arch", arch, "-l", "-",
macho],
- stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+ stdout=subprocess.PIPE)
# state 0 is when nothing UUID-related has been seen yet. State 1 is
# entered after a load command begins, but it may not be an LC_UUID load
# command. States 2, 3, and 4 are intermediate states while reading an
@@ -138,6 +148,9 @@
if state == 5:
uuids[arch] = uuid.upper()
+ if len(uuids) == 0:
+ print >> sys.stderr, "No UUIDs in %s" % macho
+
return uuids
# Given a path to a Mach-O file and possible information from the environment,
@@ -309,5 +322,5 @@
return 0
-if __name__ == '__main__':
+if __name__ == "__main__":
sys.exit(main(sys.argv))
Property changes on: build/mac/strip_save_dsym
___________________________________________________________________
Added: svn:eol-style
+ LF
« no previous file with comments | « build/mac/dump_app_syms ('k') | chrome/app/chrome_dll_main.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698