guix.scm 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. (use-modules (guix)
  2. (guix build-system cmake)
  3. (guix build-system gnu)
  4. (guix gexp)
  5. (guix git)
  6. (guix git-download)
  7. ((guix licenses) #:prefix license:)
  8. (guix packages)
  9. (gnu packages autotools)
  10. (gnu packages base)
  11. (gnu packages bash)
  12. (gnu packages gawk)
  13. (gnu packages glib)
  14. (gnu packages guile)
  15. (gnu packages guile-xyz)
  16. (gnu packages icu4c)
  17. (gnu packages llvm)
  18. (gnu packages ninja)
  19. (gnu packages pkg-config)
  20. (gnu packages perl)
  21. (gnu packages python)
  22. (gnu packages texinfo)
  23. (gnu packages version-control))
  24. (define guile-next-next
  25. (let ((commit "3b76a30e3ca1f0b7ee7944836c2fc5660596b3bd")
  26. (revision "1"))
  27. (package
  28. (inherit guile-next)
  29. (version (git-version "3.0.9" revision commit))
  30. (source
  31. (origin
  32. (method git-fetch)
  33. (uri (git-reference
  34. (url "https://git.savannah.gnu.org/git/guile.git")
  35. (commit commit)))
  36. (file-name (git-file-name "guile" version))
  37. (sha256
  38. (base32 "1cgyjz1x8zpfhsw8gsqkak1lnmi780gps6874ks0bi8dwk0lwx6f")))))))
  39. (define node
  40. (package
  41. (name "node")
  42. (version "22.3.0")
  43. (source (origin
  44. (method url-fetch)
  45. (uri (string-append "https://nodejs.org/dist/v" version
  46. "/node-v" version ".tar.xz"))
  47. (sha256
  48. (base32 "0k0h4s9s2y0ms3g6xhynsqsrkl9hz001dmj6j0gpc5x5vk8mpf5z"))))
  49. (build-system gnu-build-system)
  50. (arguments
  51. `(#:tests? #f
  52. #:phases
  53. (modify-phases %standard-phases
  54. (replace 'configure
  55. (lambda* (#:key outputs inputs native-inputs #:allow-other-keys)
  56. (let ((prefix (assoc-ref outputs "out")))
  57. (setenv "CC_host" "gcc")
  58. (setenv "CXX_host" "g++")
  59. (setenv "CC" ,(cc-for-target))
  60. (setenv "CXX" ,(cxx-for-target))
  61. (invoke (search-input-file (or native-inputs inputs)
  62. "/bin/python3")
  63. "configure"
  64. (string-append "--prefix=" prefix))))))))
  65. (native-inputs (list ninja python))
  66. (native-search-paths
  67. (list (search-path-specification
  68. (variable "NODE_PATH")
  69. (files '("lib/node_modules")))))
  70. (synopsis "Evented I/O for V8 JavaScript")
  71. (description
  72. "Node.js is a platform built on Chrome's JavaScript runtime
  73. for easily building fast, scalable network applications. Node.js uses an
  74. event-driven, non-blocking I/O model that makes it lightweight and efficient,
  75. perfect for data-intensive real-time applications that run across distributed
  76. devices.")
  77. (home-page "https://nodejs.org/")
  78. (license license:expat)))
  79. (package
  80. (name "guile-hoot")
  81. (version "0.4.1-git")
  82. (source (git-checkout (url (dirname (current-filename)))))
  83. (build-system gnu-build-system)
  84. (arguments
  85. '(#:make-flags '("GUILE_AUTO_COMPILE=0")))
  86. (native-inputs
  87. (list autoconf automake guile-syntax-highlight pkg-config texinfo))
  88. (inputs
  89. (list guile-next-next node))
  90. (synopsis "WebAssembly compiler for Guile Scheme")
  91. (description "Guile-hoot is an ahead-of-time, whole-program WebAssembly compiler for
  92. GNU Guile.")
  93. (home-page "https://spritely.institute/hoot")
  94. (license (list license:asl2.0 license:lgpl3+)))