Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / third_party / cld_2 / BUILD.gn
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.
4
5 import("//build/config/features.gni")
6
7 # May need to make this a build arg, keep the name for now to match gyp
8 cld2_table_size = 2
9
10 core_files = [
11   "src/internal/cld2tablesummary.h",
12   "src/internal/cldutil.cc",
13   "src/internal/cldutil.h",
14   "src/internal/cldutil_shared.cc",
15   "src/internal/cldutil_shared.h",
16   "src/internal/compact_lang_det.cc",
17   "src/internal/compact_lang_det_hint_code.cc",
18   "src/internal/compact_lang_det_hint_code.h",
19   "src/internal/compact_lang_det_impl.cc",
20   "src/internal/compact_lang_det_impl.h",
21   "src/internal/debug.h",
22   "src/internal/debug_empty.cc",
23   "src/internal/fixunicodevalue.cc",
24   "src/internal/fixunicodevalue.h",
25   "src/internal/generated_distinct_bi_0.cc",
26   "src/internal/generated_entities.cc",
27   "src/internal/generated_language.cc",
28   "src/internal/generated_language.h",
29   "src/internal/generated_ulscript.cc",
30   "src/internal/generated_ulscript.h",
31   "src/internal/getonescriptspan.cc",
32   "src/internal/getonescriptspan.h",
33   "src/internal/integral_types.h",
34   "src/internal/lang_script.cc",
35   "src/internal/lang_script.h",
36   "src/internal/langspan.h",
37   "src/internal/offsetmap.cc",
38   "src/internal/offsetmap.h",
39   "src/internal/port.h",
40   "src/internal/scoreonescriptspan.cc",
41   "src/internal/scoreonescriptspan.h",
42   "src/internal/stringpiece.h",
43   "src/internal/tote.cc",
44   "src/internal/tote.h",
45   "src/internal/utf8prop_lettermarkscriptnum.h",
46   "src/internal/utf8repl_lettermarklower.h",
47   "src/internal/utf8scannot_lettermarkspecial.h",
48   "src/internal/utf8statetable.cc",
49   "src/internal/utf8statetable.h",
50   "src/public/compact_lang_det.h",
51   "src/public/encodings.h",
52 ]
53
54 data_files = [
55   "src/internal/cld2_generated_cjk_compatible.cc",
56   "src/internal/cld2_generated_deltaoctachrome0122.cc",
57   "src/internal/cld2_generated_distinctoctachrome0122.cc",
58   "src/internal/cld_generated_cjk_delta_bi_4.cc",
59   "src/internal/cld_generated_cjk_uni_prop_80.cc",
60   "src/internal/cld_generated_score_quad_octa_0122_2.cc",
61   "src/internal/generated_distinct_bi_0.cc",
62 ]
63
64 if (cld2_table_size == 0) {
65   data_files += [ "src/internal/cld2_generated_quadchrome0122_16.cc" ]
66 } else if (cld2_table_size == 1) {
67   data_files += [ "src/internal/cld2_generated_quadchrome0122_19.cc" ]
68 } else if (cld2_table_size == 2) {
69   data_files += [ "src/internal/cld2_generated_quadchrome0122_2.cc" ]
70 }
71
72 data_loader_files = [
73   "src/internal/cld2_dynamic_data.h",
74   "src/internal/cld2_dynamic_data.cc",
75   "src/internal/cld2_dynamic_data_loader.h",
76   "src/internal/cld2_dynamic_data_loader.cc",
77 ]
78
79 source_set("cld2_data") {
80   sources = data_files
81   include_dirs = [
82     "src/internal",
83     "src/public",
84   ]
85
86   configs -= [ "//build/config/compiler:chromium_code" ]
87   configs += [ "//build/config/compiler:no_chromium_code" ]
88
89   if (is_win) {
90     cflags = [ "/wd4267" ]  # size_t -> int conversion.
91   }
92 }
93
94 static_library("cld2_static") {
95   sources = core_files
96   include_dirs = [
97     "src/internal",
98     "src/public",
99   ]
100
101   deps = [ ":cld2_data" ]
102   configs -= [ "//build/config/compiler:chromium_code" ]
103   configs += [ "//build/config/compiler:no_chromium_code" ]
104
105   if (is_win) {
106     cflags = [ "/wd4267" ]  # size_t -> int conversion.
107   }
108 }
109
110 # Meta-target for convenience; dependents don't need to know if this if CLD2
111 # is in dynamic or static configuration.
112 group("cld_2") {
113   if (cld2_data_source == "static") {
114     deps = [ ":cld2_static" ]
115   } else {
116     deps = [ ":cld2_dynamic" ]
117   }
118 }
119
120 config("cld2_dynamic_mode_config") {
121   defines = [ "CLD2_DYNAMIC_MODE" ]
122 }
123
124 static_library("cld2_dynamic") {
125   sources = core_files + data_loader_files
126   all_dependent_configs = [ ":cld2_dynamic_mode_config" ]
127   include_dirs = [
128     "src/internal",
129     "src/public",
130   ]
131
132   configs -= [ "//build/config/compiler:chromium_code" ]
133   configs += [ "//build/config/compiler:no_chromium_code" ]
134
135   if (is_win) {
136     cflags = [ "/wd4267" ]  # size_t -> int conversion.
137   }
138 }
139
140 # Does not build on Windows.
141 if (!is_win) {
142   executable("cld_2_dynamic_data_tool") {
143     sources = [
144       "src/internal/cld2_dynamic_data_extractor.h",
145       "src/internal/cld2_dynamic_data_extractor.cc",
146       "src/internal/cld2_dynamic_data_tool.cc",
147     ]
148
149     include_dirs = [
150       "src/internal",
151       "src/public",
152     ]
153
154     deps = [ ":cld2_data", ":cld2_dynamic" ]
155
156     configs -= [ "//build/config/compiler:chromium_code" ]
157     configs += [ "//build/config/compiler:no_chromium_code" ]
158
159     if (is_win) {
160       cflags = [ "/wd4267" ]  # size_t -> int conversion.
161     }
162   }
163 }