37 lines
1.3 KiB
Python
37 lines
1.3 KiB
Python
import pathlib
|
|
import subprocess
|
|
import sys
|
|
import os
|
|
import argparse
|
|
|
|
|
|
def make_boost(outdir, distutils_build=False):
|
|
# Call code generator inside _boost directory
|
|
code_gen = pathlib.Path(__file__).parent / '_boost/include/code_gen.py'
|
|
if distutils_build:
|
|
subprocess.run([sys.executable, str(code_gen), '-o', outdir,
|
|
'--distutils-build', 'True'], check=True)
|
|
else:
|
|
subprocess.run([sys.executable, str(code_gen), '-o', outdir],
|
|
check=True)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
parser = argparse.ArgumentParser()
|
|
parser.add_argument("-o", "--outdir", type=str,
|
|
help="Path to the output directory")
|
|
args = parser.parse_args()
|
|
|
|
if not args.outdir:
|
|
# We're dealing with a distutils build here, write in-place:
|
|
outdir_abs = pathlib.Path(os.path.abspath(os.path.dirname(__file__)))
|
|
outdir_abs_boost = outdir_abs / '_boost' / 'src'
|
|
if not os.path.exists(outdir_abs_boost):
|
|
os.makedirs(outdir_abs_boost)
|
|
make_boost(outdir_abs_boost, distutils_build=True)
|
|
else:
|
|
# Meson build
|
|
srcdir_abs = pathlib.Path(os.path.abspath(os.path.dirname(__file__)))
|
|
outdir_abs = pathlib.Path(os.getcwd()) / args.outdir
|
|
make_boost(outdir_abs)
|