revised patch after sync to latest code
Fix GN Bootstrap
Bug: 594067
Change-Id: Ifad95b8f16d76d85fa33dafe1d01a8d8d81319be
Reviewed-on: https://chromium-review.googlesource.com/611776
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Dirk Pranke <dpranke@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#494417}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 5fe862af0630aee079549a86fc2fe9e7a0afd8a8
diff --git a/tools/gn/bootstrap/bootstrap.py b/tools/gn/bootstrap/bootstrap.py
index 55500ad..41e4ae3 100755
--- a/tools/gn/bootstrap/bootstrap.py
+++ b/tools/gn/bootstrap/bootstrap.py
@@ -20,6 +20,7 @@
import logging
import optparse
import os
+import platform
import shutil
import subprocess
import sys
@@ -88,6 +89,13 @@
# Preserve the executable permission bit.
shutil.copy2(out_gn, options.output)
+def windows_target_build_arch():
+ # Target build architecture set by vcvarsall.bat
+ target_arch = os.environ.get('Platform')
+ if target_arch in ['x64', 'x86']: return target_arch
+
+ if platform.machine().lower() in ['x86_64', 'amd64']: return 'x64'
+ return 'x86'
def main(argv):
parser = optparse.OptionParser(description=sys.modules[__name__].__doc__)
@@ -363,8 +371,12 @@
'/GR-',
'/D_HAS_EXCEPTIONS=0',
])
- # TODO(tim): Support for 64bit builds?
- ldflags.extend(['/MACHINE:x86', '/DEBUG'])
+
+ target_arch = windows_target_build_arch()
+ if target_arch == 'x64':
+ ldflags.extend(['/MACHINE:x64'])
+ else:
+ ldflags.extend(['/MACHINE:x86'])
static_libraries = {
'base': {'sources': [], 'tool': 'cxx', 'include_dirs': []},
@@ -436,6 +448,7 @@
'base/memory/ref_counted_memory.cc',
'base/memory/singleton.cc',
'base/memory/shared_memory_handle.cc',
+ 'base/memory/shared_memory_tracker.cc',
'base/memory/weak_ptr.cc',
'base/message_loop/incoming_task_queue.cc',
'base/message_loop/message_loop.cc',
@@ -566,6 +579,7 @@
'base/unguessable_token.cc',
'base/value_iterators.cc',
'base/values.cc',
+ 'base/value_iterators.cc',
'base/vlog.cc',
])
@@ -797,6 +811,7 @@
'version.lib',
'winmm.lib',
'ws2_32.lib',
+ 'Shlwapi.lib',
])
# we just build static libraries that GN needs