# Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.

# This file contains some C++ sources for the dart:io library.  The other
# implementation files are in builtin_impl_sources.gypi.
{
  'sources': [
    'crypto.cc',
    'crypto.h',
    'crypto_android.cc',
    'crypto_linux.cc',
    'crypto_macos.cc',
    'crypto_win.cc',
    'eventhandler.cc',
    'eventhandler.h',
    'eventhandler_android.cc',
    'eventhandler_linux.cc',
    'eventhandler_linux.h',
    'eventhandler_macos.cc',
    'eventhandler_macos.h',
    'eventhandler_win.cc',
    'eventhandler_win.h',
    'filter.cc',
    'filter.h',
    'filter_unsupported.cc',
    'io_service.cc',
    'io_service.h',
    'io_service_unsupported.cc',
    'net/nss_memio.cc',
    'net/nss_memio.h',
    'platform.cc',
    'platform.h',
    'platform_android.cc',
    'platform_linux.cc',
    'platform_macos.cc',
    'platform_win.cc',
    'process.cc',
    'process.h',
    'process_android.cc',
    'process_linux.cc',
    'process_macos.cc',
    'process_win.cc',
    'secure_socket.cc',
    'secure_socket.h',
    'secure_socket_unsupported.cc',
    'socket.cc',
    'socket.h',
    'socket_android.cc',
    'socket_linux.cc',
    'socket_macos.cc',
    'socket_win.cc',
    'stdin.cc',
    'stdin.h',
    'stdin_android.cc',
    'stdin_linux.cc',
    'stdin_macos.cc',
    'stdin_win.cc',
  ],
  'conditions': [
    ['dart_io_support==1', {
      'sources!' : [
        'filter_unsupported.cc',
        'secure_socket_unsupported.cc',
        'io_service_unsupported.cc',
      ],
    },{  # else dart_io_support == 0
      'sources!' : [
        'filter.cc',
        'filter.h',
        'io_service.cc',
        'io_service.h',
        'net/nss_memio.cc',
        'net/nss_memio.h',
        'secure_socket.cc',
        'secure_socket.h',
      ],
    }],
  ],
}
