summaryrefslogtreecommitdiffstats
path: root/build/SConscript.googleurl
blob: 11ca7c7cff72d3c97add93c870f7c1bb8d958bfc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
# 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 = [
        '$ICU38_DIR/public/common',
        '$ICU38_DIR/public/i18n',
        '#/..',
    ],
)

env.Append(
    CPPDEFINES = [
        'U_STATIC_IMPLEMENTATION',
    ],
)

if env['PLATFORM'] == 'win32':
  env.Append(
      CCFLAGS = [
          '/TP',
      ],
  )

lib_input_files = [
    'gurl.cc',
    'url_canon_etc.cc',
    'url_canon_fileurl.cc',
    'url_canon_host.cc',
    'url_canon_icu.cc',
    'url_canon_internal.cc',
    'url_canon_ip.cc',
    'url_canon_mailtourl.cc',
    'url_canon_path.cc',
    'url_canon_pathurl.cc',
    'url_canon_query.cc',
    'url_canon_relative.cc',
    'url_canon_stdurl.cc',
    'url_parse.cc',
    'url_parse_file.cc',
    'url_util.cc',
]

def BuildObjectFiles(environ, input_files):
  obj_files = []
  for input_file in input_files:
    source = '../googleurl/src/' + input_file
    target = '$TARGET_ROOT/googleurl/' + input_file[:input_file.find('.cc')]
    obj_files.append(environ.StaticObject(source = source, target = target))
  return obj_files

env.ChromeStaticLibrary('$TARGET_ROOT/googleurl/googleurl',
                        BuildObjectFiles(env, lib_input_files))

env_tests = env.Clone()

env_tests.Append(
    CPPPATH = [
        '$GTEST_DIR/include',
    ],
    CPPDEFINES = [
        'UNIT_TEST',
    ],
    LIBS = [
        'googleurl',
        'base',
        env_tests['ICU_LIBS'],  # TODO(sgk):  '$ICU_LIBS' when scons is fixed
        'gtest',
    ]
)

test_files = [
   'gurl_unittest.cc',
   'url_canon_unittest.cc',
   'url_parse_unittest.cc',
   'url_util_unittest.cc',
]

test_obj_files = BuildObjectFiles(env_tests, test_files)
# The version of gtest that googleurl uses provides a main() function; ours
# doesn't so include our own main function.
test_obj_files.append(env_tests.StaticObject(source = '../base/run_all_unittests.cc',
    target = '$TARGET_ROOT/googleurl/run_all_unittests'))

gurl_unittests = env_tests.ChromeTestProgram(
    '$TARGET_ROOT/googleurl/googleurl_unittests', test_obj_files)

installed_gurl_unittests = env.Install('$TARGET_ROOT', gurl_unittests)

env.Alias('googleurl', installed_gurl_unittests)