From c19c291b98a33b231e6d9cd1ffc33dc4420d3f63 Mon Sep 17 00:00:00 2001
From: Nikul Patel <55789164+nikulpatel3141@users.noreply.github.com>
Date: Fri, 24 Jan 2025 22:13:21 +0000
Subject: [PATCH] feat: --extension-suffix for pybind11 command (#5360)

* fix docs build command on different global and venv python versions

* feat: add --extension-suffix

Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>

---------

Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
Co-authored-by: Nikul Patel <nikul@z830>
Co-authored-by: Henry Schreiner <henryschreineriii@gmail.com>
---
 docs/basics.rst      | 2 +-
 pybind11/__main__.py | 7 +++++++
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/docs/basics.rst b/docs/basics.rst
index cd97c100e..c7a0208c4 100644
--- a/docs/basics.rst
+++ b/docs/basics.rst
@@ -142,7 +142,7 @@ On Linux, the above example can be compiled using the following command:
 
 .. code-block:: bash
 
-    $ c++ -O3 -Wall -shared -std=c++11 -fPIC $(python3 -m pybind11 --includes) example.cpp -o example$(python3-config --extension-suffix)
+    $ c++ -O3 -Wall -shared -std=c++11 -fPIC $(python3 -m pybind11 --includes) example.cpp -o example$(python3 -m pybind11 --extension-suffix)
 
 .. note::
 
diff --git a/pybind11/__main__.py b/pybind11/__main__.py
index 0abc7e211..28be9f165 100644
--- a/pybind11/__main__.py
+++ b/pybind11/__main__.py
@@ -71,6 +71,11 @@ def main() -> None:
         action="store_true",
         help="Print the pkgconfig directory, ideal for setting $PKG_CONFIG_PATH.",
     )
+    parser.add_argument(
+        "--extension-suffix",
+        action="store_true",
+        help="Print the extension for a Python module",
+    )
     args = parser.parse_args()
     if not sys.argv[1:]:
         parser.print_help()
@@ -80,6 +85,8 @@ def main() -> None:
         print(quote(get_cmake_dir()))
     if args.pkgconfigdir:
         print(quote(get_pkgconfig_dir()))
+    if args.extension_suffix:
+        print(sysconfig.get_config_var("EXT_SUFFIX"))
 
 
 if __name__ == "__main__":