# 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.

__doc__ = """
Configuration for building base.sln.
"""

Import('env')

env = env.Clone()

env.Tool('MSVSNew')

env.ChromeMSVSFolder('net dependencies',
               name='dependencies',
               entries = [
                   '$BASE_DIR/build/debug_message.vcproj',
                   '$BASE_DIR/build/base.vcproj',
                   '$BZIP2_DIR/bzip2.vcproj',
                   '$MODP_B64_DIR/modp_b64.vcproj',
                   '$ZLIB_DIR/zlib.vcproj',
                   '$ICU38_DIR/build/icu.vcproj',
                   '$ICU38_DIR/build/icudt.vcproj',
                   '$TESTING_DIR/gtest.vcproj',
                   '$GOOGLEURL_DIR/build/googleurl.vcproj',
                   '$SDCH_DIR/sdch.vcproj',
               ],
               guid='{A04F65DF-D422-4E8F-B918-29EBA839363E}')

env.ChromeMSVSFolder('net tools',
               name='tools',
               entries = [
                   '$NET_DIR/build/dump_cache.vcproj',
                   #'build/stress_cache.vcproj',
                   '$NET_DIR/build/crash_cache.vcproj',
                   '$NET_DIR/build/tld_cleanup.vcproj',
               ],
               guid='{E7D78B1F-F7D3-47CB-BF51-3957C646B406}')


solution = env.ChromeMSVSSolution('net.sln',
                            dest='$CHROME_SRC_DIR/net/net.sln',
                            entries = [
                                'net dependencies',
                                '$GOOGLEURL_DIR/build/googleurl.vcproj',
                                '$BASE_DIR/build/base.vcproj',
                                '$BASE_DIR/build/debug_message.vcproj',
                                '$ICU38_DIR/build/icu.vcproj',
                                '$ICU38_DIR/build/icudt.vcproj',
                                '$NET_DIR/build/net.vcproj',
                                '$NET_DIR/build/net_unittests.vcproj',
                                '$NET_DIR/build/tld_cleanup.vcproj',
                                'net tools',
                                '$ZLIB_DIR/zlib.vcproj',
                                '$BZIP2_DIR/bzip2.vcproj',
                                '$MODP_B64_DIR/modp_b64.vcproj',
                                '$NET_DIR/build/net_perftests.vcproj',
                                '$NET_DIR/build/crash_cache.vcproj',
                                '$NET_DIR/build/stress_cache.vcproj',
                                '$TESTING_DIR/gtest.vcproj',
                                '$SDCH_DIR/sdch.vcproj',
                                '$NET_DIR/build/dump_cache.vcproj',
                                '$NET_DIR/build/net_resources.vcproj',

                            ],
                            variants = [
                                'Debug|Win32',
                                'Release|Win32',
                            ])
