# Copyright (c) 2012 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.

{
  'variables': {
    'chromium_code': 1,
  },
  'includes': [
    # base.gypi must be included before common_untrusted.gypi.
    #
    # TODO(sergeyu): Replace the target_defaults magic in base.gypi with a
    # sources variables lists. That way order of includes will not matter.
    'base.gypi',
    '../build/common_untrusted.gypi',
  ],
  'conditions': [
    ['disable_nacl==0 and disable_nacl_untrusted==0', {
      'targets': [
        {
          'target_name': 'base_nacl',
          'type': 'none',
          'variables': {
            'base_target': 1,
            'nacl_untrusted_build': 1,
            'nlib_target': 'libbase_nacl.a',
            'build_glibc': 0,
            'build_newlib': 0,
            'build_irt': 1,
            'build_pnacl_newlib': 1,
            'sources': [
              'base_switches.cc',
              'base_switches.h',
              'strings/string16.cc',
              'sync_socket_nacl.cc',
              'time/time_posix.cc',
            ],
            'compile_flags': [
              '-fno-strict-aliasing',
            ],
          },
          'dependencies': [
            'allocator/allocator.gyp:allocator_features#target',
            'base.gyp:base_debugging_flags',
            'base.gyp:base_build_date',
          ],
        },
        {
          'target_name': 'base_i18n_nacl',
          'type': 'none',
          'variables': {
            'base_i18n_target': 1,
            'nacl_untrusted_build': 1,
            'nlib_target': 'libbase_i18n_nacl.a',
            'build_glibc': 0,
            'build_newlib': 0,
            'build_irt': 0,
            'build_pnacl_newlib': 1,
            'sources': [
              'base_switches.cc',
              'base_switches.h',
              'strings/string16.cc',
              'sync_socket_nacl.cc',
              'time/time_posix.cc',
            ],
          },
          'dependencies': [
            'allocator/allocator.gyp:allocator_features#target',
            'base.gyp:base_build_date',
            '../third_party/icu/icu_nacl.gyp:icudata_nacl',
            '../third_party/icu/icu_nacl.gyp:icui18n_nacl',
            '../third_party/icu/icu_nacl.gyp:icuuc_nacl',
          ],
        },
        {
          'target_name': 'base_nacl_nonsfi',
          'type': 'none',
          'variables': {
            'base_target': 1,
            'nacl_untrusted_build': 1,
            'nlib_target': 'libbase_nacl_nonsfi.a',
            'build_glibc': 0,
            'build_newlib': 0,
            'build_irt': 0,
            'build_pnacl_newlib': 0,
            'build_nonsfi_helper': 1,

            'sources': [
              'base_switches.cc',
              'base_switches.h',

              # For PathExists and ReadFromFD.
              'files/file_util.cc',
              'files/file_util_posix.cc',

              # For MessageLoopForIO based on libevent.
              'message_loop/message_pump_libevent.cc',
              'message_loop/message_pump_libevent.h',

              # For UnixDomainSocket::SendMsg and RecvMsg.
              'posix/unix_domain_socket_linux.cc',

              # For GetKnownDeadTerminationStatus and GetTerminationStatus.
              'process/kill_posix.cc',

              # For ForkWithFlags.
              'process/launch.h',
              'process/launch_posix.cc',

              # Unlike libbase_nacl, for Non-SFI build, we need to use
              # rand_util_posix for random implementation, instead of
              # rand_util_nacl.cc, which is based on IRT. rand_util_nacl.cc is
              # excluded below.
              'rand_util_posix.cc',

              # For CancelableSyncSocket.
              'sync_socket_nacl.cc',
            ],
          },
          'sources!': [
            'rand_util_nacl.cc',
          ],
          'dependencies': [
            'allocator/allocator.gyp:allocator_features#target',
            'base.gyp:base_debugging_flags',
            'base.gyp:base_build_date',
            'third_party/libevent/libevent_nacl_nonsfi.gyp:event_nacl_nonsfi',
          ],
        },
        {
          'target_name': 'test_support_base_nacl_nonsfi',
          'type': 'none',
          'variables': {
            'nacl_untrusted_build': 1,
            'nlib_target': 'libtest_support_base_nacl_nonsfi.a',
            'build_glibc': 0,
            'build_newlib': 0,
            'build_irt': 0,
            'build_pnacl_newlib': 0,
            'build_nonsfi_helper': 1,

            'sources': [
              'test/gtest_util.cc',
              'test/launcher/unit_test_launcher_nacl_nonsfi.cc',
              'test/gtest_xml_unittest_result_printer.cc',
              'test/test_switches.cc',
            ],
          },
          'dependencies': [
            'base.gyp:base_build_date',
            'base_nacl_nonsfi',
            '../testing/gtest_nacl.gyp:gtest_nacl',
          ],
        },
      ],
    }],
  ],
}
