mirror of
https://github.com/YosysHQ/yosys
synced 2025-10-09 09:21:58 +00:00
misc: WITH_PYTHON
-> YOSYS_ENABLE_PYTHON
For consistency. Also trying a new thing: only rebuilding objects that use the pybind11 library. The idea is these are the only objects that include the Python/pybind headers and thus the only ones that depend on the Python ABI in any capacity, so other objects can be reused across wheel builds. This has the potential to cut down build times.
This commit is contained in:
parent
dc88906c91
commit
447a6cb3f0
12 changed files with 82 additions and 60 deletions
|
@ -37,6 +37,12 @@
|
|||
# include <dlfcn.h>
|
||||
#endif
|
||||
|
||||
#ifdef YOSYS_ENABLE_PYTHON
|
||||
# include <Python.h>
|
||||
# include <pybind11/pybind11.h>
|
||||
namespace py = pybind11;
|
||||
#endif
|
||||
|
||||
#if defined(_WIN32)
|
||||
# include <windows.h>
|
||||
# include <io.h>
|
||||
|
@ -63,7 +69,7 @@
|
|||
# include <sys/sysctl.h>
|
||||
#endif
|
||||
|
||||
#ifdef WITH_PYTHON
|
||||
#ifdef YOSYS_ENABLE_PYTHON
|
||||
extern "C" PyObject* PyInit_libyosys();
|
||||
extern "C" PyObject* PyInit_pyosys();
|
||||
#include <signal.h>
|
||||
|
@ -184,7 +190,7 @@ int run_command(const std::string &command, std::function<void(const std::string
|
|||
bool already_setup = false;
|
||||
bool already_shutdown = false;
|
||||
|
||||
#ifdef WITH_PYTHON
|
||||
#ifdef YOSYS_ENABLE_PYTHON
|
||||
// Include pyosys as a package for some compatibility with wheels.
|
||||
//
|
||||
// This should not affect using wheels as the dylib has to actually be called
|
||||
|
@ -203,7 +209,7 @@ void yosys_setup()
|
|||
|
||||
IdString::ensure_prepopulated();
|
||||
|
||||
#ifdef WITH_PYTHON
|
||||
#ifdef YOSYS_ENABLE_PYTHON
|
||||
// Starting Python 3.12, calling PyImport_AppendInittab on an already
|
||||
// initialized platform fails (such as when libyosys is imported
|
||||
// from a Python interpreter)
|
||||
|
@ -267,13 +273,13 @@ void yosys_shutdown()
|
|||
dlclose(it.second);
|
||||
|
||||
loaded_plugins.clear();
|
||||
#ifdef WITH_PYTHON
|
||||
#ifdef YOSYS_ENABLE_PYTHON
|
||||
loaded_python_plugins.clear();
|
||||
#endif
|
||||
loaded_plugin_aliases.clear();
|
||||
#endif
|
||||
|
||||
#ifdef WITH_PYTHON
|
||||
#ifdef YOSYS_ENABLE_PYTHON
|
||||
Py_Finalize();
|
||||
#endif
|
||||
}
|
||||
|
@ -549,7 +555,7 @@ void init_share_dirname()
|
|||
#else
|
||||
void init_share_dirname()
|
||||
{
|
||||
# ifdef WITH_PYTHON
|
||||
# ifdef YOSYS_ENABLE_PYTHON
|
||||
PyObject *sys_obj = PyImport_ImportModule("sys");
|
||||
|
||||
if (PyObject_HasAttrString(sys_obj, "_pyosys_share_dirname")) {
|
||||
|
@ -609,7 +615,7 @@ void init_abc_executable_name()
|
|||
yosys_abc_executable = proc_self_dirname() + "..\\" + proc_program_prefix() + "yosys-abc";
|
||||
# endif
|
||||
|
||||
# ifdef WITH_PYTHON
|
||||
# ifdef YOSYS_ENABLE_PYTHON
|
||||
PyObject *sys_obj = PyImport_ImportModule("sys");
|
||||
|
||||
if (PyObject_HasAttrString(sys_obj, "_pyosys_abc")) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue