project.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. let project = new Project("amake");
  2. {
  3. // alang
  4. project.add_define("NO_GC");
  5. project.add_define("NO_IRON_API");
  6. project.add_define("NO_KINC_START");
  7. project.add_tsfiles("./"); // alang.ts
  8. project.add_include_dir("./"); // iron.h
  9. project.add_cfiles("build/iron.c");
  10. project.add_include_dir("../../sources");
  11. project.add_cfiles("../../sources/iron_string.c");
  12. project.add_cfiles("../../sources/iron_array.c");
  13. project.add_cfiles("../../sources/iron_map.c");
  14. project.add_cfiles("../../sources/iron_armpack.c");
  15. project.add_cfiles("../../sources/iron_json.c");
  16. project.add_cfiles("../../sources/iron_gc.c");
  17. }
  18. project.add_include_dir("../../sources/libs");
  19. project.add_cfiles("../../sources/libs/quickjs/*.c");
  20. project.add_cfiles("main.c");
  21. project.add_cfiles("aimage.c");
  22. {
  23. project.add_cfiles("ashader.c");
  24. if (platform === "linux") {
  25. project.add_project("../to_spirv"); // Replace with https://github.com/Kode/Kongruent
  26. project.flatten();
  27. }
  28. }
  29. if (platform === "linux") {
  30. // quickjs
  31. project.add_lib("m");
  32. project.add_lib("dl");
  33. project.add_define("_GNU_SOURCE");
  34. project.add_define("environ=__environ");
  35. project.add_define("sighandler_t=__sighandler_t");
  36. }
  37. else if (platform === "windows") {
  38. // quickjs
  39. project.add_define("WIN32_LEAN_AND_MEAN");
  40. project.add_define("_WIN32_WINNT=0x0602");
  41. // hlslbin
  42. project.add_lib("d3dcompiler");
  43. project.add_lib("dxguid");
  44. }
  45. else if (platform === "macos") {
  46. project.add_cfiles("../../sources/backends/macos/kinc/backend/mac.plist");
  47. }
  48. // QuickJS changes:
  49. // quickjs-libc.c#85 (fixes "import * as os from 'os';" crash):
  50. // #define USE_WORKER -> //#define USE_WORKER
  51. // "quickjs.h#259" (fixes "Maximum call stack size exceeded" in alang):
  52. // #define JS_DEFAULT_STACK_SIZE (256 * 1024) -> #define JS_DEFAULT_STACK_SIZE (8 * 1024 * 1024)
  53. return project;