[clang] [llvm] [libclang/python] Enable packaging libclang bindings (PR #125806)
Ryan Mast via llvm-commits
llvm-commits at lists.llvm.org
Wed Feb 5 18:28:09 PST 2025
https://github.com/nightlark updated https://github.com/llvm/llvm-project/pull/125806
>From 4dd3356f37229c415c6b6e3dfec8c8020122124d Mon Sep 17 00:00:00 2001
From: Ryan Mast <mast.ryan at gmail.com>
Date: Tue, 4 Feb 2025 21:59:28 -0800
Subject: [PATCH] [libclang/python] Enable packaging libclang bindings
---
.gitattributes | 2 ++
clang/bindings/python/.git_archival.txt | 3 +++
clang/bindings/python/.gitignore | 21 +++++++++++++++
clang/bindings/python/pyproject.toml | 36 +++++++++++++++++++++++++
4 files changed, 62 insertions(+)
create mode 100644 clang/bindings/python/.git_archival.txt
create mode 100644 clang/bindings/python/.gitignore
create mode 100644 clang/bindings/python/pyproject.toml
diff --git a/.gitattributes b/.gitattributes
index 6b281f33f737db9..142d6689f108832 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1,3 +1,5 @@
+clang/bindings/python/.git_archival.txt export-subst
+
libcxx/src/**/*.cpp merge=libcxx-reformat
libcxx/include/**/*.h merge=libcxx-reformat
diff --git a/clang/bindings/python/.git_archival.txt b/clang/bindings/python/.git_archival.txt
new file mode 100644
index 000000000000000..7876d4af4c6206b
--- /dev/null
+++ b/clang/bindings/python/.git_archival.txt
@@ -0,0 +1,3 @@
+node: $Format:%H$
+node-date: $Format:%cI$
+describe-name: $Format:%(describe:tags=true,match=llvmorg-*[0-9]*)$
diff --git a/clang/bindings/python/.gitignore b/clang/bindings/python/.gitignore
new file mode 100644
index 000000000000000..1641a745fb6829f
--- /dev/null
+++ b/clang/bindings/python/.gitignore
@@ -0,0 +1,21 @@
+# setuptools_scm auto-generated version file
+_version.py
+
+# Byte-compiled / optimized / DLL files
+__pycache__/
+*.py[cod]
+*$py.class
+
+# Distribution / packaging
+build/
+dist/
+*.egg-info/
+
+# Environments
+.env
+.venv
+env/
+venv/
+ENV/
+env.bak/
+venv.bak/
diff --git a/clang/bindings/python/pyproject.toml b/clang/bindings/python/pyproject.toml
new file mode 100644
index 000000000000000..d264853c60271b7
--- /dev/null
+++ b/clang/bindings/python/pyproject.toml
@@ -0,0 +1,36 @@
+[build-system]
+requires = ["setuptools>=42", "setuptools_scm"]
+build-backend = "setuptools.build_meta"
+
+[project]
+name = "clang"
+description = "libclang python bindings"
+readme = {file = "README.txt", content-type = "text/plain"}
+
+license = {text = "Apache-2.0 WITH LLVM-exception"}
+authors = [
+ { name = "LLVM" }
+]
+keywords = ["llvm", "clang", "libclang"]
+classifiers = [
+ "Intended Audience :: Developers",
+ "Development Status :: 5 - Production/Stable",
+ "Topic :: Software Development :: Compilers",
+ "Operating System :: OS Independent",
+ "Programming Language :: Python :: 3",
+]
+dynamic = ["version"]
+
+[project.urls]
+Homepage = "https://clang.llvm.org/"
+Download = "https://llvm.org/releases/download.html"
+Discussions = "https://discourse.llvm.org/"
+"Issue Tracker" = "https://github.com/llvm/llvm-project/issues"
+"Source Code" = "https://github.com/llvm/llvm-project/tree/main/clang/bindings/python"
+
+[tool.setuptools_scm]
+root = "../../.."
+version_file = "clang/_version.py"
+version_scheme = "no-guess-dev"
+# Regex version capture group gets x.y.z with optional -rcN, -aN, -bN suffixes; -init is just consumed
+tag_regex = "^llvmorg-(?P<version>\\d+(?:\\.\\d+)*(?:-(?:rc|a|b)\\d+)?)(?:.*)$"
More information about the llvm-commits
mailing list