< prev index next >

modules/javafx.web/src/main/native/Source/ThirdParty/icu/CMakeLists.txt

Print this page















   1 if (WIN32)
   2     set(ICU_JAVA_TOOLUTIL_LIB sicutu)
   3     set(ICU_JAVA_ICU_STUBDATA_LIB_NAME icudt)
   4     set(ICU_JAVA_ICU_DATA_LIB_NAME sicudt)
   5     if (MSVC)
   6         if(NOT CMAKE_CL_64)
   7             add_definitions(-DSIZEOF_VOID_P=4)
   8             add_compile_options(-DU_I18N_IMPLEMENTATION=1 -DHAVE_DLOPEN=0 -DU_HAVE_ATOMIC=1 -DU_HAVE_MMAP=0 -DU_HAVE_DIRENT_H=0 -DU_HAVE_POPEN=0 -DU_STATIC_IMPLEMENTATION -DU_RELEASE=1 -D_CRT_SECURE_NO_DEPRECATE  -DU_ATTRIBUTE_DEPRECATED= -DWIN32 -DCYGWINMSVC -DU_COMMON_IMPLEMENTATION -DU_TOOLUTIL_IMPLEMENTATION)
   9         else()
  10             add_compile_options(-DU_I18N_IMPLEMENTATION=1 -DHAVE_DLOPEN=0 -DU_HAVE_ATOMIC=1 -DU_HAVE_MMAP=0 -DU_HAVE_DIRENT_H=0 -DU_HAVE_POPEN=0 -DU_HAVE_TZNAME=0 -DU_STATIC_IMPLEMENTATION -DU_RELEASE=1 -D_CRT_SECURE_NO_DEPRECATE  -DU_ATTRIBUTE_DEPRECATED= -DWIN32 -DCYGWINMSVC -DU_COMMON_IMPLEMENTATION -DU_TOOLUTIL_IMPLEMENTATION)
  11         endif()
  12         add_compile_options(/GR)
  13     endif ()
  14 elseif (UNIX)
  15     set(ICU_JAVA_TOOLUTIL_LIB icutu)
  16     set(ICU_JAVA_ICU_STUBDATA_LIB_NAME icudata)
  17     set(ICU_JAVA_ICU_DATA_LIB_NAME ${ICU_JAVA_ICU_STUBDATA_LIB_NAME})
  18     add_definitions("-D_REENTRANT -DU_HAVE_ELF_H=1 -DU_ENABLE_DYLOAD=0 -DU_HAVE_ATOMIC=1 -DU_ATTRIBUTE_DEPRECATED= -DU_COMMON_IMPLEMENTATION -DU_I18N_IMPLEMENTATION -DU_IO_IMPLEMENTATION -DU_TOOLUTIL_IMPLEMENTATION")
  19     add_compile_options($<$<COMPILE_LANGUAGE:CXX>:-frtti> $<$<COMPILE_LANGUAGE:C>:-std=c99>)
















  20 elseif (APPLE)
  21     set(ICU_JAVA_TOOLUTIL_LIB icutu)
  22     add_definitions("-DU_ATTRIBUTE_DEPRECATED= -DU_ENABLE_DYLOAD=0 -DU_HAVE_ATOMIC=1 -DU_COMMON_IMPLEMENTATION -DU_I18N_IMPLEMENTATION -DU_LAYOUT_IMPLEMENTATION -DU_LAYOUTEX_IMPLEMENTATION -DU_IO_IMPLEMENTATION -DU_TOOLUTIL_IMPLEMENTATION -DT_CTEST_IMPLEMENTATION -frtti")
  23     set(ICU_JAVA_ICU_STUBDATA_LIB_NAME icudata)
  24     set(ICU_JAVA_ICU_DATA_LIB_NAME ${ICU_JAVA_ICU_STUBDATA_LIB_NAME})
  25     add_compile_options($<$<COMPILE_LANGUAGE:CXX>:-frtti> $<$<COMPILE_LANGUAGE:C>:-std=c99>)



































































































































































































































































































































































































































































































































































  26 endif ()




  27 
  28 set(ICU_JAVA_ICU_STUBDATA_LIB icustubdata)
  29 
  30 add_subdirectory(java/stubdata)
  31 add_subdirectory(java/i18n)
  32 add_subdirectory(java/common)
  33 add_subdirectory(java/tools)
  34 add_subdirectory(java/data)
   1 # http://userguide.icu-project.org/howtouseicu#TOC-C-With-Your-Own-Build-System
   2 set(ICU_PUBLIC_DEFINES
   3     "U_ENABLE_DYLOAD=0"
   4     "U_STATIC_IMPLEMENTATION"
   5     "ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_STATIC"
   6 )
   7 
   8 set(ICU_PRIVATE_DEFINES
   9     "HAVE_DLOPEN=0"
  10     "UCONFIG_ONLY_HTML_CONVERSION=1"
  11     "U_CHARSET_IS_UTF8=1"
  12 )
  13 
  14 if (WIN32)
  15     list(APPEND ICU_PUBLIC_DEFINES
  16         "UCHAR_TYPE=wchar_t"
  17     )
  18 else ()
  19     list(APPEND ICU_PUBLIC_DEFINES
  20         "UCHAR_TYPE=uint16_t"
  21     )
  22 endif ()
  23 
  24 set(ICU_PUBLIC_INCLUDES
  25     "source/common"
  26     "source/i18n"
  27 )
  28 
  29 # Enable C++ RTTI, WebCore disables it by default.
  30 if (UNIX)
  31     set(ICU_PRIVATE_COMPILER_OPTIONS
  32         "$<$<COMPILE_LANGUAGE:CXX>:-frtti>"
  33     )
  34 else ()
  35     set(ICU_PRIVATE_COMPILER_OPTIONS
  36         "/GR"
  37     )
  38 endif ()
  39 
  40 # Suppress warnings
  41 if (WIN32)
  42     list(APPEND ICU_PRIVATE_COMPILER_OPTIONS
  43       "/wd4005"  # Macro redefinition.
  44       "/wd4068"  # Unknown pragmas.
  45       "/wd4245"  # Signed/unsigned mismatch
  46       "/wd4267"  # Conversion from size_t on 64-bits.
  47       "/utf-8"   # ICU source files are in UTF-8.
  48     )
  49 elseif (APPLE)
  50     list(APPEND ICU_PRIVATE_COMPILER_OPTIONS
  51       "-Wno-undef"
  52       "-Wno-parentheses"
  53 
  54       "-Wno-unused-function"
  55       "-Wno-cast-align"
  56 
  57       # ICU uses its own deprecated functions.
  58       "-Wno-deprecated-declarations"
  59     )
  60 else ()
  61     list(APPEND ICU_PRIVATE_COMPILER_OPTIONS
  62       "-Wno-undef"
  63       "-Wno-unused-function"
  64       "-Wno-sign-compare"
  65       "-Wno-extra"
  66       "-Wno-suggest-attribute=format"
  67       # ICU uses its own deprecated functions.
  68       "-Wno-deprecated-declarations"
  69     )
  70 endif ()
  71 
  72 ###### common BEGIN ####
  73 set(ICU_COMMON_SOURCES
  74     source/common/appendable.cpp
  75     source/common/bmpset.cpp
  76     source/common/brkeng.cpp
  77     source/common/brkiter.cpp
  78     source/common/bytesinkutil.cpp
  79     source/common/bytestream.cpp
  80     source/common/bytestriebuilder.cpp
  81     source/common/bytestrie.cpp
  82     source/common/bytestrieiterator.cpp
  83     source/common/caniter.cpp
  84     source/common/chariter.cpp
  85     source/common/charstr.cpp
  86     source/common/cmemory.cpp
  87     source/common/cstr.cpp
  88     source/common/cstring.cpp
  89     source/common/cwchar.cpp
  90     source/common/dictbe.cpp
  91     source/common/dictionarydata.cpp
  92     source/common/dtintrv.cpp
  93     source/common/edits.cpp
  94     source/common/errorcode.cpp
  95     source/common/filteredbrk.cpp
  96     source/common/filterednormalizer2.cpp
  97     source/common/icudataver.cpp
  98     source/common/icuplug.cpp
  99     source/common/listformatter.cpp
 100     source/common/loadednormalizer2impl.cpp
 101     source/common/locavailable.cpp
 102     source/common/locbased.cpp
 103     source/common/locdispnames.cpp
 104     source/common/locdspnm.cpp
 105     source/common/locid.cpp
 106     source/common/loclikely.cpp
 107     source/common/locmap.cpp
 108     source/common/locresdata.cpp
 109     source/common/locutil.cpp
 110     source/common/messagepattern.cpp
 111     source/common/normalizer2.cpp
 112     source/common/normalizer2impl.cpp
 113     source/common/normlzr.cpp
 114     source/common/parsepos.cpp
 115     source/common/patternprops.cpp
 116     source/common/pluralmap.cpp
 117     source/common/propname.cpp
 118     source/common/propsvec.cpp
 119     source/common/punycode.cpp
 120     source/common/putil.cpp
 121     source/common/rbbi_cache.cpp
 122     source/common/rbbi.cpp
 123     source/common/rbbidata.cpp
 124     source/common/rbbinode.cpp
 125     source/common/rbbirb.cpp
 126     source/common/rbbiscan.cpp
 127     source/common/rbbisetb.cpp
 128     source/common/rbbistbl.cpp
 129     source/common/rbbitblb.cpp
 130     source/common/resbund_cnv.cpp
 131     source/common/resbund.cpp
 132     source/common/resource.cpp
 133     source/common/ruleiter.cpp
 134     source/common/schriter.cpp
 135     source/common/serv.cpp
 136     source/common/servlk.cpp
 137     source/common/servlkf.cpp
 138     source/common/servls.cpp
 139     source/common/servnotf.cpp
 140     source/common/servrbf.cpp
 141     source/common/servslkf.cpp
 142     source/common/sharedobject.cpp
 143     source/common/simpleformatter.cpp
 144     source/common/static_unicode_sets.cpp
 145     source/common/stringpiece.cpp
 146     source/common/stringtriebuilder.cpp
 147     source/common/uarrsort.cpp
 148     source/common/ubidi.cpp
 149     source/common/ubidiln.cpp
 150     source/common/ubidi_props.cpp
 151     source/common/ubiditransform.cpp
 152     source/common/ubidiwrt.cpp
 153     source/common/ubrk.cpp
 154     source/common/ucase.cpp
 155     source/common/ucasemap.cpp
 156     source/common/ucasemap_titlecase_brkiter.cpp
 157     source/common/ucat.cpp
 158     source/common/uchar.cpp
 159     source/common/ucharstriebuilder.cpp
 160     source/common/ucharstrie.cpp
 161     source/common/ucharstrieiterator.cpp
 162     source/common/uchriter.cpp
 163     source/common/ucln_cmn.cpp
 164     source/common/ucmndata.cpp
 165     source/common/ucnv2022.cpp
 166     source/common/ucnv_bld.cpp
 167     source/common/ucnvbocu.cpp
 168     source/common/ucnv_cb.cpp
 169     source/common/ucnv_cnv.cpp
 170     source/common/ucnv.cpp
 171     source/common/ucnv_ct.cpp
 172     source/common/ucnvdisp.cpp
 173     source/common/ucnv_err.cpp
 174     source/common/ucnv_ext.cpp
 175     source/common/ucnvhz.cpp
 176     source/common/ucnv_io.cpp
 177     source/common/ucnvisci.cpp
 178     source/common/ucnvlat1.cpp
 179     source/common/ucnv_lmb.cpp
 180     source/common/ucnvmbcs.cpp
 181     source/common/ucnvscsu.cpp
 182     source/common/ucnvsel.cpp
 183     source/common/ucnv_set.cpp
 184     source/common/ucnv_u16.cpp
 185     source/common/ucnv_u32.cpp
 186     source/common/ucnv_u7.cpp
 187     source/common/ucnv_u8.cpp
 188     source/common/ucol_swp.cpp
 189     source/common/ucurr.cpp
 190     source/common/udata.cpp
 191     source/common/udatamem.cpp
 192     source/common/udataswp.cpp
 193     source/common/uenum.cpp
 194     source/common/uhash.cpp
 195     source/common/uhash_us.cpp
 196     source/common/uidna.cpp
 197     source/common/uinit.cpp
 198     source/common/uinvchar.cpp
 199     source/common/uiter.cpp
 200     source/common/ulist.cpp
 201     source/common/ulistformatter.cpp
 202     source/common/uloc.cpp
 203     source/common/uloc_keytype.cpp
 204     source/common/uloc_tag.cpp
 205     source/common/umapfile.cpp
 206     source/common/umath.cpp
 207     source/common/umutex.cpp
 208     source/common/unames.cpp
 209     source/common/unifiedcache.cpp
 210     source/common/unifilt.cpp
 211     source/common/unifunct.cpp
 212     source/common/uniset_closure.cpp
 213     source/common/uniset.cpp
 214     source/common/uniset_props.cpp
 215     source/common/unisetspan.cpp
 216     source/common/unistr_case.cpp
 217     source/common/unistr_case_locale.cpp
 218     source/common/unistr_cnv.cpp
 219     source/common/unistr.cpp
 220     source/common/unistr_props.cpp
 221     source/common/unistr_titlecase_brkiter.cpp
 222     source/common/unormcmp.cpp
 223     source/common/unorm.cpp
 224     source/common/uobject.cpp
 225     source/common/uprops.cpp
 226     source/common/uresbund.cpp
 227     source/common/ures_cnv.cpp
 228     source/common/uresdata.cpp
 229     source/common/usc_impl.cpp
 230     source/common/uscript.cpp
 231     source/common/uscript_props.cpp
 232     source/common/uset.cpp
 233     source/common/usetiter.cpp
 234     source/common/uset_props.cpp
 235     source/common/ushape.cpp
 236     source/common/usprep.cpp
 237     source/common/ustack.cpp
 238     source/common/ustrcase.cpp
 239     source/common/ustrcase_locale.cpp
 240     source/common/ustr_cnv.cpp
 241     source/common/ustrenum.cpp
 242     source/common/ustrfmt.cpp
 243     source/common/ustring.cpp
 244     source/common/ustr_titlecase_brkiter.cpp
 245     source/common/ustrtrns.cpp
 246     source/common/ustr_wcs.cpp
 247     source/common/utext.cpp
 248     source/common/utf_impl.cpp
 249     source/common/util.cpp
 250     source/common/util_props.cpp
 251     source/common/utrace.cpp
 252     source/common/utrie2_builder.cpp
 253     source/common/utrie2.cpp
 254     source/common/utrie.cpp
 255     source/common/uts46.cpp
 256     source/common/utypes.cpp
 257     source/common/uvector.cpp
 258     source/common/uvectr32.cpp
 259     source/common/uvectr64.cpp
 260     source/common/wintz.cpp
 261 )
 262 
 263 add_library(icuuc STATIC ${ICU_COMMON_SOURCES})
 264 target_include_directories(icuuc
 265     PUBLIC ${ICU_PUBLIC_INCLUDES}
 266 )
 267 target_compile_definitions(icuuc
 268     PRIVATE "U_COMMON_IMPLEMENTATION"
 269     PRIVATE ${ICU_PRIVATE_DEFINES}
 270     PUBLIC ${ICU_PUBLIC_DEFINES}
 271 )
 272 target_compile_options(icuuc
 273     PRIVATE ${ICU_PRIVATE_COMPILER_OPTIONS}
 274 )
 275 ###### common END ####
 276 
 277 ###### i18n BEGIN ####
 278 set(ICU_I18N_SOURCES
 279     source/i18n/alphaindex.cpp
 280     source/i18n/anytrans.cpp
 281     source/i18n/astro.cpp
 282     source/i18n/basictz.cpp
 283     source/i18n/bocsu.cpp
 284     source/i18n/brktrans.cpp
 285     source/i18n/buddhcal.cpp
 286     source/i18n/calendar.cpp
 287     source/i18n/casetrn.cpp
 288     source/i18n/cecal.cpp
 289     source/i18n/chnsecal.cpp
 290     source/i18n/choicfmt.cpp
 291     source/i18n/coleitr.cpp
 292     source/i18n/coll.cpp
 293     source/i18n/collation.cpp
 294     source/i18n/collationbuilder.cpp
 295     source/i18n/collationcompare.cpp
 296     source/i18n/collationdata.cpp
 297     source/i18n/collationdatabuilder.cpp
 298     source/i18n/collationdatareader.cpp
 299     source/i18n/collationdatawriter.cpp
 300     source/i18n/collationfastlatin.cpp
 301     source/i18n/collationfastlatinbuilder.cpp
 302     source/i18n/collationfcd.cpp
 303     source/i18n/collationiterator.cpp
 304     source/i18n/collationkeys.cpp
 305     source/i18n/collationroot.cpp
 306     source/i18n/collationrootelements.cpp
 307     source/i18n/collationruleparser.cpp
 308     source/i18n/collationsets.cpp
 309     source/i18n/collationsettings.cpp
 310     source/i18n/collationtailoring.cpp
 311     source/i18n/collationweights.cpp
 312     source/i18n/compactdecimalformat.cpp
 313     source/i18n/coptccal.cpp
 314     source/i18n/cpdtrans.cpp
 315     source/i18n/csdetect.cpp
 316     source/i18n/csmatch.cpp
 317     source/i18n/csr2022.cpp
 318     source/i18n/csrecog.cpp
 319     source/i18n/csrmbcs.cpp
 320     source/i18n/csrsbcs.cpp
 321     source/i18n/csrucode.cpp
 322     source/i18n/csrutf8.cpp
 323     source/i18n/curramt.cpp
 324     source/i18n/currfmt.cpp
 325     source/i18n/currpinf.cpp
 326     source/i18n/currunit.cpp
 327     source/i18n/dangical.cpp
 328     source/i18n/datefmt.cpp
 329     source/i18n/dayperiodrules.cpp
 330     source/i18n/dcfmtsym.cpp
 331     source/i18n/decContext.cpp
 332     source/i18n/decNumber.cpp
 333     source/i18n/decimfmt.cpp
 334     source/i18n/double-conversion-bignum-dtoa.cpp
 335     source/i18n/double-conversion-bignum.cpp
 336     source/i18n/double-conversion-cached-powers.cpp
 337     source/i18n/double-conversion-diy-fp.cpp
 338     source/i18n/double-conversion-fast-dtoa.cpp
 339     source/i18n/double-conversion-strtod.cpp
 340     source/i18n/double-conversion.cpp
 341     source/i18n/dtfmtsym.cpp
 342     source/i18n/dtitvfmt.cpp
 343     source/i18n/dtitvinf.cpp
 344     source/i18n/dtptngen.cpp
 345     source/i18n/dtrule.cpp
 346     source/i18n/esctrn.cpp
 347     source/i18n/ethpccal.cpp
 348     source/i18n/fmtable.cpp
 349     source/i18n/fmtable_cnv.cpp
 350     source/i18n/format.cpp
 351     source/i18n/fphdlimp.cpp
 352     source/i18n/fpositer.cpp
 353     source/i18n/funcrepl.cpp
 354     source/i18n/gender.cpp
 355     source/i18n/gregocal.cpp
 356     source/i18n/gregoimp.cpp
 357     source/i18n/hebrwcal.cpp
 358     source/i18n/indiancal.cpp
 359     source/i18n/inputext.cpp
 360     source/i18n/islamcal.cpp
 361     source/i18n/japancal.cpp
 362     source/i18n/measfmt.cpp
 363     source/i18n/measunit.cpp
 364     source/i18n/measure.cpp
 365     source/i18n/msgfmt.cpp
 366     source/i18n/name2uni.cpp
 367     source/i18n/nfrs.cpp
 368     source/i18n/nfrule.cpp
 369     source/i18n/nfsubs.cpp
 370     source/i18n/nortrans.cpp
 371     source/i18n/nounit.cpp
 372     source/i18n/nultrans.cpp
 373     source/i18n/number_affixutils.cpp
 374     source/i18n/number_asformat.cpp
 375     source/i18n/number_capi.cpp
 376     source/i18n/number_compact.cpp
 377     source/i18n/number_currencysymbols.cpp
 378     source/i18n/number_decimalquantity.cpp
 379     source/i18n/number_decimfmtprops.cpp
 380     source/i18n/number_fluent.cpp
 381     source/i18n/number_formatimpl.cpp
 382     source/i18n/number_grouping.cpp
 383     source/i18n/number_integerwidth.cpp
 384     source/i18n/number_longnames.cpp
 385     source/i18n/number_mapper.cpp
 386     source/i18n/number_modifiers.cpp
 387     source/i18n/number_multiplier.cpp
 388     source/i18n/number_notation.cpp
 389     source/i18n/number_padding.cpp
 390     source/i18n/number_patternmodifier.cpp
 391     source/i18n/number_patternstring.cpp
 392     source/i18n/number_rounding.cpp
 393     source/i18n/number_scientific.cpp
 394     source/i18n/number_skeletons.cpp
 395     source/i18n/number_stringbuilder.cpp
 396     source/i18n/number_utils.cpp
 397     source/i18n/numfmt.cpp
 398     source/i18n/numparse_affixes.cpp
 399     source/i18n/numparse_compositions.cpp
 400     source/i18n/numparse_currency.cpp
 401     source/i18n/numparse_decimal.cpp
 402     source/i18n/numparse_impl.cpp
 403     source/i18n/numparse_parsednumber.cpp
 404     source/i18n/numparse_scientific.cpp
 405     source/i18n/numparse_stringsegment.cpp
 406     source/i18n/numparse_symbols.cpp
 407     source/i18n/numparse_validators.cpp
 408     source/i18n/numsys.cpp
 409     source/i18n/olsontz.cpp
 410     source/i18n/persncal.cpp
 411     source/i18n/plurfmt.cpp
 412     source/i18n/plurrule.cpp
 413     source/i18n/quant.cpp
 414     source/i18n/quantityformatter.cpp
 415     source/i18n/rbnf.cpp
 416     source/i18n/rbt.cpp
 417     source/i18n/rbt_data.cpp
 418     source/i18n/rbt_pars.cpp
 419     source/i18n/rbt_rule.cpp
 420     source/i18n/rbt_set.cpp
 421     source/i18n/rbtz.cpp
 422     source/i18n/regexcmp.cpp
 423     source/i18n/regeximp.cpp
 424     source/i18n/regexst.cpp
 425     source/i18n/regextxt.cpp
 426     source/i18n/region.cpp
 427     source/i18n/reldatefmt.cpp
 428     source/i18n/reldtfmt.cpp
 429     source/i18n/rematch.cpp
 430     source/i18n/remtrans.cpp
 431     source/i18n/repattrn.cpp
 432     source/i18n/rulebasedcollator.cpp
 433     source/i18n/scientificnumberformatter.cpp
 434     source/i18n/scriptset.cpp
 435     source/i18n/search.cpp
 436     source/i18n/selfmt.cpp
 437     source/i18n/sharedbreakiterator.cpp
 438     source/i18n/simpletz.cpp
 439     source/i18n/smpdtfmt.cpp
 440     source/i18n/smpdtfst.cpp
 441     source/i18n/sortkey.cpp
 442     source/i18n/standardplural.cpp
 443     source/i18n/strmatch.cpp
 444     source/i18n/strrepl.cpp
 445     source/i18n/stsearch.cpp
 446     source/i18n/taiwncal.cpp
 447     source/i18n/timezone.cpp
 448     source/i18n/titletrn.cpp
 449     source/i18n/tmunit.cpp
 450     source/i18n/tmutamt.cpp
 451     source/i18n/tmutfmt.cpp
 452     source/i18n/tolowtrn.cpp
 453     source/i18n/toupptrn.cpp
 454     source/i18n/translit.cpp
 455     source/i18n/transreg.cpp
 456     source/i18n/tridpars.cpp
 457     source/i18n/tzfmt.cpp
 458     source/i18n/tzgnames.cpp
 459     source/i18n/tznames.cpp
 460     source/i18n/tznames_impl.cpp
 461     source/i18n/tzrule.cpp
 462     source/i18n/tztrans.cpp
 463     source/i18n/ucal.cpp
 464     source/i18n/ucln_in.cpp
 465     source/i18n/ucol.cpp
 466     source/i18n/ucol_res.cpp
 467     source/i18n/ucol_sit.cpp
 468     source/i18n/ucoleitr.cpp
 469     source/i18n/ucsdet.cpp
 470     source/i18n/udat.cpp
 471     source/i18n/udateintervalformat.cpp
 472     source/i18n/udatpg.cpp
 473     source/i18n/ufieldpositer.cpp
 474     source/i18n/uitercollationiterator.cpp
 475     source/i18n/ulocdata.cpp
 476     source/i18n/umsg.cpp
 477     source/i18n/unesctrn.cpp
 478     source/i18n/uni2name.cpp
 479     source/i18n/unum.cpp
 480     source/i18n/unumsys.cpp
 481     source/i18n/upluralrules.cpp
 482     source/i18n/uregex.cpp
 483     source/i18n/uregexc.cpp
 484     source/i18n/uregion.cpp
 485     source/i18n/usearch.cpp
 486     source/i18n/uspoof.cpp
 487     source/i18n/uspoof_build.cpp
 488     source/i18n/uspoof_conf.cpp
 489     source/i18n/uspoof_impl.cpp
 490     source/i18n/utf16collationiterator.cpp
 491     source/i18n/utf8collationiterator.cpp
 492     source/i18n/utmscale.cpp
 493     source/i18n/utrans.cpp
 494     source/i18n/vtzone.cpp
 495     source/i18n/vzone.cpp
 496     source/i18n/windtfmt.cpp
 497     source/i18n/winnmfmt.cpp
 498     source/i18n/wintzimpl.cpp
 499     source/i18n/zonemeta.cpp
 500     source/i18n/zrule.cpp
 501     source/i18n/ztrans.cpp
 502 )
 503 
 504 add_library(icui18n STATIC ${ICU_I18N_SOURCES})
 505 target_include_directories(icui18n
 506     PUBLIC ${ICU_PUBLIC_INCLUDES}
 507 )
 508 target_compile_definitions(icui18n
 509     PRIVATE "LIB_ICU_I18N_STATIC"
 510     PRIVATE "U_I18N_IMPLEMENTATION"
 511     PRIVATE ${ICU_PRIVATE_DEFINES}
 512     PUBLIC ${ICU_PUBLIC_DEFINES}
 513 )
 514 target_compile_options(icui18n
 515     PRIVATE ${ICU_PRIVATE_COMPILER_OPTIONS}
 516 )
 517 target_link_libraries(icui18n PUBLIC icuuc)
 518 ###### i18n END ####
 519 
 520 ###### tools BEGIN ####
 521 set(ICU_TOOLSUTILS_SOURCES
 522     source/tools/toolutil/filestrm.cpp
 523     source/tools/toolutil/package.cpp
 524     source/tools/toolutil/pkgitems.cpp
 525     source/tools/toolutil/swapimpl.cpp
 526     source/tools/toolutil/toolutil.cpp
 527     source/tools/toolutil/unewdata.cpp
 528     source/tools/toolutil/ucm.cpp
 529     source/tools/toolutil/ucmstate.cpp
 530     source/tools/toolutil/uparse.cpp
 531     source/tools/toolutil/ucbuf.cpp
 532     source/tools/toolutil/writesrc.cpp
 533     source/tools/toolutil/pkg_genc.cpp
 534     source/tools/toolutil/pkg_gencmn.cpp
 535 
 536     java/data/data_as_asm.cpp
 537           source/stubdata/stubdata.cpp
 538 )
 539 
 540 add_executable(data_as_asm ${ICU_TOOLSUTILS_SOURCES})
 541 target_include_directories(data_as_asm
 542     PRIVATE ${ICU_PUBLIC_INCLUDES}
 543     PRIVATE "source/tools/toolutil"
 544 )
 545 target_compile_definitions(data_as_asm
 546     PRIVATE "U_TOOLUTIL_IMPLEMENTATION"
 547 )
 548 target_compile_options(data_as_asm
 549     PRIVATE ${ICU_PRIVATE_COMPILER_OPTIONS}
 550 )
 551 target_link_libraries(data_as_asm icuuc icui18n)
 552 ###### tools END ####
 553 
 554 ###### data BEGIN ####
 555 file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/icu/data")
 556 file(GLOB ICU_DATA_ZIP_FILE "java/data/icudt*l.zip")
 557 
 558 get_filename_component(ICU_DATA_FILE_NAME ${ICU_DATA_ZIP_FILE} NAME)
 559 # Get just file name without extension
 560 string(REGEX REPLACE ".zip" "" ICU_DATA_FILE_NAME ${ICU_DATA_FILE_NAME})
 561 
 562 # Use jar instead of unzip, it will be helpful to get rid of cygwin dependency
 563 find_package(Java)
 564 add_custom_command(
 565     COMMAND ${Java_JAR_EXECUTABLE} xf "${ICU_DATA_ZIP_FILE}"
 566     WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/icu/data"
 567     OUTPUT "${CMAKE_BINARY_DIR}/icu/data/${ICU_DATA_FILE_NAME}.dat"
 568     VERBATIM
 569 )
 570 
 571 if (MSVC)
 572     # On Windows, data_as_asm could generates .obj file directly.
 573     set(ICU_DATA_SYMBOL_FILE "${CMAKE_BINARY_DIR}/icu/data/${ICU_DATA_FILE_NAME}_dat.obj")
 574     set_source_files_properties(${ICU_DATA_SYMBOL_FILE} PROPERTIES EXTERNAL_OBJECT TRUE GENERATED TRUE)
 575 else ()
 576     set(ICU_DATA_SYMBOL_FILE "${CMAKE_BINARY_DIR}/icu/data/${ICU_DATA_FILE_NAME}_dat.S")
 577     enable_language(ASM)
 578 endif ()
 579 
 580 # Get data entry point symbol name
 581 string(LENGTH ${ICU_DATA_FILE_NAME} ICU_DATA_FILE_LENGTH)
 582 math(EXPR ICU_DATA_ENTRY_POINT_LENGTH "${ICU_DATA_FILE_LENGTH} - 1")
 583 string(SUBSTRING ${ICU_DATA_FILE_NAME} 0 ${ICU_DATA_ENTRY_POINT_LENGTH} ICU_DATA_ENTRY_POINT)
 584 
 585 if (APPLE)
 586     set(ICU_DATA_ASSEMBLER_TYPE gcc-darwin)
 587 elseif (UNIX)
 588     set(ICU_DATA_ASSEMBLER_TYPE gcc)
 589 else ()
 590     set(ICU_DATA_ASSEMBLER_TYPE masm)
 591 endif ()
 592 
 593 add_custom_command(
 594     COMMAND $<TARGET_FILE:data_as_asm> ${ICU_DATA_ASSEMBLER_TYPE} "${CMAKE_BINARY_DIR}/icu/data/${ICU_DATA_FILE_NAME}.dat" ${CMAKE_BINARY_DIR}/icu/data ${ICU_DATA_ENTRY_POINT}
 595     OUTPUT ${ICU_DATA_SYMBOL_FILE}
 596     DEPENDS "${CMAKE_BINARY_DIR}/icu/data/${ICU_DATA_FILE_NAME}.dat"
 597     VERBATIM
 598 )
 599 
 600 if (APPLE)
 601     set(CMAKE_ASM_FLAGS "-mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}")
 602 endif ()
 603 add_library(icudata STATIC ${ICU_DATA_SYMBOL_FILE})
 604 # Be explicit about the which linker to use, otherwise fails on Windows
 605 # when creating icudata.lib.
 606 set_target_properties(icudata PROPERTIES LINKER_LANGUAGE C)
 607 
 608 ###### data END ####






< prev index next >