The examples all use cmake, and there is a cmake extension for pybind11 that 
takes care of a number of things for you. From the docs:

For C++ codebases that have an existing CMake-based build system, a Python 
extension module can be created with just a few lines of code:
cmake_minimum_required(VERSION 2.8.12)
project(example)

add_subdirectory(pybind11)
pybind11_add_module(example example.cpp)

More here:

https://pybind11.readthedocs.io/en/stable/compiling.html#building-with-cmake


From: Cplusplus-sig 
<cplusplus-sig-bounces+jandyman.voelkel=gmail....@python.org> on behalf of 
Alain O' Miniussi <alain.miniu...@oca.eu>
Reply-To: Development of Python/C++ integration <cplusplus-sig@python.org>
Date: Thursday, April 30, 2020 at 8:30 AM
To: Development of Python/C++ integration <cplusplus-sig@python.org>
Subject: Re: [C++-sig] Compiling boost python

But having one more lib outside boost means one more dependency.

The sad thing is that dropping support for "the oldest and buggiest of compiler 
specimens" in Boost would be rational to do, there are plenty of old Boost 
releases for those.
How the cmake support for pybind ?

----- On 29 Avr 20, at 20:09, Andrew Voelkel <jandyman.voel...@gmail.com> wrote:

This blurb might help with that question:

The main issue with Boost.Python—and the reason for creating such a similar 
project—is Boost. Boost is an enormously large and complex suite of utility 
libraries that works with almost every C++ compiler in existence. This 
compatibility has its cost: arcane template tricks and workarounds are 
necessary to support the oldest and buggiest of compiler specimens. Now that 
C++11-compatible compilers are widely available, this heavy machinery has 
become an excessively large and unnecessary dependency. Think of this library 
as a tiny self-contained version of Boost.Python with everything stripped away 
that isn’t relevant for binding generation. Without comments, the core header 
files only require ~4K lines of code and depend on Python (2.7 or 3.x, or 
PyPy2.7 >= 5.7) and the C++ standard library. This compact implementation was 
possible thanks to some of the new C++11 language features (specifically: 
tuples, lambda functions and variadic templates). Since its creation, this 
library has grown beyond Boost.Python in many ways, leading to dramatically 
simpler binding code in many common situations.


  *   Andy

From: Cplusplus-sig 
<cplusplus-sig-bounces+jandyman.voelkel=gmail....@python.org> on behalf of 
Torsten Knüppel <brumfes...@gmx.net>
Reply-To: Development of Python/C++ integration <cplusplus-sig@python.org>
Date: Wednesday, April 29, 2020 at 8:15 AM
To: Development of Python/C++ integration <cplusplus-sig@python.org>
Subject: Re: [C++-sig] Re: Compiling boost python

Hi Andy,

thanks for the quick reply. I only came across pybind recently when I was 
encountering some dependency issues with boost.python<http://boost.python> and 
looked for an alternative. It looks really useful, but I hesitated to make the 
switch - but I think I will do it sooner or later. Maybe one question regarding 
pybind - is it easy to create bindings for different Python versions?
Am 29.04.20, 16:42 schrieb Andrew Voelkel <jandyman.voel...@gmail.com>:
Have you considered using pybind11? It’s the same basic idea as boost.python, 
but it is cleaner, much better supported and documented, and has a large user 
community. I just discovered this lately, have been using it, and I’m thrilled 
with it. The only catch is that you need to be compiling with at least a C++11 
compiler, but that is a pretty low bar these days.


  *   Andy

From: Cplusplus-sig 
<cplusplus-sig-bounces+jandyman.voelkel=gmail....@python.org> on behalf of 
Torsten Knüppel <brumfes...@gmx.net>
Reply-To: Development of Python/C++ integration <cplusplus-sig@python.org>
Date: Wednesday, April 29, 2020 at 7:34 AM
To: "cplusplus-sig@python.org" <cplusplus-sig@python.org>
Subject: [C++-sig] Compiling boost python

Dear all,

I'm trying to compile boost.python with a version of python, that I've 
downloaded and built myself.
Is the "No-install quickstart"-page 
(https://www.boost.org/doc/libs/1_73_0/libs/python/doc/html/building/no_install_quickstart.html)
 still updated, because some of the links are broken and
I honestly don't understand what is going on there.
Some questions that I have:
 - What is the bjam "build driver"? When I go to Section 5 of the boost Getting 
Started page - they mention something about an easy install option and another 
one for custom binaries.
  The entire page mentions neither bjam, nor "build driver".
 - I manage to build boost, by first running the bootstrap script and then 
calling b2 - if I select e.g. graph - it is built and copied into the correct 
directory, that I've specified. However,
   it doesn't work with my own Python folder.
  I wrote a small script to automate all steps:

#wget https://dl.bintray.com/boostorg/release/1.73.0/source/boost_1_73_0.tar.gz
#tar -xvf boost_1_73_0.tar.gz
cd boost_1_73_0
./bootstrap.sh --prefix=../build_boost --with-libraries=python 
-with-python-root=../Python-3.6.10 --with-python-version=3.6
./b2 install -d+2
echo "using python : : ../Python-3.6.10/python ;" > user-config.jam

My folder structure is as follows:

buildBoost.sh (the script above)
     /Python-3.6.10 (contains the python source code and binaries that I've 
build myself)
     /boost_1_73_0 (boost source code as downloaded by the script)
     /build_boost (output folder as specified by prefix)

When do I need to write this user-config.jam file? What are the compilation 
scripts looking for - can this process be debugged?
I also have boost installed via apt - now I think that everytime I call b2 or 
bjam it uses
the global versions of these programs, instead of the ones contained in the 
boost-directory I'm compiling - is that an issue?

Thanks in advance.
torsten
_______________________________________________ Cplusplus-sig mailing list 
Cplusplus-sig@python.org https://mail.python.org/mailman/listinfo/cplusplus-sig

_______________________________________________
Cplusplus-sig mailing list
Cplusplus-sig@python.org
https://mail.python.org/mailman/listinfo/cplusplus-sig
_______________________________________________
Cplusplus-sig mailing list
Cplusplus-sig@python.org
https://mail.python.org/mailman/listinfo/cplusplus-sig

Reply via email to