diff --git a/pkgs/development/python-modules/pybindgen/default.nix b/pkgs/development/python-modules/pybindgen/default.nix new file mode 100644 index 00000000000..09cb4c2cdf9 --- /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 ]; + }; +} + + diff --git a/pkgs/development/python-modules/pygccxml/default.nix b/pkgs/development/python-modules/pygccxml/default.nix new file mode 100644 index 00000000000..5271677dc1e --- /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/development/tools/castxml/default.nix b/pkgs/development/tools/castxml/default.nix new file mode 100644 index 00000000000..f8389786b9d --- /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 dcd0de9dea4..2f997401d56 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 { diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 27928b76d0d..81c2a62796f 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 { @@ -18719,6 +18719,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 { };