set(ICU_COMMON_SOURCES
    ../../source/common/errorcode.cpp
    ../../source/common/putil.cpp
    ../../source/common/umath.c
    ../../source/common/utypes.c
    ../../source/common/uinvchar.c
    ../../source/common/umutex.cpp
    ../../source/common/ucln_cmn.c
    ../../source/common/uinit.c
    ../../source/common/uobject.cpp
    ../../source/common/cmemory.c
    ../../source/common/charstr.cpp
    ../../source/common/udata.cpp
    ../../source/common/ucmndata.c
    ../../source/common/udatamem.c
    ../../source/common/umapfile.c
    ../../source/common/udataswp.c
    ../../source/common/ucol_swp.cpp
    ../../source/common/utrace.c
    ../../source/common/uhash.c
    ../../source/common/uhash_us.cpp
    ../../source/common/uenum.c
    ../../source/common/ustrenum.cpp
    ../../source/common/uvector.cpp
    ../../source/common/ustack.cpp
    ../../source/common/uvectr32.cpp
    ../../source/common/uvectr64.cpp
    ../../source/common/ucnv.c
    ../../source/common/ucnv_bld.cpp
    ../../source/common/ucnv_cnv.c
    ../../source/common/ucnv_io.cpp
    ../../source/common/ucnv_cb.c
    ../../source/common/ucnv_err.c
    ../../source/common/ucnvlat1.c
    ../../source/common/ucnv_u7.c
    ../../source/common/ucnv_u8.c
    ../../source/common/ucnv_u16.c
    ../../source/common/ucnv_u32.c
    ../../source/common/ucnvscsu.c
    ../../source/common/ucnvbocu.cpp
    ../../source/common/ucnv_ext.cpp
    ../../source/common/ucnvmbcs.c
    ../../source/common/ucnv2022.cpp
    ../../source/common/ucnvhz.c
    ../../source/common/ucnv_lmb.c
    ../../source/common/ucnvisci.c
    ../../source/common/ucnvdisp.c
    ../../source/common/ucnv_set.c
    ../../source/common/ucnv_ct.c
    ../../source/common/uresbund.cpp
    ../../source/common/ures_cnv.c
    ../../source/common/uresdata.c
    ../../source/common/resbund.cpp
    ../../source/common/resbund_cnv.cpp
    ../../source/common/messagepattern.cpp
    ../../source/common/ucat.c
    ../../source/common/locmap.c
    ../../source/common/uloc.cpp
    ../../source/common/locid.cpp
    ../../source/common/locutil.cpp
    ../../source/common/locavailable.cpp
    ../../source/common/locdispnames.cpp
    ../../source/common/loclikely.cpp
    ../../source/common/locresdata.cpp
    ../../source/common/bytestream.cpp
    ../../source/common/stringpiece.cpp
    ../../source/common/stringtriebuilder.cpp
    ../../source/common/bytestriebuilder.cpp
    ../../source/common/bytestrie.cpp
    ../../source/common/bytestrieiterator.cpp
    ../../source/common/ucharstrie.cpp
    ../../source/common/ucharstriebuilder.cpp
    ../../source/common/ucharstrieiterator.cpp
    ../../source/common/dictionarydata.cpp
    ../../source/common/appendable.cpp
    ../../source/common/ustr_cnv.c
    ../../source/common/unistr_cnv.cpp
    ../../source/common/unistr.cpp
    ../../source/common/unistr_case.cpp
    ../../source/common/unistr_props.cpp
    ../../source/common/utf_impl.c
    ../../source/common/ustring.cpp
    ../../source/common/ustrcase.cpp
    ../../source/common/ucasemap.cpp
    ../../source/common/ucasemap_titlecase_brkiter.cpp
    ../../source/common/cstring.c
    ../../source/common/ustrfmt.c
    ../../source/common/ustrtrns.cpp
    ../../source/common/ustr_wcs.cpp
    ../../source/common/utext.cpp
    ../../source/common/unistr_case_locale.cpp
    ../../source/common/ustrcase_locale.cpp
    ../../source/common/unistr_titlecase_brkiter.cpp
    ../../source/common/ustr_titlecase_brkiter.cpp
    ../../source/common/normalizer2impl.cpp
    ../../source/common/normalizer2.cpp
    ../../source/common/filterednormalizer2.cpp
    ../../source/common/normlzr.cpp
    ../../source/common/unorm.cpp
    ../../source/common/unormcmp.cpp
    ../../source/common/unorm_it.c
    ../../source/common/chariter.cpp
    ../../source/common/schriter.cpp
    ../../source/common/uchriter.cpp
    ../../source/common/uiter.cpp
    ../../source/common/patternprops.cpp
    ../../source/common/uchar.c
    ../../source/common/uprops.cpp
    ../../source/common/ucase.cpp
    ../../source/common/propname.cpp
    ../../source/common/ubidi_props.c
    ../../source/common/ubidi.c
    ../../source/common/ubidiwrt.c
    ../../source/common/ubidiln.c
    ../../source/common/ushape.cpp
    ../../source/common/uscript.c
    ../../source/common/uscript_props.cpp
    ../../source/common/usc_impl.c
    ../../source/common/unames.cpp
    ../../source/common/utrie.cpp
    ../../source/common/utrie2.cpp
    ../../source/common/utrie2_builder.cpp
    ../../source/common/bmpset.cpp
    ../../source/common/unisetspan.cpp
    ../../source/common/uset_props.cpp
    ../../source/common/uniset_props.cpp
    ../../source/common/uniset_closure.cpp
    ../../source/common/uset.cpp
    ../../source/common/uniset.cpp
    ../../source/common/usetiter.cpp
    ../../source/common/ruleiter.cpp
    ../../source/common/caniter.cpp
    ../../source/common/unifilt.cpp
    ../../source/common/unifunct.cpp
    ../../source/common/uarrsort.c
    ../../source/common/brkiter.cpp
    ../../source/common/ubrk.cpp
    ../../source/common/brkeng.cpp
    ../../source/common/dictbe.cpp
    ../../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/serv.cpp
    ../../source/common/servnotf.cpp
    ../../source/common/servls.cpp
    ../../source/common/servlk.cpp
    ../../source/common/servlkf.cpp
    ../../source/common/servrbf.cpp
    ../../source/common/servslkf.cpp
    ../../source/common/uidna.cpp
    ../../source/common/usprep.cpp
    ../../source/common/uts46.cpp
    ../../source/common/punycode.cpp
    ../../source/common/util.cpp
    ../../source/common/util_props.cpp
    ../../source/common/parsepos.cpp
    ../../source/common/locbased.cpp
    ../../source/common/cwchar.c
    ../../source/common/wintz.c
    ../../source/common/mutex.cpp
    ../../source/common/dtintrv.cpp
    ../../source/common/ucnvsel.cpp
    ../../source/common/propsvec.c
    ../../source/common/ulist.c
    ../../source/common/uloc_tag.c
    ../../source/common/icudataver.c
    ../../source/common/icuplug.c
    ../../source/common/listformatter.cpp
    )


set(ICU_COMMON_INCLUDE_DIRECTORIES
      ../../source/common
      ../../source/common/include
)

if (WIN32)
	if (MSVC)
	    if(NOT CMAKE_CL_64)
	        add_compile_options(-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 /Gy /GF /nologo /EHsc /Zc:wchar_t)
	        add_definitions(-DSIZEOF_VOID_P=4)
	    else()
            add_compile_options(-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 /Gy /GF /nologo /EHsc /Zc:wchar_t)
            add_definitions(-DSIZEOF_VOID_P=8)
        endif()
    endif ()
endif()

include_directories(${ICU_COMMON_INCLUDE_DIRECTORIES})
add_library(${ICU_JAVA_COMMON_LIB} STATIC ${ICU_COMMON_SOURCES})
WEBKIT_SET_EXTRA_COMPILER_FLAGS(${ICU_JAVA_COMMON_LIB})
