From e1923108945cdf18ef7d910b7a7946164059c94f Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Wed, 2 Sep 2020 11:52:15 -0400 Subject: shell.nix --- .gitignore | 11 ++++++- dub.sdl | 15 ++++----- dub.selections.json | 2 +- makefile | 14 ++++----- org/spine_build_scaffold.org | 75 ++++++++++++++++++++++++++++++++++---------- shell.nix | 19 +++++++++++ 6 files changed, 103 insertions(+), 33 deletions(-) mode change 100644 => 100755 dub.sdl create mode 100644 shell.nix diff --git a/.gitignore b/.gitignore index 2dec148..734dcaf 100644 --- a/.gitignore +++ b/.gitignore @@ -15,6 +15,7 @@ !*.d !*.rb !conf.sdl +!shell.nix !doc !doc/** !man @@ -22,6 +23,12 @@ !org !misc !misc/** +#!*.nix +#!nix +#!nix/** +#!nix-devEnv +#!nix-devEnv/** +#!.envrc !src !src/** !data @@ -36,7 +43,8 @@ !**/*.ssm !subprojects !subprojects/*.wrap -!subprojects/*.meson.build +#!subprojects/*.meson.build +#!subprojects/** !pod.manifest !sisu_document_make !config_local_site @@ -57,6 +65,7 @@ tmp/** *_.d *_.txt *_ +*.swp *~ \#* *.\#* diff --git a/dub.sdl b/dub.sdl old mode 100644 new mode 100755 index 09d508f..3fc29da --- a/dub.sdl +++ b/dub.sdl @@ -1,3 +1,4 @@ +#!/usr/bin/env dub name "spine" description "sisu document parser" homepage "http://sisudoc.org" @@ -17,11 +18,11 @@ dependency "dyaml" version="~>0.8.0" # https://code.dlan dependency "tinyendian" version="~>0.2.0" # http://code.dlang.org/packages/tinyendian https://github.com/dlang-community/tinyendian // dyaml dependency configuration "default" { targetName "spine" - postGenerateCommands "/usr/bin/notify-send -t 0 'D executable ready' 'spine'" + #postGenerateCommands "notify-send -t 0 'D executable ready' 'spine'" } configuration "dmd" { targetName "spine-dmd" - postGenerateCommands "/usr/bin/notify-send -t 0 'D executable ready' 'spine-dmd'" + #postGenerateCommands "notify-send -t 0 'D executable ready' 'spine-dmd'" } buildType "dmd" { dflags "-J=views" "-I=src/doc_reform" @@ -36,11 +37,11 @@ configuration "dmd-version" { dflags "-J=views" "-I=src/doc_reform" buildOptions "verbose" "optimize" targetName "spine-dmd-ver" - postGenerateCommands "/usr/bin/notify-send -t 0 'D executable ready' 'spine-dmd-ver'" + #postGenerateCommands "notify-send -t 0 'D executable ready' 'spine-dmd-ver'" } configuration "ldc" { targetName "spine-ldc" - postGenerateCommands "/usr/bin/notify-send -t 0 'D executable ready' 'spine-ldc'" + #postGenerateCommands "notify-send -t 0 'D executable ready' 'spine-ldc'" } buildType "ldc" { dflags "-O2" "-J=views" "-I=src/doc_reform" @@ -60,11 +61,11 @@ configuration "ldc-version" { dflags "-O2" "-J=views" "-I=src/doc_reform" buildOptions "verbose" "optimize" "inline" "releaseMode" targetName "spine-ldc-ver" - postGenerateCommands "/usr/bin/notify-send -t 0 'D executable ready' 'spine-ldc-ver'" + #postGenerateCommands "notify-send -t 0 'D executable ready' 'spine-ldc-ver'" } configuration "gdc" { targetName "spine-gdc" - postGenerateCommands "/usr/bin/notify-send -t 0 'D executable ready' 'spine-gdc'" + #postGenerateCommands "notify-send -t 0 'D executable ready' 'spine-gdc'" } buildType "gdc" { dflags "-O" "-J=views" "-I=src/doc_reform" @@ -82,5 +83,5 @@ configuration "gdc-version" { lflags "-lz" buildOptions "verbose" "optimize" "inline" "releaseMode" targetName "spine-gdc-ver" - postGenerateCommands "/usr/bin/notify-send -t 0 'D executable ready' 'spine-gdc-ver'" + #postGenerateCommands "notify-send -t 0 'D executable ready' 'spine-gdc-ver'" } diff --git a/dub.selections.json b/dub.selections.json index b4ef190..5e87b49 100644 --- a/dub.selections.json +++ b/dub.selections.json @@ -2,7 +2,7 @@ "fileVersion": 1, "versions": { "d2sqlite3": "0.18.3", - "dyaml": "0.8.1", + "dyaml": "0.8.2", "imageformats": "7.0.2", "tinyendian": "0.2.0" } diff --git a/makefile b/makefile index 60cb557..00b4e49 100644 --- a/makefile +++ b/makefile @@ -96,7 +96,7 @@ meson_clean_build_dir: meson_build: meson_clean_build_dir meson --buildtype=debugoptimized build ninja -C build - notify-send -t 0 'D meson build ldc compiled test release executable ready' 'spine' + #notify-send -t 0 'D meson build ldc compiled test release executable ready' 'spine' meson_redo: meson_clean_build_dir meson_build meson_project_build_clean: clean skel tangle dub_upgrade meson_build meson: meson_clean_build_dir dub_upgrade meson_build @@ -106,13 +106,13 @@ all_debug_ver: dmd_debug_ver gdc_debug_ver ldc_debug_ver all_debug_clean_ver: clean tangle dmd_debug_ver gdc_debug_ver ldc_debug_ver dmd: dub_upgrade $(DUB) --compiler=dmd --config=dmd --build=release-nobounds - notify-send -t 0 'D dmd compiled test release executable ready' 'spine-dmd' + #notify-send -t 0 'D dmd compiled test release executable ready' 'spine-dmd' dmd_debug: $(DUB) --compiler=dmd --config=dmd --build=debug dmd_ver: dub_upgrade $(DUB) --compiler=dmd --config=dmd-version mv bin/spine-dmd-ver bin-archive/spine-$(PROG_VER_DECLARED)-tag-$(PROG_VER_GIT)-dmd - notify-send -t 0 'D dmd compiled test release executable ready' 'spine-$(PROG_VER_DECLARED)-tag-$(PROG_VER_GIT)-dmd' + #notify-send -t 0 'D dmd compiled test release executable ready' 'spine-$(PROG_VER_DECLARED)-tag-$(PROG_VER_GIT)-dmd' dmd_clean_ver: clean tangle dmd_ver dmd_rel: expunge skel tangle $(DUB) --compiler=dmd --config=spine-release @@ -123,13 +123,13 @@ dmd_debug_tangle: tangle $(DUB) --compiler=dmd --config=spine-dmd-debug gdc: dub_upgrade $(DUB) --compiler=gdc --config=gdc - notify-send -t 0 'D gdc compiled test release executable ready' 'spine-gdc' + #notify-send -t 0 'D gdc compiled test release executable ready' 'spine-gdc' gdc_debug: $(DUB) --compiler=gdc --config=gdc --build=debug gdc_ver: dub_upgrade $(DUB) --compiler=gdc --config=gdc-version mv bin/spine-gdc-ver bin-archive/spine-$(PROG_VER_DECLARED)-tag-$(PROG_VER_GIT)-gdc - notify-send -t 0 'D gdc compiled test release executable ready' 'spine-$(PROG_VER_DECLARED)-tag-$(PROG_VER_GIT)-gdc' + #notify-send -t 0 'D gdc compiled test release executable ready' 'spine-$(PROG_VER_DECLARED)-tag-$(PROG_VER_GIT)-gdc' gdc_clean_ver: clean tangle gdc_ver gdc_rel: expunge skel tangle $(DUB) --compiler=gdc --config=spine-release @@ -140,13 +140,13 @@ gdc_debug_tangle: tangle $(DUB) --compiler=gdc --config=spine-gdc-debug ldc: dub_upgrade $(DUB) --compiler=ldc2 --config=ldc --build=release - notify-send -t 0 'D ldc compiled test release executable ready' 'spine-ldc' + #notify-send -t 0 'D ldc compiled test release executable ready' 'spine-ldc' ldc_debug: $(DUB) --compiler=ldc2 --config=ldc --build=debug ldc_ver: dub_upgrade $(DUB) --compiler=ldc2 --config=ldc-version mv bin/spine-ldc-ver bin-archive/spine-$(PROG_VER_DECLARED)-tag-$(PROG_VER_GIT)-ldc - notify-send -t 0 'D ldc2 compiled test release executable ready' 'spine-$(PROG_VER_DECLARED)-tag-$(PROG_VER_GIT)-ldc' + #notify-send -t 0 'D ldc2 compiled test release executable ready' 'spine-$(PROG_VER_DECLARED)-tag-$(PROG_VER_GIT)-ldc' ldc_clean_ver: clean tangle ldc_ver ldc_rel: expunge skel tangle $(DUB) --compiler=ldc2 --config=spine-release diff --git a/org/spine_build_scaffold.org b/org/spine_build_scaffold.org index a42cd69..f998647 100644 --- a/org/spine_build_scaffold.org +++ b/org/spine_build_scaffold.org @@ -282,7 +282,7 @@ meson_clean_build_dir: meson_build: meson_clean_build_dir meson --buildtype=debugoptimized build ninja -C build - notify-send -t 0 'D meson build ldc compiled test release executable ready' 'spine' + #notify-send -t 0 'D meson build ldc compiled test release executable ready' 'spine' meson_redo: meson_clean_build_dir meson_build meson_project_build_clean: clean skel tangle dub_upgrade meson_build meson: meson_clean_build_dir dub_upgrade meson_build @@ -320,7 +320,7 @@ all_debug_clean_ver: clean tangle dmd_debug_ver gdc_debug_ver ldc_debug_ver #+BEGIN_SRC makefile dmd: dub_upgrade $(DUB) --compiler=dmd --config=dmd --build=release-nobounds - notify-send -t 0 'D dmd compiled test release executable ready' 'spine-dmd' + #notify-send -t 0 'D dmd compiled test release executable ready' 'spine-dmd' #+END_SRC ******** debug :debug: @@ -340,7 +340,7 @@ dmd_debug: dmd_ver: dub_upgrade $(DUB) --compiler=dmd --config=dmd-version mv bin/spine-dmd-ver bin-archive/spine-$(PROG_VER_DECLARED)-tag-$(PROG_VER_GIT)-dmd - notify-send -t 0 'D dmd compiled test release executable ready' 'spine-$(PROG_VER_DECLARED)-tag-$(PROG_VER_GIT)-dmd' + #notify-send -t 0 'D dmd compiled test release executable ready' 'spine-$(PROG_VER_DECLARED)-tag-$(PROG_VER_GIT)-dmd' dmd_clean_ver: clean tangle dmd_ver #+END_SRC @@ -365,7 +365,7 @@ dmd_debug_tangle: tangle #+BEGIN_SRC makefile gdc: dub_upgrade $(DUB) --compiler=gdc --config=gdc - notify-send -t 0 'D gdc compiled test release executable ready' 'spine-gdc' + #notify-send -t 0 'D gdc compiled test release executable ready' 'spine-gdc' #+END_SRC ******** debug :debug: @@ -385,7 +385,7 @@ gdc_debug: gdc_ver: dub_upgrade $(DUB) --compiler=gdc --config=gdc-version mv bin/spine-gdc-ver bin-archive/spine-$(PROG_VER_DECLARED)-tag-$(PROG_VER_GIT)-gdc - notify-send -t 0 'D gdc compiled test release executable ready' 'spine-$(PROG_VER_DECLARED)-tag-$(PROG_VER_GIT)-gdc' + #notify-send -t 0 'D gdc compiled test release executable ready' 'spine-$(PROG_VER_DECLARED)-tag-$(PROG_VER_GIT)-gdc' gdc_clean_ver: clean tangle gdc_ver #+END_SRC @@ -410,7 +410,7 @@ gdc_debug_tangle: tangle #+BEGIN_SRC makefile ldc: dub_upgrade $(DUB) --compiler=ldc2 --config=ldc --build=release - notify-send -t 0 'D ldc compiled test release executable ready' 'spine-ldc' + #notify-send -t 0 'D ldc compiled test release executable ready' 'spine-ldc' #+END_SRC ******** debug :debug: @@ -430,7 +430,7 @@ ldc_debug: ldc_ver: dub_upgrade $(DUB) --compiler=ldc2 --config=ldc-version mv bin/spine-ldc-ver bin-archive/spine-$(PROG_VER_DECLARED)-tag-$(PROG_VER_GIT)-ldc - notify-send -t 0 'D ldc2 compiled test release executable ready' 'spine-$(PROG_VER_DECLARED)-tag-$(PROG_VER_GIT)-ldc' + #notify-send -t 0 'D ldc2 compiled test release executable ready' 'spine-$(PROG_VER_DECLARED)-tag-$(PROG_VER_GIT)-ldc' ldc_clean_ver: clean tangle ldc_ver #+END_SRC @@ -966,7 +966,7 @@ gitsnapshot: distclean tangle Every DUB package should contain a [[http://code.dlang.org/package-format?lang=json][dub.json]] (or [[http://code.dlang.org/package-format?lang=sdl][dub.sdl]]) ** header (including dependencies) :header: -#+BEGIN_SRC sh :tangle ../dub.sdl +#+BEGIN_SRC sh :tangle ../dub.sdl :tangle-mode (identity #o755) :shebang #!/usr/bin/env dub name "spine" description "sisu document parser" homepage "http://sisudoc.org" @@ -995,7 +995,7 @@ time (dub --compiler=gdc --build=release) #+BEGIN_SRC sh :tangle ../dub.sdl configuration "default" { targetName "spine" - postGenerateCommands "/usr/bin/notify-send -t 0 'D executable ready' 'spine'" + #postGenerateCommands "notify-send -t 0 'D executable ready' 'spine'" } #+END_SRC @@ -1007,7 +1007,7 @@ time (dub --compiler=dmd --config=dmd --build=dmd-release) #+BEGIN_SRC sh :tangle ../dub.sdl configuration "dmd" { targetName "spine-dmd" - postGenerateCommands "/usr/bin/notify-send -t 0 'D executable ready' 'spine-dmd'" + #postGenerateCommands "notify-send -t 0 'D executable ready' 'spine-dmd'" } buildType "dmd" { dflags "-J=views" "-I=src/doc_reform" @@ -1022,7 +1022,7 @@ configuration "dmd-version" { dflags "-J=views" "-I=src/doc_reform" buildOptions "verbose" "optimize" targetName "spine-dmd-ver" - postGenerateCommands "/usr/bin/notify-send -t 0 'D executable ready' 'spine-dmd-ver'" + #postGenerateCommands "notify-send -t 0 'D executable ready' 'spine-dmd-ver'" } #+END_SRC @@ -1038,7 +1038,7 @@ time (dub --compiler=ldc2 --config=ldc --build=ldc-release) #+BEGIN_SRC sh :tangle ../dub.sdl configuration "ldc" { targetName "spine-ldc" - postGenerateCommands "/usr/bin/notify-send -t 0 'D executable ready' 'spine-ldc'" + #postGenerateCommands "notify-send -t 0 'D executable ready' 'spine-ldc'" } buildType "ldc" { dflags "-O2" "-J=views" "-I=src/doc_reform" @@ -1058,7 +1058,7 @@ configuration "ldc-version" { dflags "-O2" "-J=views" "-I=src/doc_reform" buildOptions "verbose" "optimize" "inline" "releaseMode" targetName "spine-ldc-ver" - postGenerateCommands "/usr/bin/notify-send -t 0 'D executable ready' 'spine-ldc-ver'" + #postGenerateCommands "notify-send -t 0 'D executable ready' 'spine-ldc-ver'" } #+END_SRC @@ -1070,7 +1070,7 @@ time (dub --compiler=gdc --config=gdc --build=gdc-release) #+BEGIN_SRC sh :tangle ../dub.sdl configuration "gdc" { targetName "spine-gdc" - postGenerateCommands "/usr/bin/notify-send -t 0 'D executable ready' 'spine-gdc'" + #postGenerateCommands "notify-send -t 0 'D executable ready' 'spine-gdc'" } buildType "gdc" { dflags "-O" "-J=views" "-I=src/doc_reform" @@ -1088,7 +1088,7 @@ configuration "gdc-version" { lflags "-lz" buildOptions "verbose" "optimize" "inline" "releaseMode" targetName "spine-gdc-ver" - postGenerateCommands "/usr/bin/notify-send -t 0 'D executable ready' 'spine-gdc-ver'" + #postGenerateCommands "notify-send -t 0 'D executable ready' 'spine-gdc-ver'" } #+END_SRC @@ -1103,7 +1103,7 @@ configuration "build" { targetName "bin/spine" dflags "-J=views" "-I=src/doc_reform" buildOptions "verbose" "releaseMode" "optimize" "inline" - postGenerateCommands "/usr/bin/notify-send -t 0 'D release executable ready' 'spine'" + #postGenerateCommands "notify-send -t 0 'D release executable ready' 'spine'" } #+END_SRC @@ -1506,6 +1506,38 @@ tinyendian_dep = declare_dependency( ) #+END_SRC +* nix + +#+BEGIN_SRC nix :tangle ../shell.nix +{ pkgs ? import {} }: + +with pkgs; + +mkShell { + buildInputs = with pkgs; [ + ninja dub + meson git + ldc #ldc dmd gdc + sqlite + validatePkgConfig + #gnumake gcc gdc cmake + #dzen2 + ]; + shellHook = '' + echo `ldc2 --version` + ''; + COMPILER = "ldc2"; +} +#+END_SRC + +#% ldc +dub --compiler=ldc2 -color --config=ldc --build=release +make ldc + +#% dmd +dub --compiler=dmd -color --config=dmd --build=release +make dmd + * .gitignore :gitignore: #+BEGIN_SRC sh :tangle ../.gitignore @@ -1526,6 +1558,7 @@ tinyendian_dep = declare_dependency( !*.d !*.rb !conf.sdl +!shell.nix !doc !doc/** !man @@ -1533,6 +1566,12 @@ tinyendian_dep = declare_dependency( !org !misc !misc/** +#!*.nix +#!nix +#!nix/** +#!nix-devEnv +#!nix-devEnv/** +#!.envrc !src !src/** !data @@ -1547,7 +1586,8 @@ tinyendian_dep = declare_dependency( !**/*.ssm !subprojects !subprojects/*.wrap -!subprojects/*.meson.build +#!subprojects/*.meson.build +#!subprojects/** !pod.manifest !sisu_document_make !config_local_site @@ -1568,6 +1608,7 @@ tmp/** *_.d *_.txt *_ +*.swp *~ \#* *.\#* diff --git a/shell.nix b/shell.nix new file mode 100644 index 0000000..5b97ffe --- /dev/null +++ b/shell.nix @@ -0,0 +1,19 @@ +{ pkgs ? import {} }: + +with pkgs; + +mkShell { + buildInputs = with pkgs; [ + ninja dub + meson git + ldc #ldc dmd gdc + sqlite + validatePkgConfig + #gnumake gcc gdc cmake + #dzen2 + ]; + shellHook = '' + echo `ldc2 --version` + ''; + COMPILER = "ldc2"; +} -- cgit v1.2.3