blob: 0b1ac1f0511b3be29ac4cd518afdf498abf53aaf [file]
// Protocol Buffers - Google's data interchange format
// Copyright 2021 Google LLC. All rights reserved.
//
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file or at
// https://developers.google.com/open-source/licenses/bsd
#include <Python.h>
namespace google {
namespace protobuf {
namespace python {
static const char* kModuleName = "_use_fast_cpp_protos";
static const char kModuleDocstring[] =
"The presence of this module in a build's deps signals to\n"
"net.google.protobuf.internal.api_implementation that the fast\n"
"C++ protobuf implementation should be the default.\n";
static struct PyModuleDef _module = {PyModuleDef_HEAD_INIT,
kModuleName,
kModuleDocstring,
-1,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr};
extern "C" {
PyMODINIT_FUNC PyInit__use_fast_cpp_protos() {
PyObject* module = PyModule_Create(&_module);
if (module == nullptr) {
return nullptr;
}
#ifdef Py_GIL_DISABLED
PyUnstable_Module_SetGIL(module, Py_MOD_GIL_NOT_USED);
#endif
return module;
}
} // extern "C"
} // namespace python
} // namespace protobuf
} // namespace google