mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-27 17:33:09 +00:00
p4c: init at 1.2.2.1
This commit is contained in:
parent
980bd6d83e
commit
97f1bb2f99
88
pkgs/development/compilers/p4c/default.nix
Normal file
88
pkgs/development/compilers/p4c/default.nix
Normal file
@ -0,0 +1,88 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, cmake
|
||||
, boehmgc
|
||||
, bison
|
||||
, flex
|
||||
, protobuf
|
||||
, gmp
|
||||
, boost
|
||||
, python3
|
||||
, doxygen
|
||||
, graphviz
|
||||
, libbpf
|
||||
, libllvm
|
||||
, enableDocumentation ? true
|
||||
, enableBPF ? true
|
||||
, enableDPDK ? true
|
||||
, enableBMV2 ? true
|
||||
, enableGraphBackend ? true
|
||||
, enableP4Tests ? true
|
||||
, enableGTests ? true
|
||||
, enableMultithreading ? false
|
||||
}:
|
||||
let
|
||||
toCMakeBoolean = v: if v then "ON" else "OFF";
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "p4c";
|
||||
version = "1.2.2.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "p4lang";
|
||||
repo = "p4c";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-XIZ7Cm5zfr5XA+s0aSG1WwWHCPjAYv/YoBWTRaXi9rQ=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
postFetch = ''
|
||||
rm -rf backends/ebpf/runtime/contrib/libbpf
|
||||
rm -rf control-plane/p4runtime
|
||||
'';
|
||||
|
||||
cmakeFlags = [
|
||||
"-DENABLE_BMV2=${toCMakeBoolean enableBMV2}"
|
||||
"-DENABLE_EBPF=${toCMakeBoolean enableBPF}"
|
||||
"-DENABLE_UBPF=${toCMakeBoolean enableBPF}"
|
||||
"-DENABLE_DPDK=${toCMakeBoolean enableDPDK}"
|
||||
"-DENABLE_P4C_GRAPHS=${toCMakeBoolean enableGraphBackend}"
|
||||
"-DENABLE_P4TEST=${toCMakeBoolean enableP4Tests}"
|
||||
"-DENABLE_DOCS=${toCMakeBoolean enableDocumentation}"
|
||||
"-DENABLE_GC=ON"
|
||||
"-DENABLE_GTESTS=${toCMakeBoolean enableGTests}"
|
||||
"-DENABLE_PROTOBUF_STATIC=ON"
|
||||
"-DENABLE_MULTITHREAD=${toCMakeBoolean enableMultithreading}"
|
||||
"-DENABLE_GMP=ON"
|
||||
];
|
||||
|
||||
checkTarget = "check";
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
nativeBuildInputs = [
|
||||
bison
|
||||
flex
|
||||
cmake
|
||||
python3
|
||||
]
|
||||
++ lib.optional enableDocumentation [ doxygen graphviz ]
|
||||
++ lib.optional enableBPF [ libllvm libbpf ];
|
||||
|
||||
buildInputs = [
|
||||
protobuf
|
||||
boost
|
||||
boehmgc
|
||||
gmp
|
||||
flex
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/p4lang/p4c";
|
||||
description = "Reference compiler for the P4 programming language";
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ raitobezarius ];
|
||||
license = licenses.asl20;
|
||||
};
|
||||
}
|
@ -8768,6 +8768,8 @@ with pkgs;
|
||||
|
||||
p3x-onenote = callPackage ../applications/office/p3x-onenote { };
|
||||
|
||||
p4c = callPackage ../development/compilers/p4c { };
|
||||
|
||||
p7zip = callPackage ../tools/archivers/p7zip { };
|
||||
|
||||
packagekit = callPackage ../tools/package-management/packagekit { nix = nixVersions.nix_2_6; };
|
||||
|
Loading…
Reference in New Issue
Block a user