mirror of
https://github.com/pybind/pybind11.git
synced 2024-11-24 22:25:10 +00:00
a90e2af88d
* Factor out pybind11/compat/wrap_include_python_h.h * Fixes to resolve tests_packaging failures. * Factor out pybind11/compat/pybind11_platform_abi_id.h * Add pybind11/compat/README.txt and a couple source code comments. * Minor changes to comments. * Factor out pybind11/compat/pybind11_conduit_v1.h * Add long comment to pybind11/compat/pybind11_conduit_v1.h * Add pybind11/compat/README.txt to wheels. * Add `-fno-exceptions` to compiler options for exo_planet_c_api * 1. Move `target_compile_options()` into loop over test targets, in case the `"exo_planet_c_api"` target does not exist. 2. Add `-fno-exceptions` option also for `NVHPC`. 3. Also check for `__cpp_exceptions` in exo_planet_c_api.cpp. * 1. Fix accident (forgot to undo temporary change). 2. Special-case __EMSCRIPTEN__ in exo_planet_c_api.cpp * Give up on compiling exo_planet_c_api.cpp with MSVC `/EHs-c-`: There was one trouble maker (all other jobs worked): Visual Studio 15 2017: ``` cl : Command line warning D9025: overriding '/EHc' with '/EHc-' [C:\projects\pybind11\tests\exo_planet_c_api.vcxproj] ... C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\xlocale(319): error C2220: warning treated as error - no 'object' file generated [C:\projects\pybind11\tests\exo_planet_c_api.vcxproj] C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\xlocale(319): warning C4530: C++ exception handler used, but unwind semantics are not enabled. Specify /EHsc ``` * Move pybind11/compat to pybind11/conduit as suggested by @henryiii: https://github.com/pybind/pybind11/pull/5375#pullrequestreview-2329006001
67 lines
2.3 KiB
Python
67 lines
2.3 KiB
Python
#!/usr/bin/env python3
|
|
|
|
# Setup script for pybind11-global (in the sdist or in tools/setup_global.py in the repository)
|
|
# This package is targeted for easy use from CMake.
|
|
|
|
import glob
|
|
import os
|
|
import re
|
|
|
|
# Setuptools has to be before distutils
|
|
from setuptools import setup
|
|
|
|
from distutils.command.install_headers import install_headers
|
|
|
|
class InstallHeadersNested(install_headers):
|
|
def run(self):
|
|
headers = self.distribution.headers or []
|
|
for header in headers:
|
|
# Remove pybind11/include/
|
|
short_header = header.split("/", 2)[-1]
|
|
|
|
dst = os.path.join(self.install_dir, os.path.dirname(short_header))
|
|
self.mkpath(dst)
|
|
(out, _) = self.copy_file(header, dst)
|
|
self.outfiles.append(out)
|
|
|
|
|
|
main_headers = glob.glob("pybind11/include/pybind11/*.h")
|
|
conduit_headers = sum([glob.glob(f"pybind11/include/pybind11/conduit/*.{ext}")
|
|
for ext in ("h", "txt")], [])
|
|
detail_headers = glob.glob("pybind11/include/pybind11/detail/*.h")
|
|
eigen_headers = glob.glob("pybind11/include/pybind11/eigen/*.h")
|
|
stl_headers = glob.glob("pybind11/include/pybind11/stl/*.h")
|
|
cmake_files = glob.glob("pybind11/share/cmake/pybind11/*.cmake")
|
|
pkgconfig_files = glob.glob("pybind11/share/pkgconfig/*.pc")
|
|
headers = main_headers + conduit_headers + detail_headers + eigen_headers + stl_headers
|
|
|
|
cmdclass = {"install_headers": InstallHeadersNested}
|
|
$extra_cmd
|
|
|
|
# This will _not_ affect installing from wheels,
|
|
# only building wheels or installing from SDist.
|
|
# Primarily intended on Windows, where this is sometimes
|
|
# customized (for example, conda-forge uses Library/)
|
|
base = os.environ.get("PYBIND11_GLOBAL_PREFIX", "")
|
|
|
|
# Must have a separator
|
|
if base and not base.endswith("/"):
|
|
base += "/"
|
|
|
|
setup(
|
|
name="pybind11_global",
|
|
version="$version",
|
|
packages=[],
|
|
headers=headers,
|
|
data_files=[
|
|
(base + "share/cmake/pybind11", cmake_files),
|
|
(base + "share/pkgconfig", pkgconfig_files),
|
|
(base + "include/pybind11", main_headers),
|
|
(base + "include/pybind11/conduit", conduit_headers),
|
|
(base + "include/pybind11/detail", detail_headers),
|
|
(base + "include/pybind11/eigen", eigen_headers),
|
|
(base + "include/pybind11/stl", stl_headers),
|
|
],
|
|
cmdclass=cmdclass,
|
|
)
|