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