aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/examples
diff options
context:
space:
mode:
authorEgor Tensin <Egor.Tensin@gmail.com>2023-01-07 21:01:23 +0100
committerEgor Tensin <Egor.Tensin@gmail.com>2023-01-08 09:10:26 +0100
commit1c121b8a9a5f4916990adcd16070a0124b0e8fbe (patch)
tree7f8a9ab16017cf7ef90872cbc2fe91b5fffce474 /examples
parentworkflows/test: upgrade actions (diff)
downloadbuild-boost-1c121b8a9a5f4916990adcd16070a0124b0e8fbe.tar.gz
build-boost-1c121b8a9a5f4916990adcd16070a0124b0e8fbe.zip
workflows/test: test building Boost.Pythontest
Diffstat (limited to 'examples')
-rw-r--r--examples/python/CMakeLists.txt11
-rw-r--r--examples/python/hello.cpp19
2 files changed, 30 insertions, 0 deletions
diff --git a/examples/python/CMakeLists.txt b/examples/python/CMakeLists.txt
new file mode 100644
index 0000000..f43c3a7
--- /dev/null
+++ b/examples/python/CMakeLists.txt
@@ -0,0 +1,11 @@
+cmake_minimum_required(VERSION 3.5) # for Boost::* imported targets
+
+project(example_python)
+
+find_package(Python REQUIRED COMPONENTS Development)
+set(boost_python "python${Python_VERSION_MAJOR}${Python_VERSION_MINOR}")
+find_package(Boost REQUIRED COMPONENTS "${boost_python}")
+
+add_library(hello SHARED hello.cpp)
+target_link_libraries(hello PRIVATE Python::Module)
+target_link_libraries(hello PRIVATE Boost::disable_autolinking "Boost::${boost_python}")
diff --git a/examples/python/hello.cpp b/examples/python/hello.cpp
new file mode 100644
index 0000000..b7516e4
--- /dev/null
+++ b/examples/python/hello.cpp
@@ -0,0 +1,19 @@
+#include <string>
+
+#include <boost/python.hpp>
+using namespace boost::python;
+
+struct World
+{
+ void set(const std::string& msg) { this->msg = msg; }
+ std::string greet() const { return msg; }
+ std::string msg;
+};
+
+BOOST_PYTHON_MODULE(hello)
+{
+ class_<World>("World")
+ .def("greet", &World::greet)
+ .def("set", &World::set)
+ ;
+}