blob: 4edef963f2cef4a9cdc28accd968fb796ad216aa [file] [log] [blame]
Stanley Cheungaf525b32017-05-19 20:00:06 -07001%YAML 1.2
2--- |
3 // $Id$
4 // vim:ft=javascript
5
6 ARG_WITH("grpc", "grpc support", "no");
7
8 if (PHP_GRPC != "no") {
9
10 grpc_source =
11 % for source in php_config_m4.src:
12 "${source.replace('/','\\\\')} " +
13 % endfor
14 % for lib in libs:
15 % if lib.name in php_config_m4.get('deps', []) and lib.name != 'ares':
16 % for source in lib.src:
17 "${source.replace('/','\\\\')} " +
18 % endfor
19 % endif
20 % endfor
21 "";
22
23 EXTENSION("grpc", grpc_source, null,
24 "/DOPENSSL_NO_ASM /D_GNU_SOURCE /DWIN32_LEAN_AND_MEAN "+
25 "/D_HAS_EXCEPTIONS=0 /DNOMINMAX /DGRPC_ARES=0 /D_WIN32_WINNT=0x600 "+
26 "/I"+configure_module_dirname+" "+
27 "/I"+configure_module_dirname+"\\include "+
28 "/I"+configure_module_dirname+"\\src\\php\\ext\\grpc "+
29 "/I"+configure_module_dirname+"\\third_party\\boringssl\\include "+
30 "/I"+configure_module_dirname+"\\third_party\\zlib");
Stanley Cheungbc541442017-06-01 03:22:15 -070031 <%
32 dirs = {}
33 for lib in libs:
34 if lib.name in php_config_m4.get('deps', []) and lib.name != 'ares':
35 for source in lib.src:
36 tmp = source
37 prev = ''
38 while (True):
39 idx = tmp.find('/');
40 if (idx == -1):
41 break
42 dirs[prev + '\\\\' + tmp[:idx]] = 1
43 prev += ('\\\\' + tmp[:idx]);
44 tmp = tmp[idx+1:]
45
46 dirs['\\\\src'] = 1;
47 dirs['\\\\src\\\\php'] = 1;
48 dirs['\\\\src\\\\php\\\\ext'] = 1;
49 dirs['\\\\src\\\\php\\\\ext\\\\grpc'] = 1;
50 dirs = dirs.keys()
51 dirs.sort()
52 %>
53 base_dir = get_define('BUILD_DIR');
54 FSO.CreateFolder(base_dir+"\\ext");
55 FSO.CreateFolder(base_dir+"\\ext\\grpc");
56 % for dir in dirs:
57 FSO.CreateFolder(base_dir+"\\ext\\grpc${dir}");
58 % endfor
59 _build_dirs = new Array();
60 for (i = 0; i < build_dirs.length; i++) {
61 if (build_dirs[i].indexOf('grpc') == -1) {
62 _build_dirs[_build_dirs.length] = build_dirs[i];
63 }
64 }
65 build_dirs = _build_dirs;
66
Stanley Cheungaf525b32017-05-19 20:00:06 -070067 }