Use bucket parameter in GetIfChanged for support binaries.
[chromium-blink-merge.git] / third_party / cld_2 / BUILD.gn
blobbede93a63c44008985f7c5c332a99109042f9d37
1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
5 import("//build/config/features.gni")
7 gypi_values = exec_script("//build/gypi_to_gn.py",
8                           [ rebase_path("cld_2.gyp") ],
9                           "scope",
10                           [ "cld_2.gyp" ])
12 # This variable controls which dependency is resolved by the pass-through
13 # target 'cld2_platform_impl', and allows the embedder to choose which
14 # kind of CLD2 support is required at build time:
16 # - If the value is 'static', then the cld2_platform_impl target will depend
17 #   upon the cld2_static target
18 # - If the value is 'dynamic', then the cld2_platform_impl target will
19 #   depend upon the cld2_dynamic target.
21 # High-level targets for Chromium unit tests hard-code a dependency upon
22 # cld2_static because doing so makes sense for use cases that aren't
23 # affected by the loading of language detection data; however, most other
24 # targets (e.g. the final executables and interactive UI tests) should be
25 # linked against whatever the embedder needs.
27 # Maintainers:
28 # This value may be reasonably tweaked on a per-platform basis.
29 # Don't forget to update this file as well to match:
30 #   components/translate/content/browser/browser_cld_utils.cc
31 #   components/translate/content/renderer/renderer_cld_utils.cc
32 cld2_platform_support = "static"
34 cld2_table_size = 2
36 source_set("cld2_data") {
37   sources = gypi_values.cld2_data_sources
38   if (cld2_table_size == 0) {
39     sources += gypi_values.cld2_data_smallest_sources
40   } else if (cld2_table_size == 2) {
41     sources += gypi_values.cld2_data_largest_sources
42   }
44   include_dirs = [
45     "src/internal",
46     "src/public",
47   ]
49   configs -= [ "//build/config/compiler:chromium_code" ]
50   configs += [ "//build/config/compiler:no_chromium_code" ]
52   if (is_win) {
53     cflags = [ "/wd4267" ]  # size_t -> int conversion.
54   }
57 # As in the corresponding gyp file, this just builds the core interfaces for
58 # CLD2. You must still declare a dependency on a specific data set, either
59 # cld2_dynamic or cld2_static.
60 source_set("cld_2") {
61   sources = gypi_values.cld2_core_sources
62   include_dirs = [
63     "src/internal",
64     "src/public",
65   ]
67   configs -= [ "//build/config/compiler:chromium_code" ]
68   configs += [ "//build/config/compiler:no_chromium_code" ]
70   if (is_win) {
71     cflags = [ "/wd4267" ]  # size_t -> int conversion.
72   }
75 source_set("cld2_platform_impl") {
76   deps = []
77   if (cld2_platform_support == "static") {
78     deps += [ ":cld2_static" ]
79   } else if (cld2_platform_support == "dynamic") {
80     deps += [ ":cld2_dynamic" ]
81   }
84 static_library("cld2_static") {
85   sources = gypi_values.cld2_core_impl_sources
86   include_dirs = [
87     "src/internal",
88     "src/public",
89   ]
91   deps = [
92     ":cld_2",
93     ":cld2_data",
94   ]
95   configs -= [ "//build/config/compiler:chromium_code" ]
96   configs += [ "//build/config/compiler:no_chromium_code" ]
98   if (is_win) {
99     cflags = [ "/wd4267" ]  # size_t -> int conversion.
100   }
103 config("cld2_dynamic_mode_config") {
104   defines = [ "CLD2_DYNAMIC_MODE" ]
107 static_library("cld2_dynamic") {
108   sources = gypi_values.cld2_core_sources + gypi_values.cld2_core_impl_sources +
109             gypi_values.cld2_dynamic_data_loader_sources
110   include_dirs = [
111     "src/internal",
112     "src/public",
113   ]
115   configs -= [ "//build/config/compiler:chromium_code" ]
116   configs += [
117     "//build/config/compiler:no_chromium_code",
118     ":cld2_dynamic_mode_config",
119   ]
121   if (is_win) {
122     cflags = [ "/wd4267" ]  # size_t -> int conversion.
123   }
126 # Does not build on Windows.
127 if (!is_win) {
128   executable("cld_2_dynamic_data_tool") {
129     sources = [
130       "src/internal/cld2_dynamic_data_extractor.h",
131       "src/internal/cld2_dynamic_data_extractor.cc",
132       "src/internal/cld2_dynamic_data_tool.cc",
133     ]
135     include_dirs = [
136       "src/internal",
137       "src/public",
138     ]
140     deps = [
141       ":cld2_data",
142       ":cld2_dynamic",
143     ]
145     configs -= [ "//build/config/compiler:chromium_code" ]
146     configs += [
147       "//build/config/compiler:no_chromium_code",
148       ":cld2_dynamic_mode_config",
149     ]
151     if (is_win) {
152       cflags = [ "/wd4267" ]  # size_t -> int conversion.
153     }
154   }