-
Notifications
You must be signed in to change notification settings - Fork 41
/
build.rs
84 lines (77 loc) · 2.04 KB
/
build.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
use std::env;
fn add_sources(build: &mut cc::Build, root: &str, files: &[&str]) {
let root = std::path::Path::new(root);
build.files(files.iter().map(|src| {
let mut p = root.join(src);
p.set_extension("c");
p
}));
build.include(root);
}
fn main() {
if !cfg!(feature = "bundled") {
let target = env::var("TARGET").unwrap();
if !target.contains("android") && !target.contains("ohos") {
pkg_config::Config::new()
.atleast_version("24.3.18")
.probe("freetype2")
.unwrap();
}
return;
}
let mut build = cc::Build::new();
build
.warnings(false)
.include(".")
.include("freetype2/include")
.define("FT2_BUILD_LIBRARY", None);
add_sources(
&mut build,
"freetype2/src",
&[
"autofit/autofit",
"base/ftbase",
"base/ftbbox",
"base/ftbdf",
"base/ftbitmap",
"base/ftcid",
"base/ftdebug",
"base/ftfstype",
"base/ftgasp",
"base/ftglyph",
"base/ftgxval",
"base/ftinit",
"base/ftmm",
"base/ftotval",
"base/ftpatent",
"base/ftpfr",
"base/ftstroke",
"base/ftsynth",
"base/ftsystem",
"base/fttype1",
"base/ftwinfnt",
"bdf/bdf",
"bzip2/ftbzip2",
"cache/ftcache",
"cff/cff",
"cid/type1cid",
"gzip/ftgzip",
"lzw/ftlzw",
"pcf/pcf",
"pfr/pfr",
"psaux/psaux",
"pshinter/pshinter",
"psnames/psnames",
"raster/raster",
"sdf/sdf",
"svg/svg",
"sfnt/sfnt",
"smooth/smooth",
"truetype/truetype",
"type1/type1",
"type42/type42",
"winfonts/winfnt",
],
);
build.compile("freetype2");
}