config.w32.template 2.2 KB

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