| # Copyright 2010 Google Inc. |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| # |
| # Based on Chromium's icu.gyp. |
| |
| { |
| 'variables': { |
| 'use_system_icu%': 0, |
| }, |
| 'target_defaults': { |
| 'direct_dependent_settings': { |
| 'defines': [ |
| # Tell ICU to not insert |using namespace icu;| into its headers, |
| # so that chrome's source explicitly has to use |icu::|. |
| 'U_USING_ICU_NAMESPACE=0', |
| ], |
| }, |
| }, |
| 'conditions': [ |
| ['use_system_icu==0', { |
| 'target_defaults': { |
| 'defines': [ |
| 'U_USING_ICU_NAMESPACE=0', |
| ], |
| 'conditions': [ |
| ['component=="static_library"', { |
| 'defines': [ |
| 'U_STATIC_IMPLEMENTATION', |
| ], |
| }], |
| ], |
| 'include_dirs': [ |
| 'source/common', |
| 'source/i18n', |
| 'genfiles/arch/<(OS)/common/include', |
| ], |
| 'msvs_disabled_warnings': [ 4005, 4018, 4099, 4133, 4355, 4996 ], |
| }, |
| 'targets': [ |
| { |
| 'target_name': 'icudata', |
| 'type': '<(library)', |
| 'sources': [ |
| # These are hand-generated, but will do for now. The linux |
| # version is an identical copy of the (mac) icudt46l_dat.S file, |
| # modulo removal of the .private_extern and .const directives and |
| # with no leading underscore on the icudt46_dat symbol. |
| 'genfiles/arch/linux/common/icudata/icudt46l_dat.S', |
| 'genfiles/arch/mac/common/icudata/icudt46l_dat.s', |
| ], |
| 'conditions': [ |
| [ 'OS == "win"', { |
| 'link_settings': { |
| 'libraries': [ |
| '<(DEPTH)/third_party/icu/genfiles/arch/win/ia32/icudata/icudt46.lib', |
| ], |
| }, |
| 'sources': [ |
| # In order to pass our icudt46.lib dependency on to dependent |
| # targets, we need to have at least one source file. |
| 'genfiles/arch/win/ia32/icudata/empty.c', |
| ], |
| }], |
| [ 'OS == "win" or OS == "mac"', { |
| 'sources!': ['genfiles/arch/linux/common/icudata/icudt46l_dat.S'], |
| }], |
| [ 'OS != "mac"', { |
| 'sources!': ['genfiles/arch/mac/common/icudata/icudt46l_dat.s'], |
| }], |
| [ 'library != "shared_library"', { |
| 'defines': [ |
| 'U_HIDE_DATA_SYMBOL', |
| ], |
| }], |
| ], |
| }, |
| { |
| 'target_name': 'icuuc', |
| 'type': '<(component)', |
| 'sources': [ |
| 'source/common/bmpset.cpp', |
| 'source/common/brkeng.cpp', |
| 'source/common/brkiter.cpp', |
| 'source/common/bytestream.cpp', |
| 'source/common/caniter.cpp', |
| 'source/common/chariter.cpp', |
| 'source/common/charstr.cpp', |
| 'source/common/cmemory.c', |
| 'source/common/cstring.c', |
| 'source/common/cwchar.c', |
| 'source/common/dictbe.cpp', |
| 'source/common/dtintrv.cpp', |
| 'source/common/errorcode.cpp', |
| 'source/common/filterednormalizer2.cpp', |
| 'source/common/icudataver.c', |
| 'source/common/icuplug.c', |
| 'source/common/locavailable.cpp', |
| 'source/common/locbased.cpp', |
| 'source/common/locdispnames.cpp', |
| 'source/common/locid.cpp', |
| 'source/common/loclikely.cpp', |
| 'source/common/locmap.c', |
| 'source/common/locresdata.cpp', |
| 'source/common/locutil.cpp', |
| 'source/common/mutex.cpp', |
| 'source/common/normalizer2.cpp', |
| 'source/common/normalizer2impl.cpp', |
| 'source/common/normlzr.cpp', |
| 'source/common/parsepos.cpp', |
| 'source/common/propname.cpp', |
| 'source/common/propsvec.c', |
| 'source/common/punycode.c', |
| 'source/common/putil.c', |
| 'source/common/rbbi.cpp', |
| 'source/common/rbbidata.cpp', |
| 'source/common/rbbinode.cpp', |
| 'source/common/rbbirb.cpp', |
| 'source/common/rbbiscan.cpp', |
| 'source/common/rbbisetb.cpp', |
| 'source/common/rbbistbl.cpp', |
| 'source/common/rbbitblb.cpp', |
| 'source/common/resbund.cpp', |
| 'source/common/resbund_cnv.cpp', |
| 'source/common/ruleiter.cpp', |
| 'source/common/schriter.cpp', |
| 'source/common/serv.cpp', |
| 'source/common/servlk.cpp', |
| 'source/common/servlkf.cpp', |
| 'source/common/servls.cpp', |
| 'source/common/servnotf.cpp', |
| 'source/common/servrbf.cpp', |
| 'source/common/servslkf.cpp', |
| 'source/common/stringpiece.cpp', |
| 'source/common/triedict.cpp', |
| 'source/common/uarrsort.c', |
| 'source/common/ubidi.c', |
| 'source/common/ubidi_props.c', |
| 'source/common/ubidiln.c', |
| 'source/common/ubidiwrt.c', |
| 'source/common/ubrk.cpp', |
| 'source/common/ucase.c', |
| 'source/common/ucasemap.c', |
| 'source/common/ucat.c', |
| 'source/common/uchar.c', |
| 'source/common/uchriter.cpp', |
| 'source/common/ucln_cmn.c', |
| 'source/common/ucmndata.c', |
| 'source/common/ucnv.c', |
| 'source/common/ucnv2022.c', |
| 'source/common/ucnv_bld.c', |
| 'source/common/ucnv_cb.c', |
| 'source/common/ucnv_cnv.c', |
| 'source/common/ucnv_err.c', |
| 'source/common/ucnv_ext.c', |
| 'source/common/ucnv_io.c', |
| 'source/common/ucnv_lmb.c', |
| 'source/common/ucnv_set.c', |
| 'source/common/ucnv_u16.c', |
| 'source/common/ucnv_u32.c', |
| 'source/common/ucnv_u7.c', |
| 'source/common/ucnv_u8.c', |
| 'source/common/ucnvbocu.c', |
| 'source/common/ucnvdisp.c', |
| 'source/common/ucnvhz.c', |
| 'source/common/ucnvisci.c', |
| 'source/common/ucnvlat1.c', |
| 'source/common/ucnvmbcs.c', |
| 'source/common/ucnvscsu.c', |
| 'source/common/ucnvsel.cpp', |
| 'source/common/ucol_swp.cpp', |
| 'source/common/udata.cpp', |
| 'source/common/udatamem.c', |
| 'source/common/udataswp.c', |
| 'source/common/uenum.c', |
| 'source/common/uhash.c', |
| 'source/common/uhash_us.cpp', |
| 'source/common/uidna.cpp', |
| 'source/common/uinit.c', |
| 'source/common/uinvchar.c', |
| 'source/common/uiter.cpp', |
| 'source/common/ulist.c', |
| 'source/common/uloc.c', |
| 'source/common/uloc_tag.c', |
| 'source/common/umapfile.c', |
| 'source/common/umath.c', |
| 'source/common/umutex.c', |
| 'source/common/unames.c', |
| 'source/common/unifilt.cpp', |
| 'source/common/unifunct.cpp', |
| 'source/common/uniset.cpp', |
| 'source/common/uniset_props.cpp', |
| 'source/common/unisetspan.cpp', |
| 'source/common/unistr.cpp', |
| 'source/common/unistr_case.cpp', |
| 'source/common/unistr_cnv.cpp', |
| 'source/common/unistr_props.cpp', |
| 'source/common/unorm.cpp', |
| 'source/common/unorm_it.c', |
| 'source/common/unormcmp.cpp', |
| 'source/common/uobject.cpp', |
| 'source/common/uprops.cpp', |
| 'source/common/ures_cnv.c', |
| 'source/common/uresbund.c', |
| 'source/common/uresdata.c', |
| 'source/common/usc_impl.c', |
| 'source/common/uscript.c', |
| 'source/common/uset.cpp', |
| 'source/common/uset_props.cpp', |
| 'source/common/usetiter.cpp', |
| 'source/common/ushape.c', |
| 'source/common/usprep.cpp', |
| 'source/common/ustack.cpp', |
| 'source/common/ustr_cnv.c', |
| 'source/common/ustr_wcs.c', |
| 'source/common/ustrcase.c', |
| 'source/common/ustrenum.cpp', |
| 'source/common/ustrfmt.c', |
| 'source/common/ustring.c', |
| 'source/common/ustrtrns.c', |
| 'source/common/utext.cpp', |
| 'source/common/utf_impl.c', |
| 'source/common/util.cpp', |
| 'source/common/util_props.cpp', |
| 'source/common/utrace.c', |
| 'source/common/utrie.c', |
| 'source/common/utrie2.cpp', |
| 'source/common/utrie2_builder.c', |
| 'source/common/uts46.cpp', |
| 'source/common/utypes.c', |
| 'source/common/uvector.cpp', |
| 'source/common/uvectr32.cpp', |
| 'source/common/uvectr64.cpp', |
| 'source/common/wintz.c', |
| ], |
| 'defines': [ |
| 'U_COMMON_IMPLEMENTATION', |
| ], |
| 'dependencies': [ |
| 'icudata', |
| ], |
| 'direct_dependent_settings': { |
| 'include_dirs': [ |
| 'source/common', |
| 'genfiles/arch/<(OS)/common/include', |
| ], |
| 'conditions': [ |
| [ 'component=="static_library"', { |
| 'defines': [ |
| 'U_STATIC_IMPLEMENTATION', |
| ], |
| }], |
| # This is needed due to an icu header that contains |
| # inline code with an unused variable. |
| [ 'os_posix == 1 and OS != "mac"', { |
| 'conditions': [ |
| ['<(gcc_version) < 46', { |
| 'cflags': ['-Wno-unused-variable'] |
| }, { |
| 'cflags': ['-Wno-unused-but-set-variable'] |
| }], |
| ], |
| }], |
| ], |
| }, |
| 'conditions': [ |
| [ 'os_posix == 1 and OS != "mac"', { |
| 'cflags': [ |
| # Since ICU wants to internally use its own deprecated APIs, |
| # don't complain about it. |
| '-Wno-deprecated-declarations', |
| '-Wno-unused-function', |
| ], |
| 'cflags_cc': [ |
| '-frtti', |
| ], |
| }], |
| ['OS == "mac"', { |
| 'xcode_settings': { |
| 'GCC_ENABLE_CPP_RTTI': 'YES', # -frtti |
| } |
| }], |
| ['OS == "win"', { |
| 'msvs_settings': { |
| 'VCCLCompilerTool': { |
| 'RuntimeTypeInfo': 'true', |
| }, |
| } |
| }], |
| ['clang==1', { |
| 'cflags': [ |
| '-Wno-dynamic-class-memaccess', |
| '-Wno-switch', |
| '-Wno-tautological-compare', |
| ], |
| 'xcode_settings': { |
| 'WARNING_CFLAGS': [ |
| '-Wno-deprecated-declarations', |
| '-Wno-dynamic-class-memaccess', |
| '-Wno-switch', |
| '-Wno-tautological-compare', |
| ], |
| }, |
| }], |
| ], |
| }, |
| ], |
| }, { # use_system_icu != 0 |
| 'targets': [ |
| { |
| 'target_name': 'system_icu', |
| 'type': 'none', |
| 'direct_dependent_settings': { |
| 'defines': [ |
| 'USE_SYSTEM_ICU', |
| ], |
| 'cflags+': [ |
| '<!@(icu-config --cppflags-searchpath)' |
| ], |
| }, |
| 'link_settings': { |
| 'ldflags': [ |
| '<!@(icu-config --ldflags)', |
| ], |
| 'libraries': [ |
| '<!@(icu-config --ldflags-libsonly)', |
| ], |
| }, |
| }, |
| { |
| 'target_name': 'icudata', |
| 'type': 'none', |
| 'dependencies': ['system_icu'], |
| 'export_dependent_settings': ['system_icu'], |
| }, |
| { |
| 'target_name': 'icuuc', |
| 'type': 'none', |
| 'dependencies': ['system_icu'], |
| 'export_dependent_settings': ['system_icu'], |
| }, |
| ], |
| }], |
| ], |
| } |