1%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 srcs = [] 11 srcs.extend(php_config_m4.src) 12 lib_maps = {lib.name: lib for lib in libs} 13 php_deps = php_config_m4.get('deps', []) 14 php_full_deps = [] 15 for dep in php_deps: 16 php_full_deps.append(dep) 17 lib = lib_maps.get(dep, None) 18 if lib: 19 php_full_deps.extend(lib.transitive_deps) 20 # construct list of all source files, but explicitly exclude cares 21 for dep in set(php_full_deps) - set({'cares'}): 22 lib = lib_maps.get(dep, None) 23 if lib: 24 srcs.extend(lib.src) 25 srcs = sorted(set(srcs)) 26 %> 27 EXTENSION("grpc", 28 % for src in srcs: 29 "${src.replace('/','\\\\')} " + 30 % endfor 31 "" 32 , null, 33 "/DOPENSSL_NO_ASM /D_GNU_SOURCE /DWIN32_LEAN_AND_MEAN "+ 34 "/D_HAS_EXCEPTIONS=0 /DNOMINMAX /DGRPC_ARES=0 /D_WIN32_WINNT=0x600 "+ 35 "/I"+configure_module_dirname+" "+ 36 "/I"+configure_module_dirname+"\\include "+ 37 "/I"+configure_module_dirname+"\\src\\core\\ext\\upb-gen "+ 38 "/I"+configure_module_dirname+"\\src\\core\\ext\\upbdefs-gen "+ 39 "/I"+configure_module_dirname+"\\src\\php\\ext\\grpc "+ 40 "/I"+configure_module_dirname+"\\third_party\\abseil-cpp "+ 41 "/I"+configure_module_dirname+"\\third_party\\address_sorting\\include "+ 42 "/I"+configure_module_dirname+"\\third_party\\boringssl-with-bazel\\src\\include "+ 43 "/I"+configure_module_dirname+"\\third_party\\re2 "+ 44 "/I"+configure_module_dirname+"\\third_party\\upb "+ 45 "/I"+configure_module_dirname+"\\third_party\\utf8_range "+ 46 "/I"+configure_module_dirname+"\\third_party\\xxhash "+ 47 "/I"+configure_module_dirname+"\\third_party\\zlib "); 48 <% 49 dirs = sorted(set(src[:src.rfind('/')] for src in srcs)) 50 dirset = set(dirs) 51 for dir in dirs: 52 frags = dir.split('/') 53 for i in range(1, len(frags)): 54 dirset.add('/'.join(frags[:i])) 55 dirs = [d.replace('/', '\\\\') for d in sorted(dirset)] 56 %> 57 base_dir = get_define('BUILD_DIR'); 58 FSO.CreateFolder(base_dir+"\\ext"); 59 FSO.CreateFolder(base_dir+"\\ext\\grpc"); 60 % for dir in dirs: 61 FSO.CreateFolder(base_dir+"\\ext\\grpc\\${dir}"); 62 % endfor 63 _build_dirs = new Array(); 64 for (i = 0; i < build_dirs.length; i++) { 65 if (build_dirs[i].indexOf('grpc') == -1) { 66 _build_dirs[_build_dirs.length] = build_dirs[i]; 67 } 68 } 69 build_dirs = _build_dirs; 70 } 71