# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
# vim: set filetype=python:
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

libevent_path_prefix = 'src/third_party'
include(libevent_path_prefix + '/libeventcommon.mozbuild')

UNIFIED_SOURCES += [
    'src/base/at_exit.cc',
    'src/base/command_line.cc',
    'src/base/file_path.cc',
    'src/base/file_util.cc',
    'src/base/histogram.cc',
    'src/base/lock.cc',
    'src/base/logging.cc',
    'src/base/message_loop.cc',
    'src/base/message_pump_default.cc',
    'src/base/pickle.cc',
    'src/base/rand_util.cc',
    'src/base/revocable_store.cc',
    'src/base/string_piece.cc',
    'src/base/string_util.cc',
    'src/base/thread.cc',
    'src/base/time.cc',
    'src/base/timer.cc',
    'src/chrome/common/child_process.cc',
    'src/chrome/common/child_process_host.cc',
    'src/chrome/common/child_thread.cc',
    'src/chrome/common/chrome_switches.cc',
    'src/chrome/common/ipc_channel.cc',
    'src/chrome/common/ipc_message.cc',
]

if os_win:
    SOURCES += [
        'src/base/condition_variable_win.cc',
        'src/base/cpu.cc',
        'src/base/file_util_win.cc',
        'src/base/lock_impl_win.cc',
        'src/base/message_pump_win.cc',
        'src/base/object_watcher.cc',
        'src/base/platform_file_win.cc',
        'src/base/platform_thread_win.cc',
        'src/base/process_util_win.cc',
        'src/base/process_win.cc',
        'src/base/rand_util_win.cc',
        'src/base/shared_memory_win.cc',
        'src/base/sys_info_win.cc',
        'src/base/sys_string_conversions_win.cc',
        'src/base/thread_local_storage_win.cc',
        'src/base/thread_local_win.cc',
        'src/base/time_win.cc',
        'src/base/waitable_event_win.cc',
        'src/base/win_util.cc',
        'src/chrome/common/ipc_channel_win.cc',
        'src/chrome/common/process_watcher_win.cc',
        'src/chrome/common/transport_dib_win.cc',
    ]
elif not CONFIG['MOZ_SYSTEM_LIBEVENT']:
    DIRS += ['src/third_party']

if os_posix:
    UNIFIED_SOURCES += [
        'src/base/condition_variable_posix.cc',
        'src/base/file_descriptor_shuffle.cc',
        'src/base/file_util_posix.cc',
        'src/base/lock_impl_posix.cc',
        'src/base/message_pump_libevent.cc',
        'src/base/platform_file_posix.cc',
        'src/base/platform_thread_posix.cc',
        'src/base/process_posix.cc',
        'src/base/process_util_posix.cc',
        'src/base/rand_util_posix.cc',
        'src/base/shared_memory_posix.cc',
        'src/base/string16.cc',
        'src/base/sys_info_posix.cc',
        'src/base/thread_local_posix.cc',
        'src/base/thread_local_storage_posix.cc',
        'src/base/waitable_event_posix.cc',
        'src/chrome/common/file_descriptor_set_posix.cc',
        'src/chrome/common/ipc_channel_posix.cc',
        'src/chrome/common/process_watcher_posix_sigchld.cc',
    ]

if os_macosx:
    UNIFIED_SOURCES += [
        'src/base/chrome_application_mac.mm',
        'src/base/file_util_mac.mm',
        'src/base/mac_util.mm',
        'src/base/message_pump_mac.mm',
        'src/base/process_util_mac.mm',
        'src/base/scoped_nsautorelease_pool.mm',
        'src/base/sys_info_mac.cc',
        'src/base/sys_string_conversions_mac.mm',
        'src/base/time_mac.cc',
        'src/chrome/common/mach_ipc_mac.mm',
        'src/chrome/common/mach_message_source_mac.cc',
        'src/chrome/common/transport_dib_mac.cc',
    ]
    SOURCES += [
        # This file cannot be built in unified mode because of the redefinition
        # of NoOp.
        'src/base/platform_thread_mac.mm',
    ]

if os_bsd:
    SOURCES += [
        'src/base/atomicops_internals_x86_gcc.cc',
        'src/base/time_posix.cc',
    ]
    if CONFIG['OS_ARCH'] == 'GNU_kFreeBSD':
        SOURCES += [
            'src/base/process_util_linux.cc'
        ]
    else:
        SOURCES += [
            'src/base/process_util_bsd.cc'
        ]

if os_linux:
    SOURCES += [
        'src/base/atomicops_internals_x86_gcc.cc',
        'src/base/process_util_linux.cc',
        'src/base/time_posix.cc',
    ]
    if CONFIG['OS_TARGET'] == 'Android':
        UNIFIED_SOURCES += [
            'src/base/message_pump_android.cc',
        ]
        DEFINES['ANDROID'] = True
        DEFINES['_POSIX_MONOTONIC_CLOCK'] = 0
        if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk':
            DEFINES['HAVE_ANDROID_OS'] = True

if os_bsd or os_linux:
    if 'gtk' in CONFIG['MOZ_WIDGET_TOOLKIT']:
        SOURCES += [
            'src/base/message_pump_glib.cc',
        ]

ost = CONFIG['OS_TEST']
if '86' not in ost and 'arm' not in ost and 'aarch64' != ost and 'mips' not in ost:
    SOURCES += [
        'src/base/atomicops_internals_mutex.cc',
    ]

CXXFLAGS += CONFIG['TK_CFLAGS']

include('/ipc/chromium/chromium-config.mozbuild')

FINAL_LIBRARY = 'xul'

DIRS += [
    'atomics',
]

if CONFIG['GNU_CXX']:
    CXXFLAGS += ['-Wno-error=shadow']