From 37210d4938cd6877208a07363ca72e480f93fe43 Mon Sep 17 00:00:00 2001 From: Matthieu Coudron Date: Thu, 19 Oct 2017 14:47:41 +0900 Subject: [PATCH 1/3] castxml: init at 20180403 4 tests are ignored because the regex don't match with custom clang output see: https://github.com/CastXML/CastXML/issues/90 --- pkgs/development/tools/castxml/default.nix | 49 ++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 51 insertions(+) create mode 100644 pkgs/development/tools/castxml/default.nix diff --git a/pkgs/development/tools/castxml/default.nix b/pkgs/development/tools/castxml/default.nix new file mode 100644 index 00000000000000..f8389786b9da30 --- /dev/null +++ b/pkgs/development/tools/castxml/default.nix @@ -0,0 +1,49 @@ +{ stdenv, fetchFromGitHub +, pythonPackages +, pkgconfig +, cmake +, llvmPackages +, withMan ? true +}: +stdenv.mkDerivation rec { + + name = "${pname}-${version}"; + pname = "CastXML"; + version = "20180403"; + + src = fetchFromGitHub { + owner = "CastXML"; + repo = "CastXML"; + rev = "c2a44d06d9379718292b696f4e13a2725ff9d95e"; + sha256 = "1hjh8ihjyp1m2jb5yypp5c45bpbz8k004f4p1cjw4gc7pxhjacdj"; + }; + + buildInputs = [ + cmake + llvmPackages.clang-unwrapped + llvmPackages.llvm + ] ++ stdenv.lib.optionals withMan [ pythonPackages.sphinx ]; + + propagatedbuildInputs = [ llvmPackages.libclang ]; + + preConfigure = '' + cmakeFlagsArray+=( + ${if withMan then "-DSPHINX_MAN=ON" else ""} + )''; + + # 97% tests passed, 96 tests failed out of 2866 + # mostly because it checks command line and nix append -isystem and all + doCheck=false; + checkPhase = '' + # -E exclude 4 tests based on names + # see https://github.com/CastXML/CastXML/issues/90 + ctest -E 'cmd.cc-(gnu|msvc)-((c-src-c)|(src-cxx))-cmd' + ''; + + meta = with stdenv.lib; { + homepage = http://www.kitware.com; + license = licenses.asl20; + description = "Abstract syntax tree XML output tool"; + platforms = platforms.unix; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index d1cfa3463ef357..18b99af5aa21f1 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -111,6 +111,8 @@ with pkgs; buildMaven = callPackage ../build-support/build-maven.nix {}; + castxml = callPackage ../development/tools/castxml { }; + cmark = callPackage ../development/libraries/cmark { }; dhallToNix = callPackage ../build-support/dhall-to-nix.nix { From 604aa24f853d6f7dda7c11f0aab22d01ad03dbc6 Mon Sep 17 00:00:00 2001 From: Matthieu Coudron Date: Thu, 19 Oct 2017 14:55:01 +0900 Subject: [PATCH 2/3] pygccxml: init at 1.9.1 Python library to play with castxml output, aka your program's clang-produced AST. --- .../python-modules/pygccxml/default.nix | 26 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 6 ++++- 2 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 pkgs/development/python-modules/pygccxml/default.nix diff --git a/pkgs/development/python-modules/pygccxml/default.nix b/pkgs/development/python-modules/pygccxml/default.nix new file mode 100644 index 00000000000000..5271677dc1eab7 --- /dev/null +++ b/pkgs/development/python-modules/pygccxml/default.nix @@ -0,0 +1,26 @@ +{ stdenv, castxml, fetchFromGitHub, buildPythonPackage, +llvmPackages, clang }: +buildPythonPackage rec { + pname = "pygccxml"; + version = "1.9.1"; + + src = fetchFromGitHub { + owner = "gccxml"; + repo = "pygccxml"; + rev = "v${version}"; + sha256 = "02ip03s0vmp7czzflbvf7qnybibfrd0rzqbc5zfmq3zmpnck3hvm"; + }; + + buildInputs = [ castxml llvmPackages.libcxxStdenv]; + + # running the suite is hard, needs to generate xml_generator.cfg + # but the format doesn't accept -isystem directives + doCheck = false; + + meta = with stdenv.lib; { + homepage = https://github.com/gccxml/pygccxml; + description = "Python package for easy C++ declarations navigation"; + license = licenses.boost; + maintainers = with maintainers; [ teto ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index ca4a13b86dfdcf..0d7b8721935f49 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -8811,7 +8811,7 @@ in { keyutils = callPackage ../development/python-modules/keyutils { }; klein = callPackage ../development/python-modules/klein { }; - + koji = callPackage ../development/python-modules/koji { }; kombu = buildPythonPackage rec { @@ -18710,6 +18710,10 @@ EOF propagatedBuildInputs = with self; []; }; + pybindgen = callPackage ../development/python-modules/pybindgen {}; + + pygccxml = callPackage ../development/python-modules/pygccxml {}; + pymacaroons-pynacl = callPackage ../development/python-modules/pymacaroons-pynacl { }; pynacl = callPackage ../development/python-modules/pynacl { }; From 94c1b10dd1d70ce3581a94ba2593b6bd28773423 Mon Sep 17 00:00:00 2001 From: Matthieu Coudron Date: Thu, 5 Apr 2018 18:13:07 +0900 Subject: [PATCH 3/3] pybindgen: init at 0.18.0 Helps generating python bindings to C. Required to generate www.nsnam.org bindings. --- .../python-modules/pybindgen/default.nix | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 pkgs/development/python-modules/pybindgen/default.nix diff --git a/pkgs/development/python-modules/pybindgen/default.nix b/pkgs/development/python-modules/pybindgen/default.nix new file mode 100644 index 00000000000000..09cb4c2cdf98e1 --- /dev/null +++ b/pkgs/development/python-modules/pybindgen/default.nix @@ -0,0 +1,23 @@ +{ stdenv, fetchPypi, buildPythonPackage, setuptools_scm, pygccxml }: +buildPythonPackage rec { + pname = "PyBindGen"; + version = "0.18.0"; + + src = fetchPypi { + inherit pname version; + sha256 = "1sl4jn8rildv6f62cab66w791cixhaaxl7gwg9labs099rl74yl6"; + }; + + buildInputs = [ setuptools_scm ]; + + checkInputs = [ pygccxml ]; + + meta = with stdenv.lib; { + homepage = https://github.com/gjcarneiro/pybindgen; + description = "Python Bindings Generator"; + license = licenses.lgpl2; + maintainers = with maintainers; [ teto ]; + }; +} + +