| %YAML 1.2 |
| --- | |
| // $Id$ |
| // vim:ft=javascript |
| |
| ARG_WITH("grpc", "grpc support", "no"); |
| |
| if (PHP_GRPC != "no") { |
| <% |
| srcs = [] |
| srcs.extend(php_config_m4.src) |
| lib_maps = {lib.name: lib for lib in libs} |
| php_deps = php_config_m4.get('deps', []) |
| php_full_deps = [] |
| for dep in php_deps: |
| php_full_deps.append(dep) |
| lib = lib_maps.get(dep, None) |
| if lib: |
| php_full_deps.extend(lib.transitive_deps) |
| # construct list of all source files, but explicitly exclude cares |
| for dep in set(php_full_deps) - set({'cares'}): |
| lib = lib_maps.get(dep, None) |
| if lib: |
| srcs.extend(lib.src) |
| srcs = sorted(set(srcs)) |
| %> |
| EXTENSION("grpc", |
| % for src in srcs: |
| "${src.replace('/','\\\\')} " + |
| % endfor |
| "" |
| , null, |
| "/DOPENSSL_NO_ASM /D_GNU_SOURCE /DWIN32_LEAN_AND_MEAN "+ |
| "/D_HAS_EXCEPTIONS=0 /DNOMINMAX /DGRPC_ARES=0 /D_WIN32_WINNT=0x600 "+ |
| "/I"+configure_module_dirname+" "+ |
| "/I"+configure_module_dirname+"\\include "+ |
| "/I"+configure_module_dirname+"\\src\\core\\ext\\upb-gen "+ |
| "/I"+configure_module_dirname+"\\src\\core\\ext\\upbdefs-gen "+ |
| "/I"+configure_module_dirname+"\\src\\php\\ext\\grpc "+ |
| "/I"+configure_module_dirname+"\\third_party\\abseil-cpp "+ |
| "/I"+configure_module_dirname+"\\third_party\\address_sorting\\include "+ |
| "/I"+configure_module_dirname+"\\third_party\\boringssl-with-bazel\\src\\include "+ |
| "/I"+configure_module_dirname+"\\third_party\\re2 "+ |
| "/I"+configure_module_dirname+"\\third_party\\upb "+ |
| "/I"+configure_module_dirname+"\\third_party\\utf8_range "+ |
| "/I"+configure_module_dirname+"\\third_party\\xxhash "+ |
| "/I"+configure_module_dirname+"\\third_party\\zlib "); |
| <% |
| dirs = sorted(set(src[:src.rfind('/')] for src in srcs)) |
| dirset = set(dirs) |
| for dir in dirs: |
| frags = dir.split('/') |
| for i in range(1, len(frags)): |
| dirset.add('/'.join(frags[:i])) |
| dirs = [d.replace('/', '\\\\') for d in sorted(dirset)] |
| %> |
| base_dir = get_define('BUILD_DIR'); |
| FSO.CreateFolder(base_dir+"\\ext"); |
| FSO.CreateFolder(base_dir+"\\ext\\grpc"); |
| % for dir in dirs: |
| FSO.CreateFolder(base_dir+"\\ext\\grpc\\${dir}"); |
| % endfor |
| _build_dirs = new Array(); |
| for (i = 0; i < build_dirs.length; i++) { |
| if (build_dirs[i].indexOf('grpc') == -1) { |
| _build_dirs[_build_dirs.length] = build_dirs[i]; |
| } |
| } |
| build_dirs = _build_dirs; |
| } |