24#ifdef PXR_BASE_TF_PY_MODULE_H
25#error This file should only be included once in any given source (.cpp) file.
27#define PXR_BASE_TF_PY_MODULE_H
32#include "pxr/base/tf/api.h"
33#include "pxr/base/tf/preprocessorUtilsLite.h"
35#include <boost/python/module.hpp>
49static void WrapModule();
51PXR_NAMESPACE_OPEN_SCOPE
54void Tf_PyInitWrapModule(
void (*wrapModule)(),
55 const char* packageModule,
56 const char* packageName,
57 const char* packageTag,
58 const char* packageTag2);
61void TF_PP_CAT(init_module_, MFB_PACKAGE_NAME)() {
65 TF_PP_STRINGIZE(MFB_PACKAGE_MODULE),
66 TF_PP_STRINGIZE(MFB_ALT_PACKAGE_NAME),
67 "Wrap " TF_PP_STRINGIZE(MFB_ALT_PACKAGE_NAME),
68 TF_PP_STRINGIZE(MFB_PACKAGE_NAME)
72PXR_NAMESPACE_CLOSE_SCOPE
85PyObject* TF_PP_CAT(PyInit__, MFB_PACKAGE_NAME)() {
87 static struct PyModuleDef moduledef = {
88 PyModuleDef_HEAD_INIT,
89 TF_PP_STRINGIZE(TF_PP_CAT(_, MFB_PACKAGE_NAME)),
99 PXR_NAMESPACE_USING_DIRECTIVE
100 return boost::python::detail::init_module(moduledef,
101 TF_PP_CAT(init_module_, MFB_PACKAGE_NAME));
118PyObject* TF_PP_CAT(PyInit_lib, MFB_PACKAGE_NAME)() {
120 static struct PyModuleDef moduledef = {
121 PyModuleDef_HEAD_INIT,
122 TF_PP_STRINGIZE(TF_PP_CAT(lib, MFB_PACKAGE_NAME)),
132 PXR_NAMESPACE_USING_DIRECTIVE
133 return boost::python::detail::init_module(moduledef,
134 TF_PP_CAT(init_module_, MFB_PACKAGE_NAME));
138#define TF_WRAP_MODULE static void WrapModule()
141#define TF_WRAP(x) ARCH_HIDDEN void wrap ## x (); wrap ## x ()
Define function attributes.