config: Add a --without-python option to build process
Add the ability to build libgem5 without embedded Python or the ability to configure with Python. This is a prelude to a patch to allow config.ini files to be loaded into libgem5 using only C++ which would make embedding gem5 within other simulation systems easier. This adds a few registration interfaces to things which cross between Python and C++. Namely: stats dumping and SimObject resolving
This commit is contained in:
@@ -157,9 +157,12 @@ extern "C" SimObject *convertSwigSimObjectPtr(PyObject *);
|
||||
// these in sim/main.cc as well that are handled without this define.
|
||||
#define PCC(s) const_cast<char *>(s)
|
||||
|
||||
/** Single instance of PythonSimObjectResolver as its action is effectively
|
||||
* static but SimObjectResolver can use a non-persistent object */
|
||||
PythonSimObjectResolver pythonSimObjectResolver;
|
||||
|
||||
SimObject *
|
||||
resolveSimObject(const string &name)
|
||||
PythonSimObjectResolver::resolveSimObject(const string &name)
|
||||
{
|
||||
PyObject *module = PyImport_ImportModule(PCC("m5.SimObject"));
|
||||
if (module == NULL)
|
||||
@@ -188,3 +191,9 @@ resolveSimObject(const string &name)
|
||||
|
||||
return obj;
|
||||
}
|
||||
|
||||
Checkpoint *
|
||||
getCheckpoint(const std::string &cpt_dir)
|
||||
{
|
||||
return new Checkpoint(cpt_dir, pythonSimObjectResolver);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user