54 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
| #!/usr/bin/env python
 | |
| # -*- coding: utf-8 -*-
 | |
| 
 | |
| # 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 contextlib
 | |
| import glob
 | |
| import os
 | |
| import re
 | |
| import shutil
 | |
| import subprocess
 | |
| import sys
 | |
| import tempfile
 | |
| 
 | |
| # 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")
 | |
| detail_headers = glob.glob("pybind11/include/pybind11/detail/*.h")
 | |
| cmake_files = glob.glob("pybind11/share/cmake/pybind11/*.cmake")
 | |
| headers = main_headers + detail_headers
 | |
| 
 | |
| cmdclass = {"install_headers": InstallHeadersNested}
 | |
| $extra_cmd
 | |
| 
 | |
| setup(
 | |
|     name="pybind11_global",
 | |
|     version="$version",
 | |
|     packages=[],
 | |
|     headers=headers,
 | |
|     data_files=[
 | |
|         ("share/cmake/pybind11", cmake_files),
 | |
|         ("include/pybind11", main_headers),
 | |
|         ("include/pybind11/detail", detail_headers),
 | |
|     ],
 | |
|     cmdclass=cmdclass,
 | |
| )
 |