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") ],
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.
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"
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
49 configs -= [ "//build/config/compiler:chromium_code" ]
50 configs += [ "//build/config/compiler:no_chromium_code" ]
53 # As in the corresponding gyp file, this just builds the core interfaces for
54 # CLD2. You must still declare a dependency on a specific data set, either
55 # cld2_dynamic or cld2_static.
57 sources = gypi_values.cld2_core_sources
63 configs -= [ "//build/config/compiler:chromium_code" ]
64 configs += [ "//build/config/compiler:no_chromium_code" ]
67 source_set("cld2_platform_impl") {
69 if (cld2_platform_support == "static") {
70 deps += [ ":cld2_static" ]
71 } else if (cld2_platform_support == "dynamic") {
72 deps += [ ":cld2_dynamic" ]
76 static_library("cld2_static") {
77 sources = gypi_values.cld2_core_impl_sources
87 configs -= [ "//build/config/compiler:chromium_code" ]
88 configs += [ "//build/config/compiler:no_chromium_code" ]
91 config("cld2_dynamic_mode_config") {
92 defines = [ "CLD2_DYNAMIC_MODE" ]
95 static_library("cld2_dynamic") {
96 sources = gypi_values.cld2_core_sources + gypi_values.cld2_core_impl_sources +
97 gypi_values.cld2_dynamic_data_loader_sources
103 configs -= [ "//build/config/compiler:chromium_code" ]
105 ":cld2_dynamic_mode_config",
106 "//build/config/compiler:no_chromium_code",
110 # Does not build on Windows.
112 executable("cld_2_dynamic_data_tool") {
114 "src/internal/cld2_dynamic_data_extractor.cc",
115 "src/internal/cld2_dynamic_data_extractor.h",
116 "src/internal/cld2_dynamic_data_tool.cc",
129 configs -= [ "//build/config/compiler:chromium_code" ]
131 ":cld2_dynamic_mode_config",
132 "//build/config/compiler:no_chromium_code",