mirror of
https://github.com/capnproto/pycapnp.git
synced 2025-03-04 16:35:04 +01:00
30 lines
995 B
Python
30 lines
995 B
Python
'Build the bundled capnp distribution'
|
|
|
|
import subprocess
|
|
import os
|
|
import tempfile
|
|
|
|
def build_libcapnp(bundle_dir, build_dir, verbose=False):
|
|
bundle_dir = os.path.abspath(bundle_dir)
|
|
capnp_dir = os.path.join(bundle_dir, 'capnproto-c++')
|
|
build_dir = os.path.abspath(build_dir)
|
|
|
|
with tempfile.TemporaryFile() as f:
|
|
stdout = f
|
|
if verbose:
|
|
stdout = None
|
|
cxxflags = os.environ.get('CXXFLAGS', None)
|
|
os.environ['CXXFLAGS'] = (cxxflags or '') + ' -fPIC -O2 -DNDEBUG'
|
|
conf = subprocess.Popen(['./configure', '--disable-shared', '--prefix', build_dir], cwd=capnp_dir, stdout=stdout)
|
|
returncode = conf.wait()
|
|
if returncode != 0:
|
|
raise RuntimeError('Configure failed')
|
|
|
|
make = subprocess.Popen(['make', '-j4', 'install'], cwd=capnp_dir, stdout=stdout)
|
|
returncode = make.wait()
|
|
if cxxflags is None:
|
|
del os.environ['CXXFLAGS']
|
|
else:
|
|
os.environ['CXXFLAGS'] = cxxflags
|
|
if returncode != 0:
|
|
raise RuntimeError('Make failed')
|