Browse Source

interrogate: Use the limited Python API for simple Python back-end

rdb 1 year ago
parent
commit
58ea174eb2

+ 12 - 0
dtool/src/interrogate/interfaceMakerPythonSimple.cxx

@@ -42,6 +42,18 @@ InterfaceMakerPythonSimple::
 ~InterfaceMakerPythonSimple() {
 }
 
+/**
+ * Generates the list of #include ... whatever that's required by this
+ * particular interface to the indicated output stream.
+ */
+void InterfaceMakerPythonSimple::
+write_includes(std::ostream &out) {
+  out << "#if PY_VERSION_HEX >= 0x30300000\n";
+  out << "#define Py_LIMITED_API 0x30300000\n";
+  out << "#endif\n\n";
+  InterfaceMakerPython::write_includes(out);
+}
+
 /**
  * Generates the list of function prototypes corresponding to the functions
  * that will be output in write_functions().

+ 1 - 0
dtool/src/interrogate/interfaceMakerPythonSimple.h

@@ -35,6 +35,7 @@ public:
   InterfaceMakerPythonSimple(InterrogateModuleDef *def);
   virtual ~InterfaceMakerPythonSimple();
 
+  virtual void write_includes(std::ostream &out);
   virtual void write_prototypes(std::ostream &out,std::ostream *out_h);
   virtual void write_functions(std::ostream &out);