summaryrefslogtreecommitdiff
path: root/Biz/Bild
diff options
context:
space:
mode:
Diffstat (limited to 'Biz/Bild')
-rw-r--r--Biz/Bild/Builder.nix20
-rw-r--r--Biz/Bild/Example.c15
2 files changed, 29 insertions, 6 deletions
diff --git a/Biz/Bild/Builder.nix b/Biz/Bild/Builder.nix
index 7ce29a2..2b62b89 100644
--- a/Biz/Bild/Builder.nix
+++ b/Biz/Bild/Builder.nix
@@ -19,6 +19,8 @@ with builtins;
let
srcs_ = (lib.strings.splitString " " srcs) ++ [main];
+ isEmpty = x: x == null || x == [];
+
skip = ["_" ".direnv"];
filter = file: type:
if elem (baseNameOf file) skip then false
@@ -35,12 +37,12 @@ let
src = lib.sources.cleanSourceWith {inherit filter; src = lib.sources.cleanSource root;};
langdeps_ =
- if langdeps == null || langdeps == [] then
+ if isEmpty langdeps then
[]
else
private.selectAttrs (lib.strings.splitString " " langdeps) private.${packageSet};
sysdeps_ =
- if sysdeps == null || sysdeps == [] then
+ if isEmpty sysdeps then
[]
else
private.selectAttrs (lib.strings.splitString " " sysdeps) private.nixpkgs.pkgs;
@@ -53,7 +55,6 @@ in {
buildPhase = compileLine;
};
-
haskell = stdenv.mkDerivation rec {
inherit name src BIZ_ROOT postUnpack;
buildInputs = sysdeps_ ++ [
@@ -65,6 +66,19 @@ in {
buildPhase = compileLine;
};
+ c = stdenv.mkDerivation rec {
+ inherit name src BIZ_ROOT postUnpack;
+ buildInputs = langdeps_ ++ sysdeps_;
+ installPhase = "install -D ${name} $out/bin/${name}";
+ buildPhase = lib.strings.concatStringsSep " " [
+ compileLine
+ (if isEmpty langdeps then "" else
+ "$(pkg-config --cflags ${langdeps})")
+ (if isEmpty sysdeps then "" else
+ "$(pkg-config --libs ${sysdeps})")
+ ];
+ };
+
python = buildPythonApplication rec {
inherit name src BIZ_ROOT postUnpack;
propagatedBuildInputs = [ (private.pythonWith (_: langdeps_)) ] ++ sysdeps_;
diff --git a/Biz/Bild/Example.c b/Biz/Bild/Example.c
index 9966dba..52ea9b9 100644
--- a/Biz/Bild/Example.c
+++ b/Biz/Bild/Example.c
@@ -1,6 +1,15 @@
-// : out helloworld.exe
-void
-main ()
+// : out examplesodium.exe
+// : dep libsodium
+// : arg -lsodium
+#include <sodium.h>
+
+int
+main (void)
{
+ if (sodium_init () < 0)
+ {
+ /* panic! the library couldn't be initialized; it is not safe to use */
+ }
printf ("Biz/Bild/Example.c: Hello world!\n");
+ return 0;
}