# 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.ApplySConscript([
    '$BASE_DIR/using_base.scons',
    '$BASE_DIR/gfx/using_base_gfx.scons',
    '$CHROME_SRC_DIR/build/using_googleurl.scons',
    '$GTEST_DIR/../using_gtest.scons',
    '$ICU38_DIR/using_icu38.scons',
    '$LIBPNG_DIR/using_libpng.scons',
    '$LIBXML_DIR/using_libxml.scons',
    '$LIBXSLT_DIR/using_libxslt.scons',
    '$MODP_B64_DIR/using_modp_b64.scons',
    '$NET_DIR/using_net.scons',
    '$SKIA_DIR/using_skia.scons',
    '$ZLIB_DIR/using_zlib.scons',
])

env.Prepend(
    CPPDEFINES = [
        'UI_TEST',
    ],
    CPPPATH = [
        '$CHROME_SRC_DIR',
    ],
    LIBS = [
        'automation',
        'browser',
        'browser_views',
        'common',
        'security_tests',
    ],
)

if env.Bit('windows'):
  env.Prepend(
      LINKFLAGS = [
          '/INCREMENTAL',
          '/DEBUG',

          '/DELAYLOAD:"ws2_32.dll"',
          '/DELAYLOAD:"dwmapi.dll"',
          '/DELAYLOAD:"uxtheme.dll"',

          '/MACHINE:X86',
          '/FIXED:No',

          '/safeseh',
          '/dynamicbase',
          '/ignore:4199',
          '/nxcompat',
      ],
      LIBS = [
           'comsupp',
           'oleacc',
           'rpcrt4',
           'winmm',
      ],
  )

input_files = ChromeFileList([
    'plugin_test.cpp',
    '$CHROME_DIR/tools/build/win/precompiled_wtl$OBJSUFFIX',
    '$CHROME_DIR/tools/build/win/precompiled_wtl.h',
    '$CHROME_DIR/test/ui/run_all_unittests$OBJSUFFIX',
    '$CHROME_DIR/test/testing_browser_process.h',
    '$CHROME_DIR/test/ui/ui_test$OBJSUFFIX',
    '$CHROME_DIR/test/ui/ui_test.h',
    '$CHROME_DIR/test/ui/ui_test_suite$OBJSUFFIX',
])

if not env.Bit('windows'):
  # Windows-specific.
  input_files.Remove(
      '$CHROME_DIR/tools/build/win/precompiled_wtl$OBJSUFFIX',
      '$CHROME_DIR/tools/build/win/precompiled_wtl.h',
  )

# TODO(port):
if env.Bit('windows'):
  env.ChromeTestProgram('plugin_tests', input_files)

p = env.ChromeMSVSProject('plugin_tests.vcproj',
                          dest=('$CHROME_SRC_DIR/chrome/'
                                + 'test/plugin/plugin_tests.vcproj'),
                          guid='{A1CAA831-C507-4B2E-87F3-AEC63C9907F9}',
                          dependencies = [
                              '$CHROME_DIR/test/automation/automation.vcproj',
                              '$BASE_DIR/build/base.vcproj',
                              '$NET_DIR/build/net.vcproj',
                              ('$CHROME_DIR/test/activex_test_control/' +
                                   'activex_test_control.vcproj'),
                              '$CHROME_DIR/browser/browser.vcproj',
                              '$MODP_B64_DIR/modp_b64.vcproj',
                              '$CHROME_DIR/app/chrome_exe.vcproj',
                              '$ZLIB_DIR/zlib.vcproj',
                              '$CHROME_DIR/common/common.vcproj',
                              '$ICU38_DIR/build/icu.vcproj',
                              '$BASE_DIR/build/base_gfx.vcproj',
                              '$TESTING_DIR/gtest.vcproj',
                              '$LIBPNG_DIR/libpng.vcproj',
                              '$SKIA_DIR/skia.vcproj',
                              ('$CHROME_DIR/test/security_tests/' +
                                   'security_tests.vcproj'),
                              '$GOOGLEURL_DIR/build/googleurl.vcproj',
                              '$CHROME_DIR/browser/views/browser_views.vcproj',
                          ],
                          # TODO(sgk):  when we can intuit the hierarchy
                          # from the built targets.
                          #buildtargets=TODO,
                          files=input_files,
                          local_directory_prefix='./',
                          tools=[
                              'VCPreBuildEventTool',
                              'VCCustomBuildTool',
                              'VCXMLDataGeneratorTool',
                              'VCWebServiceProxyGeneratorTool',
                              'VCMIDLTool',
                              'VCCLCompilerTool',
                              'VCManagedResourceCompilerTool',
                              'VCResourceCompilerTool',
                              'VCPreLinkEventTool',
                              MSVSTool('VCLinkerTool',
                                       AdditionalDependencies='winmm.lib'),
                              'VCALinkTool',
                              'VCManifestTool',
                              'VCXDCMakeTool',
                              'VCBscMakeTool',
                              'VCFxCopTool',
                              'VCAppVerifierTool',
                              'VCWebDeploymentTool',
                              'VCPostBuildEventTool',
                          ],
                          ConfigurationType='1')


p.AddConfig('Debug|Win32',
            InheritedPropertySheets=[
                '$(SolutionDir)../build/common.vsprops',
                '$(SolutionDir)../build/debug.vsprops',
                '../../tools/build/win/precompiled_wtl.vsprops',
                ('$(SolutionDir)../'
                 + 'third_party/libxml/build/using_libxml.vsprops'),
                ('$(SolutionDir)../'
                 + 'third_party/libxslt/build/using_libxslt.vsprops'),
                '../../tools/build/win/unit_test.vsprops',
                '../../tools/build/win/ui_test.vsprops',
                '$(SolutionDir)../skia/using_skia.vsprops',
                '$(SolutionDir)../testing/using_gtest.vsprops',
            ])

p.AddConfig('Release|Win32',
            InheritedPropertySheets=[
                '$(SolutionDir)../build/common.vsprops',
                '$(SolutionDir)../build/release.vsprops',
                ('$(SolutionDir)../'
                 + 'third_party/libxml/build/using_libxml.vsprops'),
                ('$(SolutionDir)../'
                 + 'third_party/libxslt/build/using_libxslt.vsprops'),
                '../../tools/build/win/unit_test.vsprops',
                '../../tools/build/win/ui_test.vsprops',
                '$(SolutionDir)../skia/using_skia.vsprops',
                '$(SolutionDir)../testing/using_gtest.vsprops',
            ])

p.AddFileConfig('../../tools/build/win/precompiled_wtl.cc',
                'Debug|Win32',
                tools=[
                    MSVSTool('VCCLCompilerTool',
                             UsePrecompiledHeader='1'),
                ])