# Copyright 2014 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("//build/config/features.gni") # May need to make this a build arg, keep the name for now to match gyp cld2_table_size = 2 core_files = [ "src/internal/cld2tablesummary.h", "src/internal/cldutil.cc", "src/internal/cldutil.h", "src/internal/cldutil_shared.cc", "src/internal/cldutil_shared.h", "src/internal/compact_lang_det.cc", "src/internal/compact_lang_det_hint_code.cc", "src/internal/compact_lang_det_hint_code.h", "src/internal/compact_lang_det_impl.cc", "src/internal/compact_lang_det_impl.h", "src/internal/debug.h", "src/internal/debug_empty.cc", "src/internal/fixunicodevalue.cc", "src/internal/fixunicodevalue.h", "src/internal/generated_distinct_bi_0.cc", "src/internal/generated_entities.cc", "src/internal/generated_language.cc", "src/internal/generated_language.h", "src/internal/generated_ulscript.cc", "src/internal/generated_ulscript.h", "src/internal/getonescriptspan.cc", "src/internal/getonescriptspan.h", "src/internal/integral_types.h", "src/internal/lang_script.cc", "src/internal/lang_script.h", "src/internal/langspan.h", "src/internal/offsetmap.cc", "src/internal/offsetmap.h", "src/internal/port.h", "src/internal/scoreonescriptspan.cc", "src/internal/scoreonescriptspan.h", "src/internal/stringpiece.h", "src/internal/tote.cc", "src/internal/tote.h", "src/internal/utf8prop_lettermarkscriptnum.h", "src/internal/utf8repl_lettermarklower.h", "src/internal/utf8scannot_lettermarkspecial.h", "src/internal/utf8statetable.cc", "src/internal/utf8statetable.h", "src/public/compact_lang_det.h", "src/public/encodings.h", ] data_loader_files = [ "src/internal/cld2_dynamic_data.h", "src/internal/cld2_dynamic_data.cc", "src/internal/cld2_dynamic_data_loader.h", "src/internal/cld2_dynamic_data_loader.cc", ] source_set("cld2_data") { sources = [ "src/internal/cld2_generated_cjk_compatible.cc", "src/internal/cld2_generated_deltaoctachrome.cc", "src/internal/cld2_generated_distinctoctachrome.cc", "src/internal/cld_generated_cjk_delta_bi_4.cc", "src/internal/cld_generated_cjk_uni_prop_80.cc", "src/internal/cld_generated_score_quad_octa_2.cc", ] if (cld2_table_size == 0) { sources += [ "src/internal/cld2_generated_quadchrome_16.cc" ] } else if (cld2_table_size == 2) { sources += [ "src/internal/cld2_generated_quadchrome_2.cc" ] } include_dirs = [ "src/internal", "src/public", ] configs -= [ "//build/config/compiler:chromium_code" ] configs += [ "//build/config/compiler:no_chromium_code" ] if (is_win) { cflags = [ "/wd4267" ] # size_t -> int conversion. } } static_library("cld2_static") { sources = core_files include_dirs = [ "src/internal", "src/public", ] deps = [ ":cld2_data" ] configs -= [ "//build/config/compiler:chromium_code" ] configs += [ "//build/config/compiler:no_chromium_code" ] if (is_win) { cflags = [ "/wd4267" ] # size_t -> int conversion. } } # Meta-target for convenience; dependents don't need to know if this if CLD2 # is in dynamic or static configuration. group("cld_2") { if (cld2_data_source == "static") { deps = [ ":cld2_static" ] } else { deps = [ ":cld2_dynamic" ] } } config("cld2_dynamic_mode_config") { defines = [ "CLD2_DYNAMIC_MODE" ] } static_library("cld2_dynamic") { sources = core_files + data_loader_files all_dependent_configs = [ ":cld2_dynamic_mode_config" ] include_dirs = [ "src/internal", "src/public", ] configs -= [ "//build/config/compiler:chromium_code" ] configs += [ "//build/config/compiler:no_chromium_code" ] if (is_win) { cflags = [ "/wd4267" ] # size_t -> int conversion. } } # Does not build on Windows. if (!is_win) { executable("cld_2_dynamic_data_tool") { sources = [ "src/internal/cld2_dynamic_data_extractor.h", "src/internal/cld2_dynamic_data_extractor.cc", "src/internal/cld2_dynamic_data_tool.cc", ] include_dirs = [ "src/internal", "src/public", ] deps = [ ":cld2_data", ":cld2_dynamic" ] configs -= [ "//build/config/compiler:chromium_code" ] configs += [ "//build/config/compiler:no_chromium_code" ] if (is_win) { cflags = [ "/wd4267" ] # size_t -> int conversion. } } }