-
Notifications
You must be signed in to change notification settings - Fork 90
/
flake.nix
73 lines (71 loc) · 2.03 KB
/
flake.nix
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
{
description = "hffix";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-23.11";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = { self, nixpkgs, ... }@inputs:
inputs.flake-utils.lib.eachDefaultSystem (system:
let
pkgs = import nixpkgs { inherit system; };
version = "1.4.0";
in
rec {
devShells.default = pkgs.mkShell {
nativeBuildInputs = with pkgs; [ doxygen stack gmp zlib ];
buildInputs = with pkgs; [ boost ];
LC_ALL = "C.UTF-8";
shellHook = ''
echo ""
echo ' hffix Development Environment'
echo ' To run the test suite: make test'
echo ""
'';
};
packages = rec {
hffix = pkgs.stdenv.mkDerivation {
pname = "hffix";
inherit version;
src = ./include;
meta = with pkgs.lib; {
description = "Header-only C++ library for FIX (Financial Information eXchange) protocol";
license = licenses.mit;
platforms = platforms.all;
};
unpackPhase = ''
'';
buildPhase = ''
'';
installPhase = ''
mkdir -p $out/include
cp -r $src/* $out/include
'';
};
fixprint = pkgs.stdenv.mkDerivation {
pname = "fixprint";
inherit version;
srcs = [./util/src];
nativeBuildInputs = [ hffix ];
sourceRoot = ".";
meta = with pkgs.lib; {
description = "Print FIX messages from stdin to stdout in human-readable format";
license = licenses.mit;
platforms = platforms.all;
};
buildPhase = ''
$CXX -o fixprint src/fixprint.cpp
'';
installPhase = ''
mkdir -p $out/bin
mv fixprint $out/bin/fixprint
'';
};
};
apps = {
fixprint = {
type = "app";
program = "${packages.fixprint}/bin/fixprint";
};
};
});
}