Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(84)

Unified Diff: third_party/cld_2/cld_2.gyp

Issue 461633002: Refactor language detection logic to allow non-static CLD data sources. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Make some of the harness factory methods private Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/cld_2/BUILD.gn ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/cld_2/cld_2.gyp
diff --git a/third_party/cld_2/cld_2.gyp b/third_party/cld_2/cld_2.gyp
index 6cda4028eadb91ad20f661c0e17b19b7023e001f..a27f7a40e9aaaa4884b4b42468cc76bd30ddb3de 100644
--- a/third_party/cld_2/cld_2.gyp
+++ b/third_party/cld_2/cld_2.gyp
@@ -22,51 +22,76 @@
],
},
'variables': {
+ # This variable controls which dependency is resolved by the pass-through
+ # target 'cld2_platform_impl', and allows the embedder to choose which
+ # kind of CLD2 support is required at build time:
+ #
+ # - If the value is 'static', then the cld2_platform_impl target will depend
+ # upon the cld2_static target
+ # - If the value is 'dynamic', then the cld2_platform_impl target will
+ # depend upon the cld2_dynamic target.
+ #
+ # High-level targets for Chromium unit tests hard-code a dependency upon
+ # cld2_static because doing so makes sense for use cases that aren't
+ # affected by the loading of language detection data; however, most other
+ # targets (e.g. the final executables and interactive UI tests) should be
+ # linked against whatever the embedder needs.
+ #
+ # Maintainers:
+ # This value may be reasonably tweaked in a 'conditions' block below on a
+ # per-platform basis. Don't forget to update the expectations in
+ # components/translate/content/browser/browser_cld_utils.cc as well, to
+ # match whatever is done here.
+ 'cld2_platform_support%': 'static',
+
# These sources need to be included in both static and dynamic builds as
# well as the dynamic data tool.
'cld2_core_sources': [
'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',
],
+ 'cld2_core_impl_sources': [
+ # Compilation is dependent upon flags.
+ 'src/internal/cldutil.cc',
+ 'src/internal/cldutil_shared.cc',
+ 'src/internal/compact_lang_det.cc',
+ 'src/internal/compact_lang_det_hint_code.cc',
+ 'src/internal/compact_lang_det_impl.cc',
+ 'src/internal/debug_empty.cc',
+ 'src/internal/fixunicodevalue.cc',
+ 'src/internal/generated_distinct_bi_0.cc',
+ 'src/internal/generated_entities.cc',
+ 'src/internal/generated_language.cc',
+ 'src/internal/generated_ulscript.cc',
+ 'src/internal/getonescriptspan.cc',
+ 'src/internal/lang_script.cc',
+ 'src/internal/offsetmap.cc',
+ 'src/internal/scoreonescriptspan.cc',
+ 'src/internal/tote.cc',
+ 'src/internal/utf8statetable.cc',
+ ],
'cld2_dynamic_data_loader_sources': [
'src/internal/cld2_dynamic_data.h',
'src/internal/cld2_dynamic_data.cc',
@@ -104,26 +129,35 @@
'sources': [
# Note: sources list duplicated in GN build.
'<@(cld2_core_sources)',
+ '<@(cld2_core_impl_sources)',
'<@(cld2_data_sources)',
'<@(cld2_dynamic_data_loader_sources)',
'src/internal/cld2_dynamic_data_extractor.h',
'src/internal/cld2_dynamic_data_extractor.cc',
'src/internal/cld2_dynamic_data_tool.cc',
],
+ 'defines': ['CLD2_DYNAMIC_MODE'],
},
{
# GN version: //third_party/cld_2
+ # Depending upon cld_2 will provide core headers and function definitions,
+ # but no data. You must also depend on one of the following two targets:
+ # cld2_static - for a statically-linked data set built into the executable
+ # cld2_dynamic - for a dynamic data set loaded at runtime
'target_name': 'cld_2',
'type': 'static_library',
- 'sources': [],
+ 'sources': ['<@(cld2_core_sources)'],
'dependencies': [],
- 'conditions': [
- ['cld2_data_source=="static"',
- {'dependencies': ['cld2_static']},
- {'dependencies': ['cld2_dynamic']}
- ],
- ],
+ },
+
+ # As described above in the comments for cld2_platform_support, this is a
+ # passthrough target that allows high-level targets to depend upon the same
+ # CLD support as desired by the embedder.
+ {
+ 'target_name': 'cld2_platform_impl',
+ 'type': 'none',
+ 'dependencies': ['cld2_<(cld2_platform_support)'],
},
{
@@ -136,6 +170,7 @@
],
'sources': [
'<@(cld2_core_sources)',
+ '<@(cld2_core_impl_sources)',
'<@(cld2_data_sources)',
],
},
@@ -150,12 +185,10 @@
],
'sources': [
'<@(cld2_core_sources)',
+ '<@(cld2_core_impl_sources)',
'<@(cld2_dynamic_data_loader_sources)',
],
'defines': ['CLD2_DYNAMIC_MODE'],
- 'all_dependent_settings': {
- 'defines': ['CLD2_DYNAMIC_MODE'],
- },
},
],
}
« no previous file with comments | « third_party/cld_2/BUILD.gn ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698