diff options
author | Alyssa Ross <hi@alyssa.is> | 2023-11-21 16:12:21 +0100 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2023-11-21 16:12:48 +0100 |
commit | 048a4cd441a59cbf89defb18bb45c9f0b4429b35 (patch) | |
tree | f8f5850ff05521ab82d65745894714a8796cbfb6 /pkgs/development/python-modules/libclang | |
parent | 030c5028b07afcedce7c5956015c629486cc79d9 (diff) | |
parent | 4c2d05dd6435d449a3651a6dd314d9411b5f8146 (diff) | |
download | nixpkgs-rootfs.tar nixpkgs-rootfs.tar.gz nixpkgs-rootfs.tar.bz2 nixpkgs-rootfs.tar.lz nixpkgs-rootfs.tar.xz nixpkgs-rootfs.tar.zst nixpkgs-rootfs.zip |
Signed-off-by: Alyssa Ross <hi@alyssa.is>
Diffstat (limited to 'pkgs/development/python-modules/libclang')
-rw-r--r-- | pkgs/development/python-modules/libclang/default.nix | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/pkgs/development/python-modules/libclang/default.nix b/pkgs/development/python-modules/libclang/default.nix new file mode 100644 index 00000000000..24d0e287ea0 --- /dev/null +++ b/pkgs/development/python-modules/libclang/default.nix @@ -0,0 +1,56 @@ +{ lib +, buildPythonPackage +, llvmPackages +, setuptools +, writeText +}: + +let + libclang = llvmPackages.libclang; + + pyproject_toml = writeText "pyproject.toml" '' + [build-system] + requires = ["setuptools>=42", "wheel"] + build-backend = "setuptools.build_meta" + ''; + + setup_cfg = writeText "setup.cfg" '' + [metadata] + name = clang + version = ${libclang.version} + + [options] + packages = clang + ''; +in buildPythonPackage { + pname = "libclang"; + format = "pyproject"; + + inherit (libclang) version src; + + buildInputs = [ setuptools ]; + + postUnpack = '' + # set source root to python bindings + if [ -e "$sourceRoot/clang/bindings/python" ]; then + # LLVM 13+ puts clang sources in subdirectory instead of plain tarball + sourceRoot="$sourceRoot/clang/bindings/python" + else + sourceRoot="$sourceRoot/bindings/python" + fi + ''; + + postPatch = '' + # link in our own build info to build as a python package + ln -s ${pyproject_toml} ./pyproject.toml + ln -s ${setup_cfg} ./setup.cfg + + # set passed libclang for runtime + echo 'Config.set_library_path("${lib.getLib libclang}/lib")' >>./clang/cindex.py + ''; + + meta = libclang.meta // { + description = "Python bindings for the C language family frontend for LLVM"; + maintainers = with lib.maintainers; [ lilyinstarlight ]; + }; +} |