* [bug#56576] [PATCH] gnu: Add nuklear. @ 2022-07-15 14:57 Antero Mejr via Guix-patches via 2022-08-05 3:03 ` 宋文武 via Guix-patches via 2022-08-06 22:57 ` [bug#56576] [PATCH 1/2] gnu: Add stddoc Antero Mejr via Guix-patches via 0 siblings, 2 replies; 5+ messages in thread From: Antero Mejr via Guix-patches via @ 2022-07-15 14:57 UTC (permalink / raw) To: 56576 * gnu/packages/c.scm (nuklear): New variable. --- gnu/packages/c.scm | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/gnu/packages/c.scm b/gnu/packages/c.scm index b1f68c706b..61bc1f13dc 100644 --- a/gnu/packages/c.scm +++ b/gnu/packages/c.scm @@ -1219,3 +1219,38 @@ (define-public utest-h (description "This package provides a header-only unit testing library for C/C++.") (license license:unlicense)))) + +(define-public nuklear + (package + (name "nuklear") + (version "4.9.6") + (home-page "https://github.com/Immediate-Mode-UI/Nuklear") + (source (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "18hvrmynycv5msc20f5v4drgapbig85s67iqq6k87n9l816zi1qg")))) + (build-system python-build-system) + (arguments + (list #:tests? #f ;no tests + #:phases #~(modify-phases %standard-phases + (delete 'configure) + (replace 'build + (lambda _ + (with-directory-excursion "src" + (invoke "./paq.sh")))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (install-file "nuklear.h" + (string-append #$output "/include"))))))) + (synopsis "Graphical user interface toolkit written in ANSI C") + (description "This package provides an immediate-mode graphical user +interface toolkit. It was designed as an embeddable user interface +for applications and does not have any dependencies, a default render backend +or OS window/input handling. The library is self contained in one single header +file and can be used either in header only mode or in implementation mode.") + (license (list license:unlicense license:expat)))) -- 2.36.1 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [bug#56576] [PATCH] gnu: Add nuklear. 2022-07-15 14:57 [bug#56576] [PATCH] gnu: Add nuklear Antero Mejr via Guix-patches via @ 2022-08-05 3:03 ` 宋文武 via Guix-patches via 2022-08-06 22:57 ` [bug#56576] [PATCH 1/2] gnu: Add stddoc Antero Mejr via Guix-patches via 1 sibling, 0 replies; 5+ messages in thread From: 宋文武 via Guix-patches via @ 2022-08-05 3:03 UTC (permalink / raw) To: Antero Mejr; +Cc: 56576 Antero Mejr <antero@mailbox.org> writes: > * gnu/packages/c.scm (nuklear): New variable. > --- > gnu/packages/c.scm | 35 +++++++++++++++++++++++++++++++++++ > 1 file changed, 35 insertions(+) Hello, I think better put it in toolkits.scm, as imgui is there. > > diff --git a/gnu/packages/c.scm b/gnu/packages/c.scm > index b1f68c706b..61bc1f13dc 100644 > --- a/gnu/packages/c.scm > +++ b/gnu/packages/c.scm > @@ -1219,3 +1219,38 @@ (define-public utest-h > (description > "This package provides a header-only unit testing library for C/C++.") > (license license:unlicense)))) > + > +(define-public nuklear > + (package > + (name "nuklear") > + (version "4.9.6") 4.10.1 was released yesterday, time to update! > + (home-page "https://github.com/Immediate-Mode-UI/Nuklear") > + (source (origin > + (method git-fetch) > + (uri (git-reference > + (url home-page) > + (commit version))) > + (file-name (git-file-name name version)) > + (sha256 > + (base32 > + "18hvrmynycv5msc20f5v4drgapbig85s67iqq6k87n9l816zi1qg")))) > + (build-system python-build-system) > + (arguments > + (list #:tests? #f ;no tests > + #:phases #~(modify-phases %standard-phases > + (delete 'configure) > + (replace 'build > + (lambda _ > + (with-directory-excursion "src" > + (invoke "./paq.sh")))) > + (replace 'install > + (lambda* (#:key outputs #:allow-other-keys) > + (install-file "nuklear.h" > + (string-append #$output > "/include"))))))) How about install the html doc too? > + (synopsis "Graphical user interface toolkit written in ANSI C") > + (description "This package provides an immediate-mode graphical user > +interface toolkit. It was designed as an embeddable user interface > +for applications and does not have any dependencies, a default render backend > +or OS window/input handling. The library is self contained in one single header > +file and can be used either in header only mode or in implementation mode.") > + (license (list license:unlicense license:expat)))) Could you send an update, thank you! ^ permalink raw reply [flat|nested] 5+ messages in thread
* [bug#56576] [PATCH 1/2] gnu: Add stddoc. 2022-07-15 14:57 [bug#56576] [PATCH] gnu: Add nuklear Antero Mejr via Guix-patches via 2022-08-05 3:03 ` 宋文武 via Guix-patches via @ 2022-08-06 22:57 ` Antero Mejr via Guix-patches via 2022-08-06 22:57 ` [bug#56576] [PATCH 2/2] gnu: Add nuklear Antero Mejr via Guix-patches via 2022-08-07 12:10 ` [bug#56576] [PATCH 1/2] gnu: Add stddoc Maxime Devos 1 sibling, 2 replies; 5+ messages in thread From: Antero Mejr via Guix-patches via @ 2022-08-06 22:57 UTC (permalink / raw) To: 56576; +Cc: Antero Mejr, iyzsong * gnu/packages/documentation.scm (stddoc): New variable. --- Need this to generate Nuklear's HTML doc from source (code comments). gnu/packages/documentation.scm | 42 ++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/gnu/packages/documentation.scm b/gnu/packages/documentation.scm index 6f24149b5d..9b98db4d40 100644 --- a/gnu/packages/documentation.scm +++ b/gnu/packages/documentation.scm @@ -393,3 +393,45 @@ (define-public zeal (description "Zeal is a simple offline documentation browser inspired by Dash.") (license gpl3+)))) + +(define-public stddoc + (let ((commit "6eef9deaf2e36bae812f50e448a8012b3e5efb14")) + (package + (name "stddoc") + (version "1.0.2") + (home-page "https://github.com/r-lyeh/stddoc.c") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "06phjp7wbf4x1sagxwfapgv6iyiixmijxxbg2clb48kyvjg5mlwn")) + (snippet #~(delete-file "stddoc.c.html")))) + (build-system gnu-build-system) + (arguments + (list #:tests? #f ;no tests + #:phases #~(modify-phases %standard-phases + (delete 'configure) + (replace 'build + (lambda _ + (invoke "gcc" "-O2" "-g" "-o" "stddoc" "stddoc.c") + (with-input-from-file "stddoc.c" + (lambda _ + (with-output-to-file "stddoc.c.html" + (lambda _ + (invoke "./stddoc"))))))) + (replace 'install + (lambda _ + (install-file "stddoc" + (string-append #$output "/bin")) + (install-file "stddoc.c.html" + (string-append #$output + "/share/doc"))))))) + (synopsis "Documentation generator for 60 programming languages") + (description "@code{stddoc.c} is a tiny documentation generator for 60 +programming languages. Markdeep code comments are extracted from stdin and +printed into stdout as a HTML file.") + (license unlicense)))) -- 2.37.1 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [bug#56576] [PATCH 2/2] gnu: Add nuklear. 2022-08-06 22:57 ` [bug#56576] [PATCH 1/2] gnu: Add stddoc Antero Mejr via Guix-patches via @ 2022-08-06 22:57 ` Antero Mejr via Guix-patches via 2022-08-07 12:10 ` [bug#56576] [PATCH 1/2] gnu: Add stddoc Maxime Devos 1 sibling, 0 replies; 5+ messages in thread From: Antero Mejr via Guix-patches via @ 2022-08-06 22:57 UTC (permalink / raw) To: 56576; +Cc: Antero Mejr, iyzsong * gnu/packages/toolkits.scm (nuklear): New variable. --- Package moved to toolkits.scm, updated to 4.10.1, installs HTML doc generated using stddoc. gnu/packages/toolkits.scm | 49 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/gnu/packages/toolkits.scm b/gnu/packages/toolkits.scm index 3030e3aa49..79ea8068f1 100644 --- a/gnu/packages/toolkits.scm +++ b/gnu/packages/toolkits.scm @@ -19,6 +19,7 @@ ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (gnu packages toolkits) + #:use-module (gnu packages documentation) #:use-module (gnu packages fontutils) #:use-module (gnu packages gl) #:use-module (gnu packages sdl) @@ -27,6 +28,7 @@ (define-module (gnu packages toolkits) #:use-module (guix packages) #:use-module (guix utils) #:use-module (guix build-system gnu) + #:use-module (guix build-system python) #:use-module (guix git-download)) (define-public imgui @@ -141,3 +143,50 @@ (define-public imgui-1.86 (sha256 (base32 "02a7b05zrka20jhzag2jb4jl624i1m456bsv69jb9zgys2p9dv1n")))))) + +(define-public nuklear + (package + (name "nuklear") + (version "4.10.1") + (home-page "https://github.com/Immediate-Mode-UI/Nuklear") + (source (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0qmaza0iiq3da3qya23znnajmv9prm6rv0nbqg58qdrl23207kar")) + (snippet #~(begin (delete-file "nuklear.h") + (delete-file "doc/index.html"))))) + (build-system python-build-system) + (arguments + (list #:tests? #f ;no tests + #:phases #~(modify-phases %standard-phases + (delete 'configure) + (replace 'build + (lambda _ + (with-directory-excursion "src" + (invoke "./paq.sh")) + (with-directory-excursion "doc" + (with-input-from-file "../nuklear.h" + (lambda _ + (with-output-to-file "index.html" + (lambda _ + (invoke "stddoc")))))))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (install-file "nuklear.h" + (string-append #$output "/include")) + (install-file "doc/index.html" + (string-append #$output + "/share/doc"))))))) + (native-inputs (list stddoc)) + (synopsis "Graphical user interface toolkit written in ANSI C") + (description "This package provides an immediate-mode graphical user +interface toolkit. It was designed as an embeddable user interface +for applications and does not have any dependencies, a default render backend +or OS window/input handling. The library is self contained in one single header +file and can be used either in header only mode or in implementation mode.") + (license (list license:unlicense license:expat)))) -- 2.37.1 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [bug#56576] [PATCH 1/2] gnu: Add stddoc. 2022-08-06 22:57 ` [bug#56576] [PATCH 1/2] gnu: Add stddoc Antero Mejr via Guix-patches via 2022-08-06 22:57 ` [bug#56576] [PATCH 2/2] gnu: Add nuklear Antero Mejr via Guix-patches via @ 2022-08-07 12:10 ` Maxime Devos 1 sibling, 0 replies; 5+ messages in thread From: Maxime Devos @ 2022-08-07 12:10 UTC (permalink / raw) To: Antero Mejr, 56576; +Cc: iyzsong [-- Attachment #1.1.1: Type: text/plain, Size: 2364 bytes --] On 07-08-2022 00:57, Antero Mejr via Guix-patches via wrote: > + (invoke "gcc" "-O2" "-g" "-o" "stddoc" "stddoc.c") For cross-compilation, you need to use #$(cc-for-target) instead of "gcc", otherwise it will be compiled for the wrong architecture. > + (with-input-from-file "stddoc.c" > + (lambda _ > + (with-output-to-file "stddoc.c.html" > + (lambda _ > + (invoke "./stddoc"))))))) Except when emulation is used, cross-compiled binaries cannot be run. However, you can add 'this-package' to native-inputs (conditional on cross-compilation, otherwise you get a loop) and run that stddoc: (native-inputs (if (%current-target-system) (list this-package) '())) [...] (invoke #$(if (%current-target-system) "stddoc" "./stddoc")) (untested!). It includes Javascript and CSS from external sources: > static void stddoc( FILE *in, FILE *out ) { > fprintf(out, "%s\n", "<meta charset='utf-8' emacsmode='-*- > markdown -*-'>"); > fprintf(out, "%s\n", "<link rel='stylesheet' > href='https://casual-effects.com/m""arkdeep/latest/apidoc.css?'>"); > I don't think this is good, privacy-wise, could you substitute them with a local copy? Also, on <https://github.com/r-lyeh/stddoc.c/blob/6eef9deaf2e36bae812f50e448a8012b3e5efb14/stddoc.c#L111>, it looks like it forgets to quote things like &. I don't know if that's important in this particular case but often forgetting to quote things can be pretty bad. (Ignoring the return value of printf also isn't ideal, but less important) > + (description "@code{stddoc.c} is a tiny documentation generator for 60 > +programming languages. Markdeep code comments are extracted from stdin and > +printed into stdout as a HTML file.") This seems misleading to me, the Markdown->HTML happens at runtime, via the Javascript. Also, instead of mentioning the number 60, you could refer to the Javascript package; that way, the user can check if their language is in the list. I also don't think that the generator 'https://morgan3d.github.io/markdeep/latest/markdeep.js' counts as tiny. stdout -> output, stdin -> input Greetings, Maxime [-- Attachment #1.1.2: OpenPGP public key --] [-- Type: application/pgp-keys, Size: 929 bytes --] [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 236 bytes --] ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2022-08-07 12:12 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2022-07-15 14:57 [bug#56576] [PATCH] gnu: Add nuklear Antero Mejr via Guix-patches via 2022-08-05 3:03 ` 宋文武 via Guix-patches via 2022-08-06 22:57 ` [bug#56576] [PATCH 1/2] gnu: Add stddoc Antero Mejr via Guix-patches via 2022-08-06 22:57 ` [bug#56576] [PATCH 2/2] gnu: Add nuklear Antero Mejr via Guix-patches via 2022-08-07 12:10 ` [bug#56576] [PATCH 1/2] gnu: Add stddoc Maxime Devos
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/guix.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).