main()1fn main() { 2 let mut build = cc::Build::new(); 3 build.cpp(true); 4 5 if build.get_compiler().is_like_msvc() { 6 // From harfbuzz/meson.build 7 build.flag("/wd4018"); // implicit signed/unsigned conversion 8 build.flag("/wd4146"); // unary minus on unsigned (beware INT_MIN) 9 build.flag("/wd4244"); // lossy type conversion (e.g. double -> int) 10 build.flag("/wd4305"); // truncating type conversion (e.g. double -> float) 11 12 // Required by hb-algs.hh 13 build.flag("/std:c++14"); 14 } else { 15 build.flag("-std=c++11"); 16 build.flag_if_supported("-fno-rtti"); 17 build.flag_if_supported("-fno-exceptions"); 18 build.flag_if_supported("-fno-threadsafe-statics"); 19 build.flag_if_supported("-fvisibility-inlines-hidden"); 20 } 21 22 build.file("harfbuzz/src/hb-aat-layout.cc"); 23 build.file("harfbuzz/src/hb-aat-map.cc"); 24 build.file("harfbuzz/src/hb-blob.cc"); 25 build.file("harfbuzz/src/hb-buffer.cc"); 26 build.file("harfbuzz/src/hb-buffer-serialize.cc"); 27 build.file("harfbuzz/src/hb-common.cc"); 28 build.file("harfbuzz/src/hb-face.cc"); 29 build.file("harfbuzz/src/hb-fallback-shape.cc"); 30 build.file("harfbuzz/src/hb-font.cc"); 31 build.file("harfbuzz/src/hb-map.cc"); 32 build.file("harfbuzz/src/hb-number.cc"); 33 build.file("harfbuzz/src/hb-ot-cff1-table.cc"); 34 build.file("harfbuzz/src/hb-ot-cff2-table.cc"); 35 build.file("harfbuzz/src/hb-ot-face.cc"); 36 build.file("harfbuzz/src/hb-ot-font.cc"); 37 build.file("harfbuzz/src/hb-ot-layout.cc"); 38 build.file("harfbuzz/src/hb-ot-map.cc"); 39 build.file("harfbuzz/src/hb-ot-metrics.cc"); 40 build.file("harfbuzz/src/hb-ot-shape.cc"); 41 build.file("harfbuzz/src/hb-ot-shape-complex-arabic.cc"); 42 build.file("harfbuzz/src/hb-ot-shape-complex-default.cc"); 43 build.file("harfbuzz/src/hb-ot-shape-complex-hangul.cc"); 44 build.file("harfbuzz/src/hb-ot-shape-complex-hebrew.cc"); 45 build.file("harfbuzz/src/hb-ot-shape-complex-indic.cc"); 46 build.file("harfbuzz/src/hb-ot-shape-complex-indic-table.cc"); 47 build.file("harfbuzz/src/hb-ot-shape-complex-khmer.cc"); 48 build.file("harfbuzz/src/hb-ot-shape-complex-myanmar.cc"); 49 build.file("harfbuzz/src/hb-ot-shape-complex-thai.cc"); 50 build.file("harfbuzz/src/hb-ot-shape-complex-use.cc"); 51 build.file("harfbuzz/src/hb-ot-shape-complex-use-table.cc"); 52 build.file("harfbuzz/src/hb-ot-shape-complex-vowel-constraints.cc"); 53 build.file("harfbuzz/src/hb-ot-shape-fallback.cc"); 54 build.file("harfbuzz/src/hb-ot-shape-normalize.cc"); 55 build.file("harfbuzz/src/hb-ot-tag.cc"); 56 build.file("harfbuzz/src/hb-ot-var.cc"); 57 build.file("harfbuzz/src/hb-set.cc"); 58 build.file("harfbuzz/src/hb-shape.cc"); 59 build.file("harfbuzz/src/hb-shape-plan.cc"); 60 build.file("harfbuzz/src/hb-shaper.cc"); 61 build.file("harfbuzz/src/hb-static.cc"); 62 build.file("harfbuzz/src/hb-ucd.cc"); 63 build.file("harfbuzz/src/hb-unicode.cc"); 64 build.include("harfbuzz/src"); 65 build.compile("librustybuzz.a"); 66 } 67