initial commit

This commit is contained in:
2025-12-07 15:15:19 +01:00
commit 6574eebb49
5 changed files with 86 additions and 0 deletions

10
.gitignore vendored Normal file
View File

@@ -0,0 +1,10 @@
# Xmake cache
.xmake/
build/
dist
# MacOS Cache
.DS_Store
# VsCode
.vscode

16
README.md Normal file
View File

@@ -0,0 +1,16 @@
# pybind11 example
## Building
```sh
xrepo env python -m pip install build
xrepo env python -m build -w
```
Wheels are built in the `dist` directory:
```sh
$ ls dist
example-0.0.1-cp313-cp313-linux_x86_64.whl
$ pip install dist/xmake_test-0.0.1-cp313-cp313-linux_x86_64.whl
```

13
pyproject.toml Normal file
View File

@@ -0,0 +1,13 @@
[build-system]
requires = ["xmake-python >= 0.1.7"]
build-backend = "xmake_python"
[project]
name = 'example'
version = '0.0.1'
description = 'example for pybind11'
readme = 'README.md'
[tool.xmake.xmaker]
# https://github.com/xmake-io/xmake/issues/4537
command = "--policies=package.include_external_headers:n"

38
src/example.cpp Normal file
View File

@@ -0,0 +1,38 @@
#include <pybind11/pybind11.h>
#define STRINGIFY(x) #x
#define MACRO_STRINGIFY(x) STRINGIFY(x)
int add(int i, int j) {
return i + j;
}
namespace py = pybind11;
PYBIND11_MODULE(example, m) {
m.doc() = R"pbdoc(
Pybind11 example plugin
-----------------------
.. currentmodule:: example
.. autosummary::
:toctree: _generate
add
subtract
)pbdoc";
m.def("add", &add, R"pbdoc(
Add two numbers
Some other explanation about the add function.
)pbdoc");
m.def("subtract", [](int i, int j) { return i - j; }, R"pbdoc(
Subtract two numbers
Some other explanation about the subtract function.
)pbdoc");
#ifdef VERSION_INFO
m.attr("__version__") = MACRO_STRINGIFY(VERSION_INFO);
#else
m.attr("__version__") = "dev";
#endif
}

9
xmake.lua Normal file
View File

@@ -0,0 +1,9 @@
add_rules("mode.release", "mode.debug")
add_requires("python 3.12.3", "pybind11")
target("example")
set_prefixdir("$(prefixdir)/$(pythondir)", { libdir = "" })
add_rules("python.module")
add_files("src/*.cpp")
add_packages("pybind11")
set_languages("c++11")