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

Import('env')

env = env.Clone()

env.Prepend(
    CPPPATH = [
        'src',
        '$CHROME_SRC_DIR',
    ],
)

input_files = ChromeFileList([
    'src/client/windows/crash_generation/client_info.cc',
    'src/client/windows/crash_generation/client_info.h',
    'src/client/windows/crash_generation/crash_generation_client.cc',
    'src/client/windows/crash_generation/crash_generation_client.h',
    'src/client/windows/crash_generation/crash_generation_server.cc',
    'src/client/windows/crash_generation/crash_generation_server.h',
    'src/client/windows/handler/exception_handler.cc',
    'src/client/windows/handler/exception_handler.h',
    'src/common/windows/guid_string.cc',
    'src/common/windows/guid_string.h',
    'src/google_breakpad/common/minidump_format.h',
    'src/client/windows/crash_generation/minidump_generator.cc',
    'src/client/windows/crash_generation/minidump_generator.h',
    'src/common/windows/string_utils-inl.h',
])

if not env.Bit('windows'):
  input_files.Remove(
      'src/client/windows/crash_generation/client_info.cc',
      'src/client/windows/crash_generation/minidump_generator.cc',
      'src/common/windows/guid_string.cc',
      'src/client/windows/handler/exception_handler.cc',
      'src/client/windows/crash_generation/crash_generation_server.cc',
      'src/client/windows/crash_generation/crash_generation_client.cc',
  )

if not env.Bit('linux'):
  input_files.Remove(
      'src/common/linux/guid_creator.cc',
      'src/client/linux/handler/exception_handler.cc',
      'src/client/linux/handler/minidump_generator.cc',
      'src/client/linux/handler/linux_thread.cc',
  )

env.ChromeLibrary('breakpad_handler', input_files)

p = env.ChromeMSVSProject('breakpad_handler.vcproj',
                          dest=('$CHROME_SRC_DIR/breakpad/' +
                                    'breakpad_handler.vcproj'),
                          guid='{B55CA863-B374-4BAF-95AC-539E4FA4C90C}',
                          keyword='Win32Proj',
                          # TODO(sgk):  when we can intuit the hierarchy
                          # from the built targets.
                          #buildtargets=TODO,
                          files=input_files,
                          tools=[
                              'VCPreBuildEventTool',
                              'VCCustomBuildTool',
                              'VCXMLDataGeneratorTool',
                              'VCWebServiceProxyGeneratorTool',
                              'VCMIDLTool',
                              'VCCLCompilerTool',
                              'VCManagedResourceCompilerTool',
                              'VCResourceCompilerTool',
                              'VCPreLinkEventTool',
                              'VCLibrarianTool',
                              'VCALinkTool',
                              'VCXDCMakeTool',
                              'VCBscMakeTool',
                              'VCFxCopTool',
                              'VCPostBuildEventTool',
                          ],
                          ConfigurationType='4')


p.AddConfig('Debug|Win32',
            InheritedPropertySheets=[
                '$(SolutionDir)../build/common.vsprops',
                '$(SolutionDir)../build/debug.vsprops',
                '$(SolutionDir)../build/external_code.vsprops',
                './using_breakpad.vsprops',
            ])

p.AddConfig('Release|Win32',
            InheritedPropertySheets=[
                '$(SolutionDir)../build/common.vsprops',
                '$(SolutionDir)../build/release.vsprops',
                '$(SolutionDir)../build/external_code.vsprops',
                './using_breakpad.vsprops',
            ])