blob: 6575fe276515415b95a824ce10e051043ca75e6f [file] [log] [blame]
commit-bot@chromium.org327c0812013-08-20 18:57:01 +00001# GYP for fontconfig (
2#
3# This has been tested on Windows and Mac.
4# This library is native to Linux, so build from source is not necessary.
5#
6# Additional files for building under Windows are provided here: (LGPL)
7# http://comments.gmane.org/gmane.comp.fonts.fontconfig/4438
8
9{
10 'variables': {
11 'skia_warnings_as_errors': 0,
12 },
13 'targets': [
14 {
15 'target_name': 'fontconfig',
commit-bot@chromium.org83f56922014-01-09 22:54:26 +000016 'type': 'none',
17 'dependencies': [
18 'libfontconfig',
19 ],
20 'direct_dependent_settings': {
21 'include_dirs': [
22 '../third_party/externals/fontconfig',
23 ],
24 },
25 'conditions': [
26 ['skia_os == "mac"', {
27 'dependencies': [
28 'fontconfig_setup',
29 ],
30 }],
31 ],
32 },
33 {
34 'target_name': 'libfontconfig',
commit-bot@chromium.org327c0812013-08-20 18:57:01 +000035 'type': 'static_library',
36 'dependencies': [
37 'freetype.gyp:freetype_poppler',
38 ],
39 'include_dirs' : [
40 '../third_party/externals/fontconfig',
commit-bot@chromium.org327c0812013-08-20 18:57:01 +000041 '../third_party/fontconfig/config',
42 '../third_party/fontconfig/config/src',
43 ],
44 'sources': [
45 '../third_party/externals/fontconfig/src/fcatomic.c',
46 '../third_party/externals/fontconfig/src/fcblanks.c',
47 '../third_party/externals/fontconfig/src/fccache.c',
48 '../third_party/externals/fontconfig/src/fccfg.c',
49 '../third_party/externals/fontconfig/src/fccharset.c',
50 '../third_party/externals/fontconfig/src/fccompat.c',
51 '../third_party/externals/fontconfig/src/fcdbg.c',
52 '../third_party/externals/fontconfig/src/fcdefault.c',
53 '../third_party/externals/fontconfig/src/fcdir.c',
54 '../third_party/externals/fontconfig/src/fcfreetype.c',
55 '../third_party/externals/fontconfig/src/fcfs.c',
56 '../third_party/externals/fontconfig/src/fchash.c',
57 '../third_party/externals/fontconfig/src/fcinit.c',
58 '../third_party/externals/fontconfig/src/fclang.c',
59 '../third_party/externals/fontconfig/src/fclist.c',
60 '../third_party/externals/fontconfig/src/fcmatch.c',
61 '../third_party/externals/fontconfig/src/fcmatrix.c',
62 '../third_party/externals/fontconfig/src/fcname.c',
63 '../third_party/externals/fontconfig/src/fcobjs.c',
64 '../third_party/externals/fontconfig/src/fcpat.c',
65 '../third_party/externals/fontconfig/src/fcserialize.c',
66 '../third_party/externals/fontconfig/src/fcstat.c',
67 '../third_party/externals/fontconfig/src/fcstr.c',
68 '../third_party/externals/fontconfig/src/fcxml.c',
69 '../third_party/externals/fontconfig/src/ftglue.c',
70 ],
71 'defines': [
72 'HAVE_CONFIG_H',
73 ],
74 'cflags': [
75 '-fPIC',
76 ],
77
78 'direct_dependent_settings': {
79 'include_dirs': [
80 '../third_party/externals/fontconfig',
81 ],
82 },
83
84 'conditions': [
85 ['skia_os == "mac"', {
86 'include_dirs': [
commit-bot@chromium.org83f56922014-01-09 22:54:26 +000087 '<(SHARED_INTERMEDIATE_DIR)/fontconfig_config',
commit-bot@chromium.org327c0812013-08-20 18:57:01 +000088 '../third_party/fontconfig/config/mac',
89 '../third_party/fontconfig/config/mac/src',
90 ],
commit-bot@chromium.org83f56922014-01-09 22:54:26 +000091 'dependencies': [
92 'fontconfig_config_template',
commit-bot@chromium.org327c0812013-08-20 18:57:01 +000093 ],
94 'libraries': [
95 '$(SDKROOT)/usr/lib/libexpat.dylib',
96 ],
97 'xcode_settings': {
98 'DYLIB_INSTALL_NAME_BASE': '@executable_path',
99 },
100 }],
101 ['skia_os == "win"', {
102 'include_dirs': [
103 '../third_party/fontconfig/config/windows',
104 '../third_party/fontconfig/config/windows/src',
105 ],
106 'sources!': [
107 '../third_party/externals/fontconfig/src/fccompat.c',
108 '../third_party/externals/fontconfig/src/fcxml.c',
109 ],
110 'defines': [
111 # inline is not recognized in C and has to be __inline
112 'inline=__inline',
113 ],
114 }],
115 ],
116 },
117 ],
commit-bot@chromium.org83f56922014-01-09 22:54:26 +0000118 'conditions': [
119 ['skia_os == "mac"', {
120 'variables': {
121 'cachedir': '<(PRODUCT_DIR)/fontconfig/cache',
122 'configdir': '<(PRODUCT_DIR)/fontconfig/etc',
123 },
124 'targets': [
125 {
126 'target_name': 'fontconfig_config_template',
127 'type': 'none',
128 'actions': [{
129 'action_name': 'fontconfig_config_template',
130 'message': 'Generating fontconfig header',
131 'inputs': [
132 '../third_party/fontconfig/process-template.py',
133 '../third_party/fontconfig/config/mac/config.h.template',
134 ],
135 'outputs': [
136 '<(SHARED_INTERMEDIATE_DIR)/fontconfig_config/config.h',
137 ],
138 'action': [
139 'python', '../third_party/fontconfig/process-template.py',
140 '-i', '../third_party/fontconfig/config/mac/config.h.template',
141 '-o', '<@(_outputs)',
142 '-p', '@FC_CACHEDIR@', '<(cachedir)',
143 '-p', '@FONTCONFIG_PATH@', '<(configdir)',
144 ],
145 }],
146 }, {
147 'target_name': 'fontconfig_setup',
148 'type': 'none',
149 'dependencies': [
150 'fc-cache',
151 ],
152 'actions': [{
153 'action_name': 'fontconfig_config_file',
154 'message': 'Generating font.conf',
155 'inputs': [
156 '../third_party/fontconfig/process-template.py',
157 '../third_party/externals/fontconfig/fonts.conf.in',
158 ],
159 'outputs': [ '<(configdir)/fonts.conf', ],
160 'action': [
161 'python', '../third_party/fontconfig/process-template.py',
162 '-i', '../third_party/externals/fontconfig/fonts.conf.in',
163 '-o', '<(configdir)/fonts.conf',
164 '-p', '@FC_CACHEDIR@', '<(cachedir)',
165 '-k', '@FC_DEFAULT_FONTS@', '/System/Library/Fonts',
166 '-k', '@FC_FONTPATH@', '<dir>/Library/Fonts</dir>',
167 '-p', '@CONFIGDIR@', '<(configdir)/conf.d',
168 '-k', '@PACKAGE@', 'fontconfig',
commit-bot@chromium.orgfa190be2014-01-15 17:24:22 +0000169 '-k', '@VERSION@', '2.11.0',
commit-bot@chromium.org83f56922014-01-09 22:54:26 +0000170 ],
171 }, {
172 'action_name': 'populate_fontconfig_cache',
173 'message':
174 'Generating fontconfig cache (this will take a few minutes).',
175 'inputs': [
176 '<(PRODUCT_DIR)/fc-cache',
177 '<(configdir)/fonts.conf',
178 ],
179 'outputs': [ '<(cachedir)/CACHEDIR.TAG', ],
180 'action': [ '<(PRODUCT_DIR)/fc-cache', '-s', '-f', '-v', ],
181 }],
182 },
183 {
184 'target_name': 'fc-cache',
185 'type': 'executable',
186 'dependencies': [
187 'libfontconfig',
188 ],
189 'libraries':[
190 '$(SDKROOT)/usr/lib/libexpat.dylib',
191 ],
192 'sources': [
193 '../third_party/externals/fontconfig/fc-cache/fc-cache.c',
194 ],
195 },
196 ],
197 }],
198 ],
commit-bot@chromium.org327c0812013-08-20 18:57:01 +0000199}