CMAKE_MINIMUM_REQUIRED( VERSION 3.8 ) PROJECT( ICU4C CXX C ) INCLUDE( CMakeDependentOption ) INCLUDE( FindDoxygen ) INCLUDE( ${CMAKE_CURRENT_SOURCE_DIR}/../../../../CMake/CheckAtomic.cmake ) INCLUDE( ${CMAKE_CURRENT_SOURCE_DIR}/../../../../CMake/CheckHeader.cmake ) INCLUDE( ${CMAKE_CURRENT_SOURCE_DIR}/../../../../CMake/CheckFunction.cmake ) ### # Options ### OPTION( ICU_BUILD_SHARED "Build ICU as a set of shared libraries?" ON ) OPTION( ICU_BUILD_STATIC "Build ICU as a set of static libraries?" ON ) OPTION( ICU_BUILD_MONOLITH "Build all ICU components into a shared or static library?" OFF ) OPTION( ICU_BUILD_IO "Build the IO component of ICU?" ON ) OPTION( ICU_BUILD_STUBDATA "Build the data used to bootstrap the tools?" ON ) OPTION( ICU_BUILD_EXTRAS "Build ICU extras." ON ) OPTION( ICU_BUILD_DATA "Build the default data used by ICU?" ON ) OPTION( ICU_BUILD_TOOLS "Build the tools associated with generating data for ICU?" ON ) # Extras CMAKE_DEPENDENT_OPTION( ICU_BUILD_UCONV "Build uconv?" ON "ICU_BUILD_EXTRAS" OFF ) # Tools CMAKE_DEPENDENT_OPTION( ICU_BUILD_CTESTFW "Build ctestfw?" ON "ICU_BUILD_TOOLS" OFF ) CMAKE_DEPENDENT_OPTION( ICU_BUILD_ESCAPESRC "Build escapesrc?" ON "ICU_BUILD_TOOLS" OFF ) CMAKE_DEPENDENT_OPTION( ICU_BUILD_GENBRK "Build genbrk?" ON "ICU_BUILD_TOOLS" OFF ) CMAKE_DEPENDENT_OPTION( ICU_BUILD_GENCCODE "Build genccode?" ON "ICU_BUILD_TOOLS" OFF ) CMAKE_DEPENDENT_OPTION( ICU_BUILD_GENCFU "Build gencfu?" ON "ICU_BUILD_TOOLS" OFF ) CMAKE_DEPENDENT_OPTION( ICU_BUILD_GENCMN "Build gencmn?" ON "ICU_BUILD_TOOLS" OFF ) CMAKE_DEPENDENT_OPTION( ICU_BUILD_GENCNVAL "Build gencnval?" ON "ICU_BUILD_TOOLS" OFF ) CMAKE_DEPENDENT_OPTION( ICU_BUILD_GENCOLUSB "Build gencolusb?" ON "ICU_BUILD_TOOLS" OFF ) CMAKE_DEPENDENT_OPTION( ICU_BUILD_GENDICT "Build gendict?" ON "ICU_BUILD_TOOLS" OFF ) CMAKE_DEPENDENT_OPTION( ICU_BUILD_GENNORM2 "Build gennorm2?" ON "ICU_BUILD_TOOLS" OFF ) CMAKE_DEPENDENT_OPTION( ICU_BUILD_GENRB "Build genrb?" ON "ICU_BUILD_TOOLS" OFF ) CMAKE_DEPENDENT_OPTION( ICU_BUILD_GENREN "Build genren?" ON "ICU_BUILD_TOOLS" OFF ) CMAKE_DEPENDENT_OPTION( ICU_BUILD_GENSPREP "Build gensprep?" ON "ICU_BUILD_TOOLS" OFF ) CMAKE_DEPENDENT_OPTION( ICU_BUILD_GENTEST "Build gentest?" ON "ICU_BUILD_TOOLS" OFF ) CMAKE_DEPENDENT_OPTION( ICU_BUILD_ICUINFO "Build icuinfo?" ON "ICU_BUILD_TOOLS" OFF ) CMAKE_DEPENDENT_OPTION( ICU_BUILD_ICUPKG "Build icupkg?" ON "ICU_BUILD_TOOLS" OFF ) CMAKE_DEPENDENT_OPTION( ICU_BUILD_ICUSWAP "Build icuswap?" ON "ICU_BUILD_TOOLS" OFF ) CMAKE_DEPENDENT_OPTION( ICU_BUILD_MAKECONV "Build makeconv?" ON "ICU_BUILD_TOOLS" OFF ) CMAKE_DEPENDENT_OPTION( ICU_BUILD_PKGDATA "Build pkgdata?" ON "ICU_BUILD_TOOLS" OFF ) CMAKE_DEPENDENT_OPTION( ICU_BUILD_TZCODE "Build tzcode?" ON "ICU_BUILD_TOOLS" OFF ) ### # Sanity check ### IF( NOT ${ICU_BUILD_SHARED} AND NOT ${ICU_BUILD_STATIC} ) MESSAGE( FATAL_ERROR "At least one type of build must be selected (static, shared)." ) ENDIF( NOT ${ICU_BUILD_SHARED} AND NOT ${ICU_BUILD_STATIC} ) IF( ICU_BUILD_TOOLS AND NOT ICU_BUILD_STUBDATA ) MESSAGE( WARNING "Building ICU stubdata, as it is required to bootstrap the tools." ) SET( ICU_BUILD_STUBDATA TRUE FORCE ) ENDIF( ICU_BUILD_TOOLS AND NOT ICU_BUILD_STUBDATA ) ### # Requirements ### SET( CMAKE_C_STANDARD 99 ) SET( CMAKE_C_STANDARD_REQUIRED TRUE ) ### # Check values ### CheckHeaderExists( "" HAVE_ELF ) CheckFunctionExists( "strtod_l( (char*)0, (char**)0, locale_t() )" "" HAVE_STRTOD_L ) ### # Variables ### SET( ICU_PATH ${CMAKE_CURRENT_SOURCE_DIR}/icu ) SET( ICU_SOURCE_PATH ${ICU_PATH}/source ) SET( ICU_EXTRAS_PATH ${ICU_SOURCE_PATH}/extra ) SET( ICU_STUBDATA_PATH ${ICU_SOURCE_PATH}/stubdata ) SET( ICU_CMN_PATH ${ICU_SOURCE_PATH}/common ) SET( ICU_I18N_PATH ${ICU_SOURCE_PATH}/i18n ) SET( ICU_UCONV_PATH ${ICU_EXTRAS_PATH}/uconv ) SET( ICU_GLOBAL_DEFS "_REENTRANT" "U_ATTRIBUTE_DEPRECATED=" ) IF( HAVE_ATOMIC ) LIST( APPEND ICU_GLOBAL_DEFS "U_HAVE_ATOMIC=1" ) ELSE( HAVE_ATOMIC ) LIST( APPEND ICU_GLOBAL_DEFS "U_HAVE_ATOMIC=0" ) ENDIF( HAVE_ATOMIC ) IF( ${HAVE_ELF} ) LIST( APPEND ICU_GLOBAL_DEFS "U_HAVE_ELF_H=1" ) ELSE( ${HAVE_ELF} ) LIST( APPEND ICU_GLOBAL_DEFS "U_HAVE_ELF_H=0" ) ENDIF( ${HAVE_ELF} ) IF( ${HAVE_STRTOD_L} ) LIST( APPEND ICU_GLOBAL_DEFS "U_HAVE_STRTOD_L=1" ) ELSE( ${HAVE_STRTOD_L} ) LIST( APPEND ICU_GLOBAL_DEFS "U_HAVE_STRTOD_L=0" ) ENDIF( ${HAVE_STRTOD_L} ) ### # ICU Sources ### SET( ICU_STUBDATA_SRC "${ICU_STUBDATA_PATH}/stubdata.cpp" ) SET( ICU_STUBDATA_INC_DIR "${ICU_STUBDATA_PATH}" ) SET( ICU_CMN_SRC "${ICU_CMN_PATH}/errorcode.cpp" "${ICU_CMN_PATH}/putil.cpp" "${ICU_CMN_PATH}/umath.cpp" "${ICU_CMN_PATH}/utypes.cpp" "${ICU_CMN_PATH}/uinvchar.cpp" "${ICU_CMN_PATH}/umutex.cpp" "${ICU_CMN_PATH}/ucln_cmn.cpp" "${ICU_CMN_PATH}/uinit.cpp" "${ICU_CMN_PATH}/uobject.cpp" "${ICU_CMN_PATH}/cmemory.cpp" "${ICU_CMN_PATH}/charstr.cpp" "${ICU_CMN_PATH}/cstr.cpp" "${ICU_CMN_PATH}/udata.cpp" "${ICU_CMN_PATH}/ucmndata.cpp" "${ICU_CMN_PATH}/udatamem.cpp" "${ICU_CMN_PATH}/umapfile.cpp" "${ICU_CMN_PATH}/udataswp.cpp" "${ICU_CMN_PATH}/ucol_swp.cpp" "${ICU_CMN_PATH}/utrace.cpp" "${ICU_CMN_PATH}/uhash.cpp" "${ICU_CMN_PATH}/uhash_us.cpp" "${ICU_CMN_PATH}/uenum.cpp" "${ICU_CMN_PATH}/ustrenum.cpp" "${ICU_CMN_PATH}/uvector.cpp" "${ICU_CMN_PATH}/ustack.cpp" "${ICU_CMN_PATH}/uvectr32.cpp" "${ICU_CMN_PATH}/uvectr64.cpp" "${ICU_CMN_PATH}/ucnv.cpp" "${ICU_CMN_PATH}/ucnv_bld.cpp" "${ICU_CMN_PATH}/ucnv_cnv.cpp" "${ICU_CMN_PATH}/ucnv_io.cpp" "${ICU_CMN_PATH}/ucnv_cb.cpp" "${ICU_CMN_PATH}/ucnv_err.cpp" "${ICU_CMN_PATH}/ucnvlat1.cpp" "${ICU_CMN_PATH}/ucnv_u7.cpp" "${ICU_CMN_PATH}/ucnv_u8.cpp" "${ICU_CMN_PATH}/ucnv_u16.cpp" "${ICU_CMN_PATH}/ucnv_u32.cpp" "${ICU_CMN_PATH}/ucnvscsu.cpp" "${ICU_CMN_PATH}/ucnvbocu.cpp" "${ICU_CMN_PATH}/ucnv_ext.cpp" "${ICU_CMN_PATH}/ucnvmbcs.cpp" "${ICU_CMN_PATH}/ucnv2022.cpp" "${ICU_CMN_PATH}/ucnvhz.cpp" "${ICU_CMN_PATH}/ucnv_lmb.cpp" "${ICU_CMN_PATH}/ucnvisci.cpp" "${ICU_CMN_PATH}/ucnvdisp.cpp" "${ICU_CMN_PATH}/ucnv_set.cpp" "${ICU_CMN_PATH}/ucnv_ct.cpp" "${ICU_CMN_PATH}/resource.cpp" "${ICU_CMN_PATH}/uresbund.cpp" "${ICU_CMN_PATH}/ures_cnv.cpp" "${ICU_CMN_PATH}/uresdata.cpp" "${ICU_CMN_PATH}/resbund.cpp" "${ICU_CMN_PATH}/resbund_cnv.cpp" "${ICU_CMN_PATH}/ucurr.cpp" "${ICU_CMN_PATH}/messagepattern.cpp" "${ICU_CMN_PATH}/ucat.cpp" "${ICU_CMN_PATH}/locmap.cpp" "${ICU_CMN_PATH}/uloc.cpp" "${ICU_CMN_PATH}/locid.cpp" "${ICU_CMN_PATH}/locutil.cpp" "${ICU_CMN_PATH}/locavailable.cpp" "${ICU_CMN_PATH}/locdispnames.cpp" "${ICU_CMN_PATH}/locdspnm.cpp" "${ICU_CMN_PATH}/loclikely.cpp" "${ICU_CMN_PATH}/locresdata.cpp" "${ICU_CMN_PATH}/bytestream.cpp" "${ICU_CMN_PATH}/stringpiece.cpp" "${ICU_CMN_PATH}/stringtriebuilder.cpp" "${ICU_CMN_PATH}/bytestriebuilder.cpp" "${ICU_CMN_PATH}/bytestrie.cpp" "${ICU_CMN_PATH}/bytestrieiterator.cpp" "${ICU_CMN_PATH}/ucharstrie.cpp" "${ICU_CMN_PATH}/ucharstriebuilder.cpp" "${ICU_CMN_PATH}/ucharstrieiterator.cpp" "${ICU_CMN_PATH}/dictionarydata.cpp" "${ICU_CMN_PATH}/edits.cpp" "${ICU_CMN_PATH}/appendable.cpp" "${ICU_CMN_PATH}/ustr_cnv.cpp" "${ICU_CMN_PATH}/unistr_cnv.cpp" "${ICU_CMN_PATH}/unistr.cpp" "${ICU_CMN_PATH}/unistr_case.cpp" "${ICU_CMN_PATH}/unistr_props.cpp" "${ICU_CMN_PATH}/utf_impl.cpp" "${ICU_CMN_PATH}/ustring.cpp" "${ICU_CMN_PATH}/ustrcase.cpp" "${ICU_CMN_PATH}/ucasemap.cpp" "${ICU_CMN_PATH}/ucasemap_titlecase_brkiter.cpp" "${ICU_CMN_PATH}/cstring.cpp" "${ICU_CMN_PATH}/ustrfmt.cpp" "${ICU_CMN_PATH}/ustrtrns.cpp" "${ICU_CMN_PATH}/ustr_wcs.cpp" "${ICU_CMN_PATH}/utext.cpp" "${ICU_CMN_PATH}/unistr_case_locale.cpp" "${ICU_CMN_PATH}/ustrcase_locale.cpp" "${ICU_CMN_PATH}/unistr_titlecase_brkiter.cpp" "${ICU_CMN_PATH}/ustr_titlecase_brkiter.cpp" "${ICU_CMN_PATH}/normalizer2impl.cpp" "${ICU_CMN_PATH}/normalizer2.cpp" "${ICU_CMN_PATH}/filterednormalizer2.cpp" "${ICU_CMN_PATH}/normlzr.cpp" "${ICU_CMN_PATH}/unorm.cpp" "${ICU_CMN_PATH}/unormcmp.cpp" "${ICU_CMN_PATH}/loadednormalizer2impl.cpp" "${ICU_CMN_PATH}/chariter.cpp" "${ICU_CMN_PATH}/schriter.cpp" "${ICU_CMN_PATH}/uchriter.cpp" "${ICU_CMN_PATH}/uiter.cpp" "${ICU_CMN_PATH}/patternprops.cpp" "${ICU_CMN_PATH}/uchar.cpp" "${ICU_CMN_PATH}/uprops.cpp" "${ICU_CMN_PATH}/ucase.cpp" "${ICU_CMN_PATH}/propname.cpp" "${ICU_CMN_PATH}/ubidi_props.cpp" "${ICU_CMN_PATH}/ubidi.cpp" "${ICU_CMN_PATH}/ubidiwrt.cpp" "${ICU_CMN_PATH}/ubidiln.cpp" "${ICU_CMN_PATH}/ushape.cpp" "${ICU_CMN_PATH}/uscript.cpp" "${ICU_CMN_PATH}/uscript_props.cpp" "${ICU_CMN_PATH}/usc_impl.cpp" "${ICU_CMN_PATH}/unames.cpp" "${ICU_CMN_PATH}/utrie.cpp" "${ICU_CMN_PATH}/utrie2.cpp" "${ICU_CMN_PATH}/utrie2_builder.cpp" "${ICU_CMN_PATH}/bmpset.cpp" "${ICU_CMN_PATH}/unisetspan.cpp" "${ICU_CMN_PATH}/uset_props.cpp" "${ICU_CMN_PATH}/uniset_props.cpp" "${ICU_CMN_PATH}/uniset_closure.cpp" "${ICU_CMN_PATH}/uset.cpp" "${ICU_CMN_PATH}/uniset.cpp" "${ICU_CMN_PATH}/usetiter.cpp" "${ICU_CMN_PATH}/ruleiter.cpp" "${ICU_CMN_PATH}/caniter.cpp" "${ICU_CMN_PATH}/unifilt.cpp" "${ICU_CMN_PATH}/unifunct.cpp" "${ICU_CMN_PATH}/uarrsort.cpp" "${ICU_CMN_PATH}/brkiter.cpp" "${ICU_CMN_PATH}/ubrk.cpp" "${ICU_CMN_PATH}/brkeng.cpp" "${ICU_CMN_PATH}/dictbe.cpp" "${ICU_CMN_PATH}/filteredbrk.cpp" "${ICU_CMN_PATH}/rbbi.cpp" "${ICU_CMN_PATH}/rbbidata.cpp" "${ICU_CMN_PATH}/rbbinode.cpp" "${ICU_CMN_PATH}/rbbirb.cpp" "${ICU_CMN_PATH}/rbbiscan.cpp" "${ICU_CMN_PATH}/rbbisetb.cpp" "${ICU_CMN_PATH}/rbbistbl.cpp" "${ICU_CMN_PATH}/rbbitblb.cpp" "${ICU_CMN_PATH}/serv.cpp" "${ICU_CMN_PATH}/servnotf.cpp" "${ICU_CMN_PATH}/servls.cpp" "${ICU_CMN_PATH}/servlk.cpp" "${ICU_CMN_PATH}/servlkf.cpp" "${ICU_CMN_PATH}/servrbf.cpp" "${ICU_CMN_PATH}/servslkf.cpp" "${ICU_CMN_PATH}/uidna.cpp" "${ICU_CMN_PATH}/usprep.cpp" "${ICU_CMN_PATH}/uts46.cpp" "${ICU_CMN_PATH}/punycode.cpp" "${ICU_CMN_PATH}/util.cpp" "${ICU_CMN_PATH}/util_props.cpp" "${ICU_CMN_PATH}/parsepos.cpp" "${ICU_CMN_PATH}/locbased.cpp" "${ICU_CMN_PATH}/cwchar.cpp" "${ICU_CMN_PATH}/wintz.cpp" "${ICU_CMN_PATH}/dtintrv.cpp" "${ICU_CMN_PATH}/ucnvsel.cpp" "${ICU_CMN_PATH}/propsvec.cpp" "${ICU_CMN_PATH}/ulist.cpp" "${ICU_CMN_PATH}/uloc_tag.cpp" "${ICU_CMN_PATH}/icudataver.cpp" "${ICU_CMN_PATH}/icuplug.cpp" "${ICU_CMN_PATH}/listformatter.cpp" "${ICU_CMN_PATH}/ulistformatter.cpp" "${ICU_CMN_PATH}/sharedobject.cpp" "${ICU_CMN_PATH}/simpleformatter.cpp" "${ICU_CMN_PATH}/unifiedcache.cpp" "${ICU_CMN_PATH}/uloc_keytype.cpp" "${ICU_CMN_PATH}/ubiditransform.cpp" "${ICU_CMN_PATH}/pluralmap.cpp" ) SET( ICU_CMN_INST_DIR ${ICU_CMN_PATH}/unicode ) SET( ICU_CMN_INC_DIR ${ICU_CMN_PATH} ) SET( ICU_CMN_DEFS "U_COMMON_IMPLEMENTATION" "DEFAULT_ICU_PLUGINS=" ) SET( ICU_I18N_SRC "${ICU_I18N_PATH}/fmtable.cpp" "${ICU_I18N_PATH}/format.cpp" "${ICU_I18N_PATH}/msgfmt.cpp" "${ICU_I18N_PATH}/umsg.cpp" "${ICU_I18N_PATH}/numfmt.cpp" "${ICU_I18N_PATH}/unum.cpp" "${ICU_I18N_PATH}/decimfmt.cpp" "${ICU_I18N_PATH}/decimalformatpattern.cpp" "${ICU_I18N_PATH}/dcfmtsym.cpp" "${ICU_I18N_PATH}/digitlst.cpp" "${ICU_I18N_PATH}/fmtable_cnv.cpp" "${ICU_I18N_PATH}/choicfmt.cpp" "${ICU_I18N_PATH}/datefmt.cpp" "${ICU_I18N_PATH}/smpdtfmt.cpp" "${ICU_I18N_PATH}/reldtfmt.cpp" "${ICU_I18N_PATH}/dtfmtsym.cpp" "${ICU_I18N_PATH}/udat.cpp" "${ICU_I18N_PATH}/dtptngen.cpp" "${ICU_I18N_PATH}/udatpg.cpp" "${ICU_I18N_PATH}/nfrs.cpp" "${ICU_I18N_PATH}/nfrule.cpp" "${ICU_I18N_PATH}/nfsubs.cpp" "${ICU_I18N_PATH}/rbnf.cpp" "${ICU_I18N_PATH}/numsys.cpp" "${ICU_I18N_PATH}/unumsys.cpp" "${ICU_I18N_PATH}/ucsdet.cpp" "${ICU_I18N_PATH}/ucal.cpp" "${ICU_I18N_PATH}/calendar.cpp" "${ICU_I18N_PATH}/gregocal.cpp" "${ICU_I18N_PATH}/timezone.cpp" "${ICU_I18N_PATH}/simpletz.cpp" "${ICU_I18N_PATH}/olsontz.cpp" "${ICU_I18N_PATH}/astro.cpp" "${ICU_I18N_PATH}/taiwncal.cpp" "${ICU_I18N_PATH}/buddhcal.cpp" "${ICU_I18N_PATH}/persncal.cpp" "${ICU_I18N_PATH}/islamcal.cpp" "${ICU_I18N_PATH}/japancal.cpp" "${ICU_I18N_PATH}/gregoimp.cpp" "${ICU_I18N_PATH}/hebrwcal.cpp" "${ICU_I18N_PATH}/indiancal.cpp" "${ICU_I18N_PATH}/chnsecal.cpp" "${ICU_I18N_PATH}/cecal.cpp" "${ICU_I18N_PATH}/coptccal.cpp" "${ICU_I18N_PATH}/dangical.cpp" "${ICU_I18N_PATH}/ethpccal.cpp" "${ICU_I18N_PATH}/coleitr.cpp" "${ICU_I18N_PATH}/coll.cpp" "${ICU_I18N_PATH}/sortkey.cpp" "${ICU_I18N_PATH}/bocsu.cpp" "${ICU_I18N_PATH}/ucoleitr.cpp" "${ICU_I18N_PATH}/ucol.cpp" "${ICU_I18N_PATH}/ucol_res.cpp" "${ICU_I18N_PATH}/ucol_sit.cpp" "${ICU_I18N_PATH}/collation.cpp" "${ICU_I18N_PATH}/collationsettings.cpp" "${ICU_I18N_PATH}/collationdata.cpp" "${ICU_I18N_PATH}/collationtailoring.cpp" "${ICU_I18N_PATH}/collationdatareader.cpp" "${ICU_I18N_PATH}/collationdatawriter.cpp" "${ICU_I18N_PATH}/collationfcd.cpp" "${ICU_I18N_PATH}/collationiterator.cpp" "${ICU_I18N_PATH}/utf16collationiterator.cpp" "${ICU_I18N_PATH}/utf8collationiterator.cpp" "${ICU_I18N_PATH}/uitercollationiterator.cpp" "${ICU_I18N_PATH}/collationsets.cpp" "${ICU_I18N_PATH}/collationcompare.cpp" "${ICU_I18N_PATH}/collationfastlatin.cpp" "${ICU_I18N_PATH}/collationkeys.cpp" "${ICU_I18N_PATH}/rulebasedcollator.cpp" "${ICU_I18N_PATH}/collationroot.cpp" "${ICU_I18N_PATH}/collationrootelements.cpp" "${ICU_I18N_PATH}/collationdatabuilder.cpp" "${ICU_I18N_PATH}/collationweights.cpp" "${ICU_I18N_PATH}/collationruleparser.cpp" "${ICU_I18N_PATH}/collationbuilder.cpp" "${ICU_I18N_PATH}/collationfastlatinbuilder.cpp" "${ICU_I18N_PATH}/strmatch.cpp" "${ICU_I18N_PATH}/usearch.cpp" "${ICU_I18N_PATH}/search.cpp" "${ICU_I18N_PATH}/stsearch.cpp" "${ICU_I18N_PATH}/translit.cpp" "${ICU_I18N_PATH}/utrans.cpp" "${ICU_I18N_PATH}/esctrn.cpp" "${ICU_I18N_PATH}/unesctrn.cpp" "${ICU_I18N_PATH}/funcrepl.cpp" "${ICU_I18N_PATH}/strrepl.cpp" "${ICU_I18N_PATH}/tridpars.cpp" "${ICU_I18N_PATH}/cpdtrans.cpp" "${ICU_I18N_PATH}/rbt.cpp" "${ICU_I18N_PATH}/rbt_data.cpp" "${ICU_I18N_PATH}/rbt_pars.cpp" "${ICU_I18N_PATH}/rbt_rule.cpp" "${ICU_I18N_PATH}/rbt_set.cpp" "${ICU_I18N_PATH}/nultrans.cpp" "${ICU_I18N_PATH}/remtrans.cpp" "${ICU_I18N_PATH}/casetrn.cpp" "${ICU_I18N_PATH}/titletrn.cpp" "${ICU_I18N_PATH}/tolowtrn.cpp" "${ICU_I18N_PATH}/toupptrn.cpp" "${ICU_I18N_PATH}/anytrans.cpp" "${ICU_I18N_PATH}/name2uni.cpp" "${ICU_I18N_PATH}/uni2name.cpp" "${ICU_I18N_PATH}/nortrans.cpp" "${ICU_I18N_PATH}/quant.cpp" "${ICU_I18N_PATH}/transreg.cpp" "${ICU_I18N_PATH}/brktrans.cpp" "${ICU_I18N_PATH}/regexcmp.cpp" "${ICU_I18N_PATH}/rematch.cpp" "${ICU_I18N_PATH}/repattrn.cpp" "${ICU_I18N_PATH}/regexst.cpp" "${ICU_I18N_PATH}/regextxt.cpp" "${ICU_I18N_PATH}/regeximp.cpp" "${ICU_I18N_PATH}/uregex.cpp" "${ICU_I18N_PATH}/uregexc.cpp" "${ICU_I18N_PATH}/ulocdata.cpp" "${ICU_I18N_PATH}/measfmt.cpp" "${ICU_I18N_PATH}/currfmt.cpp" "${ICU_I18N_PATH}/curramt.cpp" "${ICU_I18N_PATH}/currunit.cpp" "${ICU_I18N_PATH}/measure.cpp" "${ICU_I18N_PATH}/utmscale.cpp" "${ICU_I18N_PATH}/csdetect.cpp" "${ICU_I18N_PATH}/csmatch.cpp" "${ICU_I18N_PATH}/csr2022.cpp" "${ICU_I18N_PATH}/csrecog.cpp" "${ICU_I18N_PATH}/csrmbcs.cpp" "${ICU_I18N_PATH}/csrsbcs.cpp" "${ICU_I18N_PATH}/csrucode.cpp" "${ICU_I18N_PATH}/csrutf8.cpp" "${ICU_I18N_PATH}/inputext.cpp" "${ICU_I18N_PATH}/wintzimpl.cpp" "${ICU_I18N_PATH}/windtfmt.cpp" "${ICU_I18N_PATH}/winnmfmt.cpp" "${ICU_I18N_PATH}/basictz.cpp" "${ICU_I18N_PATH}/dtrule.cpp" "${ICU_I18N_PATH}/rbtz.cpp" "${ICU_I18N_PATH}/tzrule.cpp" "${ICU_I18N_PATH}/tztrans.cpp" "${ICU_I18N_PATH}/vtzone.cpp" "${ICU_I18N_PATH}/zonemeta.cpp" "${ICU_I18N_PATH}/standardplural.cpp" "${ICU_I18N_PATH}/upluralrules.cpp" "${ICU_I18N_PATH}/plurrule.cpp" "${ICU_I18N_PATH}/plurfmt.cpp" "${ICU_I18N_PATH}/selfmt.cpp" "${ICU_I18N_PATH}/dtitvfmt.cpp" "${ICU_I18N_PATH}/dtitvinf.cpp" "${ICU_I18N_PATH}/udateintervalformat.cpp" "${ICU_I18N_PATH}/tmunit.cpp" "${ICU_I18N_PATH}/tmutamt.cpp" "${ICU_I18N_PATH}/tmutfmt.cpp" "${ICU_I18N_PATH}/currpinf.cpp" "${ICU_I18N_PATH}/uspoof.cpp" "${ICU_I18N_PATH}/uspoof_impl.cpp" "${ICU_I18N_PATH}/uspoof_build.cpp" "${ICU_I18N_PATH}/uspoof_conf.cpp" "${ICU_I18N_PATH}/decfmtst.cpp" "${ICU_I18N_PATH}/smpdtfst.cpp" "${ICU_I18N_PATH}/ztrans.cpp" "${ICU_I18N_PATH}/zrule.cpp" "${ICU_I18N_PATH}/vzone.cpp" "${ICU_I18N_PATH}/fphdlimp.cpp" "${ICU_I18N_PATH}/fpositer.cpp" "${ICU_I18N_PATH}/ufieldpositer.cpp" "${ICU_I18N_PATH}/decNumber.cpp" "${ICU_I18N_PATH}/decContext.cpp" "${ICU_I18N_PATH}/alphaindex.cpp" "${ICU_I18N_PATH}/tznames.cpp" "${ICU_I18N_PATH}/tznames_impl.cpp" "${ICU_I18N_PATH}/tzgnames.cpp" "${ICU_I18N_PATH}/tzfmt.cpp" "${ICU_I18N_PATH}/compactdecimalformat.cpp" "${ICU_I18N_PATH}/gender.cpp" "${ICU_I18N_PATH}/region.cpp" "${ICU_I18N_PATH}/scriptset.cpp" "${ICU_I18N_PATH}/uregion.cpp" "${ICU_I18N_PATH}/reldatefmt.cpp" "${ICU_I18N_PATH}/quantityformatter.cpp" "${ICU_I18N_PATH}/measunit.cpp" "${ICU_I18N_PATH}/sharedbreakiterator.cpp" "${ICU_I18N_PATH}/scientificnumberformatter.cpp" "${ICU_I18N_PATH}/digitgrouping.cpp" "${ICU_I18N_PATH}/digitinterval.cpp" "${ICU_I18N_PATH}/digitformatter.cpp" "${ICU_I18N_PATH}/digitaffix.cpp" "${ICU_I18N_PATH}/valueformatter.cpp" "${ICU_I18N_PATH}/digitaffixesandpadding.cpp" "${ICU_I18N_PATH}/pluralaffix.cpp" "${ICU_I18N_PATH}/precision.cpp" "${ICU_I18N_PATH}/affixpatternparser.cpp" "${ICU_I18N_PATH}/smallintformatter.cpp" "${ICU_I18N_PATH}/decimfmtimpl.cpp" "${ICU_I18N_PATH}/visibledigits.cpp" "${ICU_I18N_PATH}/dayperiodrules.cpp" ) SET( ICU_I18N_INST_DIR ${ICU_I18N_PATH}/unicode ) SET( ICU_I18N_INC_DIR ${ICU_I18N_PATH} ) SET( ICU_I18N_DEFS "U_I18N_IMPLEMENTATION" ) ### # Extras Sources ### SET( UCONV_SRC "${ICU_UCONV_PATH}/uconv.cpp" "${ICU_UCONV_PATH}/uwmsg.c" ) ### # Setup Libraries ### # Building a monolith library? IF( ${ICU_BUILD_MONOLITH} ) SET( ICU_SRC ${ICU_CMN_SRC} ${ICU_I18N_SRC} ) SET( ICU_DEFS ${ICU_GLOBAL_DEFS} ${ICU_CMN_DEFS} ${ICU_I18N_DEFS} U_COMBINED_IMPLEMENTATION ) SET( ICU_INC ${ICU_CMN_INC_DIR} ${ICU_I18N_INC_DIR} ) IF( ${ICU_BUILD_SHARED} ) LIST( APPEND ICU_INSTALL_LIBS icu ) SET( ICU_MONOLITH_SHARED icu ) ADD_LIBRARY( ${ICU_MONOLITH_SHARED} SHARED ${ICU_SRC} ) TARGET_INCLUDE_DIRECTORIES( ${ICU_MONOLITH_SHARED} PRIVATE ${ICU_INC} ) TARGET_COMPILE_DEFINITIONS( ${ICU_MONOLITH_SHARED} PUBLIC ${ICU_DEFS} PIC ) ENDIF( ${ICU_BUILD_SHARED} ) IF( ${ICU_BUILD_STATIC} ) IF( "${ICU_MONOLITH_SHARED}" STREQUAL "" ) SET( ICU_MONOLITH_STATIC icu ) ELSE( ) SET( ICU_MONOLITH_STATIC icu_static ) ENDIF( ) LIST( APPEND ICU_INSTALL_LIBS ${ICU_MONOLITH_STATIC} ) ADD_LIBRARY( ${ICU_MONOLITH_STATIC} STATIC ${ICU_SRC} ) TARGET_INCLUDE_DIRECTORIES( ${ICU_MONOLITH_STATIC} PRIVATE ${ICU_INC} ) TARGET_COMPILE_DEFINITIONS( ${ICU_MONOLITH_STATIC} PUBLIC ${ICU_DEFS} U_STATIC_IMPLEMENTATION ) ENDIF( ${ICU_BUILD_STATIC} ) ENDIF( ${ICU_BUILD_MONOLITH} ) # Building shared libraries? IF( ${ICU_BUILD_SHARED} ) ADD_LIBRARY( icuuc SHARED ${ICU_CMN_SRC} ) TARGET_INCLUDE_DIRECTORIES( icuuc PUBLIC ${ICU_CMN_INC_DIR} ) TARGET_COMPILE_DEFINITIONS( icuuc PUBLIC ${ICU_CMN_DEFS} ${ICU_GLOBAL_DEFS} PIC ) LIST( APPEND ICU_INSTALL_LIBS icuuc ) SET( ICU_CMN_LIB icuuc ) ADD_LIBRARY( icui18n SHARED ${ICU_I18N_SRC} ) TARGET_INCLUDE_DIRECTORIES( icui18n PRIVATE ${ICU_CMN_INC_DIR} ${ICU_I18N_INC_DIR} ) TARGET_COMPILE_DEFINITIONS( icui18n PUBLIC ${ICU_I18N_DEFS} ${ICU_GLOBAL_DEFS} PIC ) TARGET_LINK_LIBRARIES( icui18n icuuc ) LIST( APPEND ICU_INSTALL_LIBS icui18n ) ENDIF( ${ICU_BUILD_SHARED} ) # Building static libraries? IF( ${ICU_BUILD_STATIC} ) ADD_LIBRARY( icuuc_static STATIC ${ICU_CMN_SRC} ) TARGET_INCLUDE_DIRECTORIES( icuuc_static PRIVATE ${ICU_CMN_INC_DIR} ) TARGET_COMPILE_DEFINITIONS( icuuc_static PUBLIC ${ICU_CMN_DEFS} ${ICU_GLOBAL_DEFS} ) LIST( APPEND ICU_INSTALL_LIBS icuuc_static ) IF( "${ICU_CMN_LIB}" STREQUAL "" ) SET( ICU_CMN_LIB icuuc_static ) ENDIF( "${ICU_CMN_LIB}" STREQUAL "" ) ADD_LIBRARY( icui18n_static STATIC ${ICU_I18N_SRC} ) TARGET_INCLUDE_DIRECTORIES( icui18n_static PRIVATE ${ICU_CMN_INC_DIR} ${ICU_I18N_INC_DIR} ) TARGET_COMPILE_DEFINITIONS( icui18n_static PUBLIC ${ICU_I18N_DEFS} ${ICU_GLOBAL_DEFS} ) LIST( APPEND ICU_INSTALL_LIBS icui18n_static ) ENDIF( ${ICU_BUILD_STATIC} ) # Always build stubdata as a static library IF( ${ICU_BUILD_STUBDATA} ) ADD_LIBRARY( icustubdata_static STATIC ${ICU_STUBDATA_SRC} ) TARGET_INCLUDE_DIRECTORIES( icustubdata_static PRIVATE ${ICU_CMN_INC_DIR} ) TARGET_COMPILE_DEFINITIONS( icustubdata_static PUBLIC ${ICU_GLOBAL_DEFS} ) ENDIF( ${ICU_BUILD_STUBDATA} ) ### # Setup Extras ### IF( ${ICU_BUILD_SHARED} ) SET( UCONV_LIBS icui18n icuuc ) ELSE( ${ICU_BUILD_SHARED} ) SET( UCONV_LIBS icui18n_static icuuc_static ) ENDIF( ${ICU_BUILD_SHARED} ) IF( ${ICU_BUILD_EXTRAS} ) IF( ${ICU_BUILD_UCONV} ) ADD_EXECUTABLE( uconv ${UCONV_SRC} ) ADD_DEPENDENCIES( uconv ${UCONV_LIBS} ) TARGET_INCLUDE_DIRECTORIES( uconv PRIVATE ${ICU_CMN_INC_DIR} ${ICU_I18N_INC_DIR} ) TARGET_COMPILE_DEFINITIONS( uconv PUBLIC ${ICU_GLOBAL_DEFS} ) TARGET_LINK_LIBRARIES( uconv ${UCONV_LIBS} ) LIST( APPEND ICU_INSTALL_LIBS uconv ) ENDIF( ${ICU_BUILD_UCONV} ) ENDIF( ${ICU_BUILD_EXTRAS} ) ### # Installation Options ### INSTALL(TARGETS ${ICU_INSTALL_LIBS} ARCHIVE DESTINATION lib LIBRARY DESTINATION lib RUNTIME DESTINATION bin ) INSTALL( DIRECTORY ${ICU_CMN_INST_DIR} DESTINATION include ) INSTALL( DIRECTORY ${ICU_I18N_INST_DIR} DESTINATION include )