mirror of
https://github.com/boostorg/python.git
synced 2026-01-19 16:32:16 +00:00
Compare commits
41 Commits
pr/use-num
...
boost-1.82
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
47d5bc76f6 | ||
|
|
508da1d198 | ||
|
|
271bcea8bf | ||
|
|
fdd3e8b2c1 | ||
|
|
a218babc8d | ||
|
|
41e208ecb5 | ||
|
|
f028aa4076 | ||
|
|
a060d43bf2 | ||
|
|
8dd1511773 | ||
|
|
909a4d1530 | ||
|
|
aee2667407 | ||
|
|
209179fa09 | ||
|
|
5e77eabb63 | ||
|
|
ecda18f01e | ||
|
|
68fa9dccde | ||
|
|
cc973263c4 | ||
|
|
ec402ea0d7 | ||
|
|
102acf1d34 | ||
|
|
b9c0e58d57 | ||
|
|
90813b1ad7 | ||
|
|
6f72675bff | ||
|
|
b0f512c15a | ||
|
|
a383ecdd88 | ||
|
|
02e079cf4d | ||
|
|
7c33ff0c59 | ||
|
|
fc978f085b | ||
|
|
fed4f0d0f9 | ||
|
|
39edfd45cf | ||
|
|
8c2a808cbe | ||
|
|
aeedea409a | ||
|
|
df6926551e | ||
|
|
7d3df3d3a7 | ||
|
|
ae747521b0 | ||
|
|
5e4b44e0af | ||
|
|
07b1489f3b | ||
|
|
44ea0562b2 | ||
|
|
60fba03e99 | ||
|
|
e3c9dd78aa | ||
|
|
aaf9022770 | ||
|
|
88ea1f9626 | ||
|
|
731ba745ca |
2
.github/workflows/deploy-documentation.yml
vendored
2
.github/workflows/deploy-documentation.yml
vendored
@@ -1,6 +1,6 @@
|
||||
name: deploy documentation
|
||||
|
||||
on: [push, pull_request]
|
||||
on: [push]
|
||||
|
||||
jobs:
|
||||
deploy:
|
||||
|
||||
18
.github/workflows/test-windows.yml
vendored
18
.github/workflows/test-windows.yml
vendored
@@ -15,16 +15,26 @@ jobs:
|
||||
- uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: ${{ matrix.python-version }}
|
||||
- uses: microsoft/setup-msbuild@v1.1
|
||||
- name: setup boost prerequisites
|
||||
uses: lukka/run-vcpkg@v6
|
||||
with:
|
||||
vcpkgGitCommitId: '8a9a97315aefb3f8bc5d81bf66ca0025938b9c91'
|
||||
vcpkgGitCommitId: '88b1071e39f13b632644d9d953738d345a4ac055'
|
||||
vcpkgDirectory: '${{ runner.workspace }}/vcpkg'
|
||||
vcpkgTriplet: x64-windows
|
||||
vcpkgArguments: boost-config boost-core boost-function boost-graph boost-iterator boost-lexical-cast boost-mpl boost-preprocessor boost-smart-ptr boost-static-assert boost-align
|
||||
|
||||
vcpkgArguments: >
|
||||
boost-config
|
||||
boost-core
|
||||
boost-function
|
||||
boost-graph
|
||||
boost-iterator
|
||||
boost-lexical-cast
|
||||
boost-mpl
|
||||
boost-preprocessor
|
||||
boost-smart-ptr
|
||||
boost-static-assert
|
||||
boost-align
|
||||
- name: setup faber
|
||||
#shell: 'bash'
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
python -m pip install setuptools faber numpy
|
||||
|
||||
176
CMakeLists.txt
Normal file
176
CMakeLists.txt
Normal file
@@ -0,0 +1,176 @@
|
||||
# Copyright 2020, 2021 Peter Dimov
|
||||
# Distributed under the Boost Software License, Version 1.0.
|
||||
# https://www.boost.org/LICENSE_1_0.txt
|
||||
|
||||
cmake_minimum_required(VERSION 3.14...3.20)
|
||||
|
||||
project(boost_python VERSION "${BOOST_SUPERPROJECT_VERSION}" LANGUAGES CXX)
|
||||
|
||||
find_package(Python REQUIRED COMPONENTS Development OPTIONAL_COMPONENTS NumPy)
|
||||
|
||||
if(Python_NumPy_FOUND)
|
||||
message(STATUS "Boost.Python: using Python ${Python_VERSION} with NumPy at ${Python_NumPy_INCLUDE_DIRS}")
|
||||
else()
|
||||
message(STATUS "Boost.Python: using Python ${Python_VERSION} without NumPy")
|
||||
endif()
|
||||
|
||||
# boost_pythonXY
|
||||
|
||||
set(_pyver ${Python_VERSION_MAJOR}${Python_VERSION_MINOR})
|
||||
set(_boost_python boost_python${_pyver})
|
||||
|
||||
add_library(${_boost_python}
|
||||
src/dict.cpp
|
||||
src/errors.cpp
|
||||
src/exec.cpp
|
||||
src/import.cpp
|
||||
src/list.cpp
|
||||
src/long.cpp
|
||||
src/module.cpp
|
||||
src/object_operators.cpp
|
||||
src/object_protocol.cpp
|
||||
src/slice.cpp
|
||||
src/str.cpp
|
||||
src/tuple.cpp
|
||||
src/wrapper.cpp
|
||||
src/converter/from_python.cpp
|
||||
src/converter/registry.cpp
|
||||
src/converter/type_id.cpp
|
||||
src/converter/builtin_converters.cpp
|
||||
src/converter/arg_to_python_base.cpp
|
||||
src/object/enum.cpp
|
||||
src/object/class.cpp
|
||||
src/object/function.cpp
|
||||
src/object/inheritance.cpp
|
||||
src/object/life_support.cpp
|
||||
src/object/pickle_support.cpp
|
||||
src/object/iterator.cpp
|
||||
src/object/stl_iterator.cpp
|
||||
src/object_protocol.cpp
|
||||
src/object_operators.cpp
|
||||
src/object/function_doc_signature.cpp
|
||||
)
|
||||
|
||||
add_library(Boost::python${_pyver} ALIAS ${_boost_python})
|
||||
|
||||
target_include_directories(${_boost_python} PUBLIC include)
|
||||
|
||||
target_link_libraries(${_boost_python}
|
||||
PUBLIC
|
||||
Boost::align
|
||||
Boost::bind
|
||||
Boost::config
|
||||
Boost::conversion
|
||||
Boost::core
|
||||
Boost::detail
|
||||
Boost::foreach
|
||||
Boost::function
|
||||
Boost::iterator
|
||||
Boost::lexical_cast
|
||||
Boost::mpl
|
||||
Boost::numeric_conversion
|
||||
Boost::preprocessor
|
||||
Boost::smart_ptr
|
||||
Boost::static_assert
|
||||
Boost::tuple
|
||||
Boost::type_traits
|
||||
Boost::utility
|
||||
|
||||
Python::Module
|
||||
|
||||
PRIVATE
|
||||
Boost::graph
|
||||
Boost::integer
|
||||
Boost::property_map
|
||||
)
|
||||
|
||||
target_compile_definitions(${_boost_python}
|
||||
PUBLIC BOOST_PYTHON_NO_LIB
|
||||
PRIVATE BOOST_PYTHON_SOURCE
|
||||
)
|
||||
|
||||
if(BUILD_SHARED_LIBS)
|
||||
target_compile_definitions(${_boost_python} PUBLIC BOOST_PYTHON_DYN_LINK)
|
||||
else()
|
||||
target_compile_definitions(${_boost_python} PUBLIC BOOST_PYTHON_STATIC_LINK BOOST_PYTHON_STATIC_LIB)
|
||||
endif()
|
||||
|
||||
# Boost::python alias
|
||||
|
||||
add_library(boost_python INTERFACE)
|
||||
add_library(Boost::python ALIAS boost_python)
|
||||
target_link_libraries(boost_python INTERFACE Boost::python${_pyver})
|
||||
|
||||
# Installation
|
||||
|
||||
if(BOOST_SUPERPROJECT_VERSION AND NOT CMAKE_VERSION VERSION_LESS 3.13)
|
||||
boost_install(TARGETS ${_boost_python} boost_python VERSION ${BOOST_SUPERPROJECT_VERSION} HEADER_DIRECTORY include)
|
||||
endif()
|
||||
|
||||
if(Python_NumPy_FOUND)
|
||||
|
||||
# boost_numpyXY
|
||||
|
||||
set(_boost_numpy boost_numpy${_pyver})
|
||||
|
||||
add_library(${_boost_numpy}
|
||||
src/numpy/dtype.cpp
|
||||
src/numpy/matrix.cpp
|
||||
src/numpy/ndarray.cpp
|
||||
src/numpy/numpy.cpp
|
||||
src/numpy/scalars.cpp
|
||||
src/numpy/ufunc.cpp
|
||||
)
|
||||
|
||||
add_library(Boost::numpy${_pyver} ALIAS ${_boost_numpy})
|
||||
|
||||
target_include_directories(${_boost_numpy} PUBLIC include)
|
||||
|
||||
target_link_libraries(${_boost_numpy}
|
||||
PUBLIC
|
||||
Boost::config
|
||||
Boost::core
|
||||
Boost::detail
|
||||
Boost::mpl
|
||||
Boost::python
|
||||
Boost::smart_ptr
|
||||
|
||||
Python::NumPy
|
||||
)
|
||||
|
||||
target_compile_definitions(${_boost_numpy}
|
||||
PUBLIC BOOST_NUMPY_NO_LIB
|
||||
PRIVATE BOOST_NUMPY_SOURCE
|
||||
)
|
||||
|
||||
if(BUILD_SHARED_LIBS)
|
||||
target_compile_definitions(${_boost_numpy} PUBLIC BOOST_NUMPY_DYN_LINK)
|
||||
else()
|
||||
target_compile_definitions(${_boost_numpy} PUBLIC BOOST_NUMPY_STATIC_LINK BOOST_NUMPY_STATIC_LIB)
|
||||
endif()
|
||||
|
||||
# Boost::numpy alias
|
||||
|
||||
add_library(boost_numpy INTERFACE)
|
||||
add_library(Boost::numpy ALIAS boost_numpy)
|
||||
target_link_libraries(boost_numpy INTERFACE Boost::numpy${_pyver})
|
||||
|
||||
# Installation
|
||||
|
||||
if(BOOST_SUPERPROJECT_VERSION AND NOT CMAKE_VERSION VERSION_LESS 3.13)
|
||||
boost_install(TARGETS ${_boost_numpy} boost_numpy VERSION ${BOOST_SUPERPROJECT_VERSION})
|
||||
endif()
|
||||
|
||||
endif()
|
||||
|
||||
unset(_pyver)
|
||||
unset(_boost_python)
|
||||
unset(_boost_numpy)
|
||||
|
||||
# Testing
|
||||
|
||||
if(BUILD_TESTING AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/test/CMakeLists.txt")
|
||||
|
||||
add_subdirectory(test)
|
||||
|
||||
endif()
|
||||
@@ -117,7 +117,7 @@ lib boost_numpy
|
||||
<define>BOOST_NUMPY_SOURCE
|
||||
[ cond [ python.numpy ] : <library>/python//python_for_extensions ]
|
||||
[ unless [ python.numpy ] : <build>no ]
|
||||
<include>$(numpy-include)
|
||||
<library>/python//numpy
|
||||
<library>boost_python
|
||||
<python-debugging>on:<define>BOOST_DEBUG_PYTHON
|
||||
-<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag
|
||||
|
||||
@@ -59,7 +59,7 @@ call_method(PyObject* self, char const* name
|
||||
)
|
||||
{
|
||||
PyObject* const result =
|
||||
PyEval_CallMethod(
|
||||
PyObject_CallMethod(
|
||||
self
|
||||
, const_cast<char*>(name)
|
||||
, const_cast<char*>("(" BOOST_PP_REPEAT_1ST(N, BOOST_PYTHON_FIXED, "O") ")")
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
# include <boost/python/detail/prefix.hpp>
|
||||
|
||||
# include <boost/bind.hpp>
|
||||
# include <boost/bind/bind.hpp>
|
||||
# include <boost/bind/placeholders.hpp>
|
||||
# include <boost/type.hpp>
|
||||
# include <boost/python/detail/translate_exception.hpp>
|
||||
@@ -18,6 +18,7 @@ namespace boost { namespace python {
|
||||
template <class ExceptionType, class Translate>
|
||||
void register_exception_translator(Translate translate, boost::type<ExceptionType>* = 0)
|
||||
{
|
||||
using namespace boost::placeholders;
|
||||
detail::register_exception_handler(
|
||||
boost::bind<bool>(detail::translate_exception<ExceptionType,Translate>(), _1, _2, translate)
|
||||
);
|
||||
|
||||
@@ -22,7 +22,7 @@ works correctly. */
|
||||
# pragma warning(disable: 4180)
|
||||
# endif
|
||||
|
||||
# include <boost/bind.hpp>
|
||||
# include <boost/bind/bind.hpp>
|
||||
# include <boost/bind/protect.hpp>
|
||||
|
||||
namespace boost { namespace python {
|
||||
@@ -40,6 +40,7 @@ namespace detail
|
||||
, Target&(*)()
|
||||
)
|
||||
{
|
||||
using namespace boost::placeholders;
|
||||
return objects::make_iterator_function<Target>(
|
||||
boost::protect(boost::bind(get_start, _1))
|
||||
, boost::protect(boost::bind(get_finish, _1))
|
||||
|
||||
@@ -109,8 +109,8 @@ object BOOST_PYTHON_DECL exec_file(char const *filename, object global, object l
|
||||
PyObject *fo = Py_BuildValue("s", f);
|
||||
PyObject *fb = Py_None;
|
||||
PyUnicode_FSConverter(fo, &fb);
|
||||
f = PyBytes_AsString(fb);
|
||||
FILE *fs = fopen(f, "r");
|
||||
char *f_as_uft = PyBytes_AsString(fb);
|
||||
FILE *fs = fopen(f_as_uft, "r");
|
||||
Py_DECREF(fo);
|
||||
Py_DECREF(fb);
|
||||
#elif PY_VERSION_HEX >= 0x03000000
|
||||
@@ -129,6 +129,7 @@ object BOOST_PYTHON_DECL exec_file(char const *filename, object global, object l
|
||||
f,
|
||||
Py_file_input,
|
||||
global.ptr(), local.ptr());
|
||||
fclose(fs);
|
||||
if (!result) throw_error_already_set();
|
||||
return object(detail::new_reference(result));
|
||||
}
|
||||
|
||||
@@ -113,7 +113,6 @@ static PyTypeObject enum_type_object = {
|
||||
#if PY_VERSION_HEX < 0x03000000
|
||||
| Py_TPFLAGS_CHECKTYPES
|
||||
#endif
|
||||
| Py_TPFLAGS_HAVE_GC
|
||||
| Py_TPFLAGS_BASETYPE, /* tp_flags */
|
||||
0, /* tp_doc */
|
||||
0, /* tp_traverse */
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
#include <boost/python/detail/none.hpp>
|
||||
#include <boost/mpl/vector/vector10.hpp>
|
||||
|
||||
#include <boost/bind.hpp>
|
||||
#include <boost/bind/bind.hpp>
|
||||
|
||||
#include <algorithm>
|
||||
#include <cstring>
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
#include <boost/graph/adjacency_list.hpp>
|
||||
#include <boost/graph/reverse_graph.hpp>
|
||||
#include <boost/property_map/property_map.hpp>
|
||||
#include <boost/bind.hpp>
|
||||
#include <boost/bind/bind.hpp>
|
||||
#include <boost/integer_traits.hpp>
|
||||
#include <boost/tuple/tuple.hpp>
|
||||
#include <boost/tuple/tuple_comparison.hpp>
|
||||
@@ -184,6 +184,7 @@ namespace
|
||||
// map a type to a position in the index
|
||||
inline type_index_t::iterator type_position(class_id type)
|
||||
{
|
||||
using namespace boost::placeholders;
|
||||
typedef index_entry entry;
|
||||
|
||||
return std::lower_bound(
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
#include <boost/python/object/iterator_core.hpp>
|
||||
#include <boost/python/object/function_object.hpp>
|
||||
#include <boost/bind.hpp>
|
||||
#include <boost/bind/bind.hpp>
|
||||
#include <boost/mpl/vector/vector10.hpp>
|
||||
|
||||
namespace boost { namespace python { namespace objects {
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
#include <boost/python.hpp>
|
||||
|
||||
#include <boost/detail/lightweight_test.hpp>
|
||||
#include <boost/bind.hpp>
|
||||
#include <boost/bind/bind.hpp>
|
||||
#include <iostream>
|
||||
#include <sstream>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user