mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 21:38:07 -05:00
gnu: Add hashlink.
* gnu/packages/haxe.scm (hashlink): New variable. Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
This commit is contained in:
parent
0dba452898
commit
0ff99893bd
1 changed files with 93 additions and 0 deletions
|
@ -189,3 +189,96 @@ (define-public haxe
|
||||||
(license (list license:gpl2+ ; the compiler itself
|
(license (list license:gpl2+ ; the compiler itself
|
||||||
license:expat)))) ; the standard library
|
license:expat)))) ; the standard library
|
||||||
|
|
||||||
|
(define-public hashlink
|
||||||
|
(package
|
||||||
|
(name "hashlink")
|
||||||
|
(version "1.12")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/HaxeFoundation/hashlink")
|
||||||
|
(commit version)))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32 "0i5f1mxpgjcdirx60kxrw0r0y15qh3j16a6fj8mzkq3k7j2hc982"))
|
||||||
|
(modules '((guix build utils)))
|
||||||
|
(snippet
|
||||||
|
'(begin
|
||||||
|
;; Remove bundled libraries (mainly used for Windows build).
|
||||||
|
(delete-file-recursively "include")
|
||||||
|
#t))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(arguments
|
||||||
|
;; Looks like there are tests with CMake, but there is confusion if this
|
||||||
|
;; is a supported way to build on Linux. See, e.g.
|
||||||
|
;; https://github.com/HaxeFoundation/hashlink/issues/397. Also, the
|
||||||
|
;; CMake build requires running the library manager haxelib in the build
|
||||||
|
;; process for the tests, likely requiring network access.
|
||||||
|
;; TODO: Use cmake-build-system instead and enable tests?
|
||||||
|
(list #:tests? #f
|
||||||
|
#:make-flags
|
||||||
|
;; The built hdll libraries need help finding libhl.so.
|
||||||
|
#~(list (string-append "LIBFLAGS=-Wl,-rpath=" #$output "/lib"))
|
||||||
|
#:phases
|
||||||
|
#~(modify-phases %standard-phases
|
||||||
|
;; Don't try to build the (removed) bundled libraries pcre,
|
||||||
|
;; minimp3, and mikktspace. Provide the approriate paths and
|
||||||
|
;; linking options.
|
||||||
|
(add-after 'unpack 'use-system-libs
|
||||||
|
(lambda _
|
||||||
|
(substitute* "Makefile"
|
||||||
|
(("\\$\\{PCRE\\}") "")
|
||||||
|
(("-lpthread") "-lpthread -lpcre16")
|
||||||
|
(("include/minimp3")
|
||||||
|
(string-append #$(this-package-input "minimp3") "/include"))
|
||||||
|
(("include/mikktspace ")
|
||||||
|
(string-append #$(this-package-input "mikktspace") "/include "))
|
||||||
|
(("include/mikktspace/mikktspace.o") "")
|
||||||
|
(("-lpng") "-lpng -lmikktspace"))))
|
||||||
|
(replace 'configure
|
||||||
|
(lambda* _
|
||||||
|
(setenv "CC" #$(cc-for-target))
|
||||||
|
(setenv "PREFIX" #$output)))
|
||||||
|
(replace 'build
|
||||||
|
(lambda* (#:key make-flags parallel-build? #:allow-other-keys)
|
||||||
|
(apply invoke "make" "-j" (if parallel-build?
|
||||||
|
(number->string (parallel-job-count))
|
||||||
|
"1")
|
||||||
|
make-flags))))))
|
||||||
|
(inputs (list glu
|
||||||
|
haxe
|
||||||
|
libjpeg-turbo
|
||||||
|
libpng
|
||||||
|
libuv
|
||||||
|
libvorbis
|
||||||
|
mbedtls-apache
|
||||||
|
mikktspace
|
||||||
|
minimp3
|
||||||
|
openal
|
||||||
|
pcre
|
||||||
|
sdl2
|
||||||
|
sqlite
|
||||||
|
zlib))
|
||||||
|
(native-inputs (list pkg-config))
|
||||||
|
(home-page "https://hashlink.haxe.org/")
|
||||||
|
(synopsis "Virtual machine for the Haxe language")
|
||||||
|
(description
|
||||||
|
"HashLink (HL) is a virtual machine for the Haxe language. It can run
|
||||||
|
bytecode produced by the Haxe compiler, or converted to C by HL. The HashLink runtime
|
||||||
|
includes the following features:
|
||||||
|
@itemize
|
||||||
|
@item Fully compatible with the Haxe specification
|
||||||
|
@item Support file I/O, regular expressions, network, etc.
|
||||||
|
@item Unicode strings by default
|
||||||
|
@item Mark-and-not-sweep Garbage Collector
|
||||||
|
@item x86 and x86-64 HL/C compilation
|
||||||
|
@item x86 and x86-64 HL/JIT compilation
|
||||||
|
@end itemize
|
||||||
|
|
||||||
|
While the standard HL runtime provides support for Haxe standard library,
|
||||||
|
HashLink also provides several libraries that can optionally be used to build
|
||||||
|
HL-specific applications. This includes the FMT library for compression and
|
||||||
|
image support and SDL for mouse, keyboard, and game controller support,
|
||||||
|
OpenGL, and more.")
|
||||||
|
(license license:expat)))
|
||||||
|
|
Loading…
Reference in a new issue