From ac29b5a73986bf6c9413751078c9a234842bcbe4 Mon Sep 17 00:00:00 2001 From: Gus Smith Date: Fri, 29 May 2026 10:26:32 -0700 Subject: Try a different approach via setup.py --- sources/api/pySoftMC/setup.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 sources/api/pySoftMC/setup.py (limited to 'sources/api/pySoftMC/setup.py') diff --git a/sources/api/pySoftMC/setup.py b/sources/api/pySoftMC/setup.py new file mode 100644 index 0000000..c353396 --- /dev/null +++ b/sources/api/pySoftMC/setup.py @@ -0,0 +1,22 @@ +from setuptools import setup, Extension +import os + +here = os.path.dirname(os.path.abspath(__file__)) +api_dir = os.path.join(here, "..") +pybind11_include = os.path.join(here, "../ext/pybind11/include") + +ext = Extension( + "pySoftMC", + sources=[ + os.path.join(api_dir, "board.cpp"), + os.path.join(api_dir, "instruction.cpp"), + os.path.join(api_dir, "platform.cpp"), + os.path.join(api_dir, "prog.cpp"), + os.path.join(here, "pySoftMC.cpp"), + ], + include_dirs=[here, api_dir, pybind11_include], + language="c++", + extra_compile_args=["-std=c++14", "-pthread", "-O3", "-DPYSMC"], +) + +setup(name="pySoftMC", ext_modules=[ext]) -- cgit v1.2.3 From db0dc94d8a3161333b21636aacdfb9ce9284a16b Mon Sep 17 00:00:00 2001 From: Gus Smith Date: Fri, 29 May 2026 10:38:26 -0700 Subject: Don't use pybind in submod --- sources/api/pySoftMC/README.md | 5 ++++- sources/api/pySoftMC/setup.py | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) (limited to 'sources/api/pySoftMC/setup.py') diff --git a/sources/api/pySoftMC/README.md b/sources/api/pySoftMC/README.md index 3565d46..f59c30f 100644 --- a/sources/api/pySoftMC/README.md +++ b/sources/api/pySoftMC/README.md @@ -12,9 +12,12 @@ make ## Building with `setup.py` -A more portable alternative that works with virtual environments and pyenv: +A more portable alternative that works with virtual environments and pyenv. +Requires pybind11 installed in the active Python environment (`pip install pybind11`); +does not require the pybind11 git submodule. ``` +pip install pybind11 python3 setup.py build_ext --inplace ``` diff --git a/sources/api/pySoftMC/setup.py b/sources/api/pySoftMC/setup.py index c353396..b962937 100644 --- a/sources/api/pySoftMC/setup.py +++ b/sources/api/pySoftMC/setup.py @@ -1,9 +1,9 @@ from setuptools import setup, Extension -import os +import os, pybind11 here = os.path.dirname(os.path.abspath(__file__)) api_dir = os.path.join(here, "..") -pybind11_include = os.path.join(here, "../ext/pybind11/include") +pybind11_include = pybind11.get_include() ext = Extension( "pySoftMC", -- cgit v1.2.3