if not conf.CheckLib(lib):
error("Can't find library %s required by python." % lib)
+main.Prepend(CPPPATH=Dir('ext/pybind11/include/'))
+# Bare minimum environment that only includes python
+base_py_env = main.Clone()
+
# On Solaris you need to use libsocket for socket ops
if not conf.CheckLibWithHeader(None, 'sys/socket.h', 'C++', 'accept(0,0,0);'):
if not conf.CheckLibWithHeader('socket', 'sys/socket.h',
gdb_xml_dir = joinpath(ext_dir, 'gdb-xml')
Export('gdb_xml_dir')
-main.Prepend(CPPPATH=Dir('ext/pybind11/include/'))
-
###################################################
#
# This builder and wrapper method are used to set up a directory with
# The src/SConscript file sets up the build rules in 'env' according
# to the configured variables. It returns a list of environments,
# one for each variant build (debug, opt, etc.)
- SConscript('src/SConscript', variant_dir = variant_path, exports = 'env')
+ SConscript('src/SConscript', variant_dir=variant_path,
+ exports=['env', 'base_py_env'])
# base help text
Help('''
# -*- mode:python -*-
-# Copyright (c) 2018 ARM Limited
+# Copyright (c) 2018, 2020 ARM Limited
#
# The license below extends only to copyright in the software and shall
# not be construed as granting a license to any other intellectual
# Build a small helper that marshals the Python code using the same
# version of Python as gem5. This is in an unorthodox location to
# avoid building it for every variant.
-py_marshal = env.Program('marshal', 'python/marshal.cc')[0]
+py_marshal = base_py_env.Program('marshal', 'python/marshal.cc')[0]
# Embed python files. All .py files that have been indicated by a
# PySource() call in a SConscript need to be embedded into the M5
code.write(str(target[0]))
for source in PySource.all:
- env.Command(source.cpp, [ py_marshal, source.tnode ],
- MakeAction(embedPyFile, Transform("EMBED PY")))
+ base_py_env.Command(source.cpp, [ py_marshal, source.tnode ],
+ MakeAction(embedPyFile, Transform("EMBED PY")))
Source(source.cpp, tags=source.tags, add_tags='python')
########################################################################