| # Copyright (c) 2009 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| { |
| 'target_defaults': { |
| 'variables': { |
| 'base_target': 0, |
| 'chromium_root': '<(DEPTH)/third_party/chromium/src', |
| 'conditions': [ |
| # The default stack_trace_posix.cc is not compatible with NaCL newlib |
| # toolchain, so we provide a stubbed version when building for NaCL. |
| [ 'build_nacl==1', { |
| 'stack_trace_posix_cc': 'nacl_stubs/stack_trace_posix.cc', |
| }, { |
| 'stack_trace_posix_cc': '<(chromium_root)/base/debug/stack_trace_posix.cc', |
| }], |
| ], |
| }, |
| 'target_conditions': [ |
| # This part is shared between the targets defined below. Only files and |
| # settings relevant for building the Win64 target should be added here. |
| # All the rest should be added to the 'base' target below. |
| ['base_target==1', { |
| 'sources': [ |
| '<(chromium_root)/build/build_config.h', |
| '<(chromium_root)/base/third_party/dmg_fp/dmg_fp.h', |
| '<(chromium_root)/base/third_party/dmg_fp/g_fmt.cc', |
| '<(chromium_root)/base/third_party/dmg_fp/dtoa_wrapper.cc', |
| '<(chromium_root)/base/third_party/icu/icu_utf.cc', |
| '<(chromium_root)/base/third_party/icu/icu_utf.h', |
| '<(chromium_root)/base/third_party/nspr/prtime.cc', |
| '<(chromium_root)/base/third_party/nspr/prtime.h', |
| '<(chromium_root)/base/at_exit.cc', |
| '<(chromium_root)/base/at_exit.h', |
| '<(chromium_root)/base/atomicops.h', |
| '<(chromium_root)/base/atomicops_internals_x86_gcc.cc', |
| '<(chromium_root)/base/atomicops_internals_x86_msvc.h', |
| '<(chromium_root)/base/callback.h', |
| '<(chromium_root)/base/callback_internal.h', |
| '<(chromium_root)/base/callback_internal.cc', |
| '<(chromium_root)/base/command_line.cc', |
| '<(chromium_root)/base/command_line.h', |
| '<(chromium_root)/base/cpu_patched.cc', |
| '<(chromium_root)/base/cpu.h', |
| '<(chromium_root)/base/debug/alias.cc', |
| '<(chromium_root)/base/debug/alias.h', |
| '<(chromium_root)/base/debug/debugger.cc', |
| '<(chromium_root)/base/debug/debugger.h', |
| '<(chromium_root)/base/debug/debugger_posix.cc', |
| '<(chromium_root)/base/debug/debugger_win.cc', |
| '<(chromium_root)/base/debug/profiler.cc', |
| '<(chromium_root)/base/debug/profiler.h', |
| '<(chromium_root)/base/debug/stack_trace.cc', |
| '<(chromium_root)/base/debug/stack_trace.h', |
| '<(stack_trace_posix_cc)', |
| '<(chromium_root)/base/debug/stack_trace_win.cc', |
| '<(chromium_root)/base/files/file_path.cc', |
| '<(chromium_root)/base/files/file_path.h', |
| '<(chromium_root)/base/files/file_path_constants.cc', |
| '<(chromium_root)/base/json/json_parser.cc', |
| '<(chromium_root)/base/json/json_parser.h', |
| '<(chromium_root)/base/json/json_reader.cc', |
| '<(chromium_root)/base/json/json_reader.h', |
| '<(chromium_root)/base/json/json_writer.cc', |
| '<(chromium_root)/base/json/json_writer.h', |
| '<(chromium_root)/base/json/string_escape.cc', |
| '<(chromium_root)/base/json/string_escape.h', |
| '<(chromium_root)/base/lazy_instance.cc', |
| '<(chromium_root)/base/lazy_instance.h', |
| '<(chromium_root)/base/logging.cc', |
| '<(chromium_root)/base/logging.h', |
| '<(chromium_root)/base/logging_win.cc', |
| '<(chromium_root)/base/logging_win.h', |
| '<(chromium_root)/base/location.cc', |
| '<(chromium_root)/base/memory/ref_counted.cc', |
| '<(chromium_root)/base/memory/ref_counted.h', |
| '<(chromium_root)/base/memory/singleton.cc', |
| '<(chromium_root)/base/memory/singleton.h', |
| '<(chromium_root)/base/mac/foundation_util.h', |
| 'mac/foundation_util.mm', |
| '<(chromium_root)/base/pickle.cc', |
| '<(chromium_root)/base/pickle.h', |
| '<(chromium_root)/base/process.h', |
| 'process_util.cc', |
| '<(chromium_root)/base/safe_strerror_posix.cc', |
| '<(chromium_root)/base/safe_strerror_posix.h', |
| '<(chromium_root)/base/strings/string_number_conversions.cc', |
| '<(chromium_root)/base/strings/string_number_conversions.h', |
| '<(chromium_root)/base/strings/string_piece.cc', |
| '<(chromium_root)/base/strings/string_piece.h', |
| '<(chromium_root)/base/strings/string_split.cc', |
| '<(chromium_root)/base/strings/string_split.h', |
| '<(chromium_root)/base/strings/string_util.cc', |
| '<(chromium_root)/base/strings/string_util.h', |
| '<(chromium_root)/base/strings/string_util_constants.cc', |
| '<(chromium_root)/base/strings/string_util_win.h', |
| '<(chromium_root)/base/strings/stringprintf.cc', |
| '<(chromium_root)/base/strings/stringprintf.h', |
| '<(chromium_root)/base/strings/sys_string_conversions.h', |
| '<(chromium_root)/base/strings/sys_string_conversions_mac.mm', |
| '<(chromium_root)/base/strings/sys_string_conversions_posix.cc', |
| '<(chromium_root)/base/strings/sys_string_conversions_win.cc', |
| '<(chromium_root)/base/strings/utf_string_conversion_utils.cc', |
| '<(chromium_root)/base/strings/utf_string_conversion_utils.h', |
| '<(chromium_root)/base/strings/utf_string_conversions.cc', |
| '<(chromium_root)/base/strings/utf_string_conversions.h', |
| '<(chromium_root)/base/synchronization/cancellation_flag.cc', |
| '<(chromium_root)/base/synchronization/cancellation_flag.h', |
| '<(chromium_root)/base/synchronization/condition_variable.h', |
| '<(chromium_root)/base/synchronization/condition_variable_posix.cc', |
| '<(chromium_root)/base/synchronization/condition_variable_win.cc', |
| '<(chromium_root)/base/synchronization/lock.cc', |
| '<(chromium_root)/base/synchronization/lock.h', |
| '<(chromium_root)/base/synchronization/lock_impl.h', |
| '<(chromium_root)/base/synchronization/lock_impl_posix.cc', |
| '<(chromium_root)/base/synchronization/lock_impl_win.cc', |
| '<(chromium_root)/base/synchronization/spin_wait.h', |
| '<(chromium_root)/base/synchronization/waitable_event.h', |
| '<(chromium_root)/base/synchronization/waitable_event_posix.cc', |
| '<(chromium_root)/base/synchronization/waitable_event_watcher.h', |
| '<(chromium_root)/base/synchronization/waitable_event_watcher_posix.cc', |
| '<(chromium_root)/base/synchronization/waitable_event_watcher_win.cc', |
| '<(chromium_root)/base/synchronization/waitable_event_win.cc', |
| '<(chromium_root)/base/threading/platform_thread.h', |
| '<(chromium_root)/base/threading/platform_thread_linux.cc', |
| '<(chromium_root)/base/threading/platform_thread_mac.mm', |
| '<(chromium_root)/base/threading/platform_thread_posix.cc', |
| '<(chromium_root)/base/threading/platform_thread_win.cc', |
| '<(chromium_root)/base/threading/thread_collision_warner.cc', |
| '<(chromium_root)/base/threading/thread_collision_warner.h', |
| '<(chromium_root)/base/threading/thread_id_name_manager.cc', |
| '<(chromium_root)/base/threading/thread_id_name_manager.h', |
| '<(chromium_root)/base/threading/thread_local.h', |
| '<(chromium_root)/base/threading/thread_local_posix.cc', |
| '<(chromium_root)/base/threading/thread_local_storage.cc', |
| '<(chromium_root)/base/threading/thread_local_storage.h', |
| '<(chromium_root)/base/threading/thread_local_storage_posix.cc', |
| '<(chromium_root)/base/threading/thread_local_storage_win.cc', |
| '<(chromium_root)/base/threading/thread_local_win.cc', |
| '<(chromium_root)/base/threading/thread_restrictions.cc', |
| '<(chromium_root)/base/threading/thread_restrictions.h', |
| '<(chromium_root)/base/time/time.cc', |
| '<(chromium_root)/base/time/time.h', |
| '<(chromium_root)/base/time/time_mac.cc', |
| '<(chromium_root)/base/time/time_posix.cc', |
| '<(chromium_root)/base/time/time_win.cc', |
| '<(chromium_root)/base/tracked_objects.cc', |
| '<(chromium_root)/base/tracked_objects.h', |
| '<(chromium_root)/base/values.cc', |
| '<(chromium_root)/base/values.h', |
| '<(chromium_root)/base/vlog.cc', |
| '<(chromium_root)/base/vlog.h', |
| '<(chromium_root)/base/win/registry.cc', |
| '<(chromium_root)/base/win/registry.h', |
| '<(chromium_root)/base/win/scoped_handle.cc', |
| '<(chromium_root)/base/win/scoped_handle.h', |
| '<(chromium_root)/base/win/win_util.cc', |
| '<(chromium_root)/base/win/win_util.h', |
| '<(chromium_root)/base/win/windows_version.cc', |
| '<(chromium_root)/base/profiler/tracked_time.h', |
| '<(chromium_root)/base/profiler/tracked_time.cc', |
| '<(chromium_root)/base/profiler/alternate_timer.h', |
| '<(chromium_root)/base/profiler/alternate_timer.cc', |
| '<(chromium_root)/base/win/windows_version.h', |
| ], |
| 'include_dirs': [ |
| '<(chromium_root)', |
| '<(DEPTH)', |
| ], |
| # These warnings are needed for the files in third_party\dmg_fp. |
| 'msvs_disabled_warnings': [ |
| 4244, 4554, 4018, 4102, |
| ], |
| 'mac_framework_dirs': [ |
| '$(SDKROOT)/System/Library/Frameworks/ApplicationServices.framework/Frameworks', |
| ], |
| 'conditions': [ |
| [ 'OS != "linux" and OS != "freebsd" and OS != "openbsd" and OS != "solaris"', { |
| 'sources!': [ |
| '<(chromium_root)/base/atomicops_internals_x86_gcc.cc', |
| ], |
| },], |
| ['OS != "win"', { |
| 'sources/': [ ['exclude', '^win/'] ], |
| }, |
| ], |
| [ 'OS == "win"', { |
| 'sources!': [ |
| '<(chromium_root)/base/strings/string16.cc', |
| ], |
| },], |
| ], |
| }], |
| ], |
| }, |
| 'targets': [ |
| # Older assemblers don't recognize the xgetbv opcode, and require explicit |
| # bytes instead. These can be found by searching the web; example: |
| # http://lxr.free-electrons.com/source/arch/x86/include/asm/xcr.h#L31 |
| { |
| 'target_name': 'cpu_patched', |
| 'type': 'none', |
| 'sources': [ |
| '<(chromium_root)/base/cpu.cc', |
| '<(chromium_root)/base/cpu_patched.cc', |
| ], |
| 'actions': [ |
| { |
| 'action_name': 'Patch cpu.cc', |
| 'inputs': [ |
| '<(chromium_root)/base/cpu.cc', |
| ], |
| 'outputs': [ |
| '<(chromium_root)/base/cpu_patched.cc', |
| ], |
| 'action': [ |
| 'bash', '-c', |
| 'sed \'s/"xgetbv"/".byte 0x0f, 0x01, 0xd0"/\' <@(_inputs) > <@(_outputs)' |
| ], |
| 'message': 'Attempting to generate patched <@(_outputs) from <@(_inputs)', |
| }, |
| ], |
| }, |
| { |
| 'target_name': 'base', |
| 'type': '<(component)', |
| 'variables': { |
| 'base_target': 1, |
| }, |
| 'dependencies': [ |
| 'base_static', |
| 'cpu_patched', |
| '<(DEPTH)/third_party/modp_b64/modp_b64.gyp:modp_b64', |
| '<(chromium_root)/base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations', |
| ], |
| # TODO(gregoryd): direct_dependent_settings should be shared with the |
| # 64-bit target, but it doesn't work due to a bug in gyp |
| 'direct_dependent_settings': { |
| 'include_dirs': [ |
| '<(chromium_root)', |
| '<(DEPTH)', |
| ], |
| }, |
| 'conditions': [ |
| [ 'OS == "linux"', { |
| 'cflags': [ |
| '-Wno-write-strings', |
| '-Wno-error', |
| ], |
| 'conditions': [ |
| [ 'build_nacl==0', { |
| # We do not need clock_gettime() when building for NaCL newlib. |
| 'link_settings': { |
| 'libraries': [ |
| # We need rt for clock_gettime(). |
| '-lrt', |
| ], |
| }, |
| }], |
| ], |
| }], |
| [ 'OS == "mac"', { |
| 'link_settings': { |
| 'libraries': [ |
| '$(SDKROOT)/System/Library/Frameworks/AppKit.framework', |
| '$(SDKROOT)/System/Library/Frameworks/Carbon.framework', |
| '$(SDKROOT)/System/Library/Frameworks/CoreFoundation.framework', |
| '$(SDKROOT)/System/Library/Frameworks/Foundation.framework', |
| '$(SDKROOT)/System/Library/Frameworks/IOKit.framework', |
| '$(SDKROOT)/System/Library/Frameworks/Security.framework', |
| ], |
| }, |
| },], |
| [ 'build_nacl==1', { |
| 'defines': [ |
| # A super-hack. prtime.cc (and possibly other sources) call |
| # timegm, which is a non-standard function that's |
| # unavailable when compiling using NaCl newlib. mktime is |
| # essentially a drop-in replacement for timegm, modulo time |
| # zone issues, however NaCL will default to UTC which is the |
| # expected behavior for timegm, so the two should behave |
| # identically. |
| 'timegm=mktime', |
| ], |
| }], |
| ], |
| 'sources': [ |
| '<(chromium_root)/base/base64.cc', |
| '<(chromium_root)/base/base64.h', |
| '<(chromium_root)/base/md5.cc', |
| '<(chromium_root)/base/md5.h', |
| '<(chromium_root)/base/strings/string16.cc', |
| '<(chromium_root)/base/strings/string16.h', |
| ], |
| }, |
| ], |
| } |