Hi Campbell, this commit produced this error in CMake+MSVC: http://www.pasteall.org/16526
Confirmed in scons+gcc by Bassam. Any clues? Cheers, Dalai 2010/10/30 Campbell Barton <[email protected]> > Revision: 32764 > > http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=32764 > Author: campbellbarton > Date: 2010-10-30 00:59:39 +0200 (Sat, 30 Oct 2010) > > Log Message: > ----------- > use PyImport_ExtendInittab for py module initialization rather then adding > to sys.modules directly, no functional change. > > Modified Paths: > -------------- > trunk/blender/intern/audaspace/intern/AUD_C-API.cpp > trunk/blender/source/blender/python/generic/bgl.c > trunk/blender/source/blender/python/generic/bgl.h > trunk/blender/source/blender/python/generic/blf_api.c > trunk/blender/source/blender/python/generic/blf_api.h > trunk/blender/source/blender/python/generic/mathutils.c > trunk/blender/source/blender/python/generic/mathutils.h > trunk/blender/source/blender/python/generic/mathutils_geometry.c > trunk/blender/source/blender/python/generic/mathutils_geometry.h > trunk/blender/source/blender/python/generic/noise.c > trunk/blender/source/blender/python/intern/bpy.c > trunk/blender/source/blender/python/intern/bpy_interface.c > trunk/blender/source/blender/python/intern/bpy_operator.c > > Modified: trunk/blender/intern/audaspace/intern/AUD_C-API.cpp > =================================================================== > --- trunk/blender/intern/audaspace/intern/AUD_C-API.cpp 2010-10-29 19:40:45 > UTC (rev 32763) > +++ trunk/blender/intern/audaspace/intern/AUD_C-API.cpp 2010-10-29 22:59:39 > UTC (rev 32764) > @@ -197,7 +197,7 @@ > { > PyObject* module = PyInit_aud(); > PyModule_AddObject(module, "device", (PyObject > *)PyCFunction_New(meth_getcdevice, NULL)); > - PyDict_SetItemString(PySys_GetObject("modules"), "aud", module); > + PyDict_SetItemString(PyImport_GetModuleDict(), "aud", module); > if(AUD_device) > { > g_device = (Device*)Device_empty(); > > Modified: trunk/blender/source/blender/python/generic/bgl.c > =================================================================== > --- trunk/blender/source/blender/python/generic/bgl.c 2010-10-29 19:40:45 > UTC (rev 32763) > +++ trunk/blender/source/blender/python/generic/bgl.c 2010-10-29 22:59:39 > UTC (rev 32764) > @@ -1115,12 +1115,11 @@ > }; > > > -PyObject *BGL_Init(void) > +PyObject *BPyInit_bgl(void) > { > - PyObject *mod, *dict, *item; > - mod = PyModule_Create(&BGL_module_def); > - PyDict_SetItemString(PyImport_GetModuleDict(), > BGL_module_def.m_name, mod); > - dict= PyModule_GetDict(mod); > + PyObject *submodule, *dict, *item; > + submodule= PyModule_Create(&BGL_module_def); > + dict= PyModule_GetDict(submodule); > > if( PyType_Ready( &BGL_bufferType) < 0) > return NULL; /* should never happen */ > @@ -1612,6 +1611,6 @@ > EXPP_ADDCONST(GL_TEXTURE_BINDING_1D); > EXPP_ADDCONST(GL_TEXTURE_BINDING_2D); > > - return mod; > + return submodule; > } > > > Modified: trunk/blender/source/blender/python/generic/bgl.h > =================================================================== > --- trunk/blender/source/blender/python/generic/bgl.h 2010-10-29 19:40:45 > UTC (rev 32763) > +++ trunk/blender/source/blender/python/generic/bgl.h 2010-10-29 22:59:39 > UTC (rev 32764) > @@ -38,7 +38,7 @@ > > #include <Python.h> > > -PyObject *BGL_Init(void); > +PyObject *BPyInit_bgl(void); > > /*@ Create a buffer object */ > /*@ dimensions is an array of ndimensions integers representing the size > of each dimension */ > > Modified: trunk/blender/source/blender/python/generic/blf_api.c > =================================================================== > --- trunk/blender/source/blender/python/generic/blf_api.c 2010-10-29 > 19:40:45 UTC (rev 32763) > +++ trunk/blender/source/blender/python/generic/blf_api.c 2010-10-29 > 22:59:39 UTC (rev 32764) > @@ -390,17 +390,16 @@ > 0, /* m_free */ > }; > > -PyObject *BLF_Init(void) > +PyObject *BPyInit_blf(void) > { > PyObject *submodule; > > submodule = PyModule_Create(&BLF_module_def); > - PyDict_SetItemString(PyImport_GetModuleDict(), > BLF_module_def.m_name, submodule); > > PyModule_AddIntConstant(submodule, "ROTATION", BLF_ROTATION); > PyModule_AddIntConstant(submodule, "CLIPPING", BLF_CLIPPING); > PyModule_AddIntConstant(submodule, "SHADOW", BLF_SHADOW); > PyModule_AddIntConstant(submodule, "KERNING_DEFAULT", > BLF_KERNING_DEFAULT); > > - return (submodule); > + return submodule; > } > > Modified: trunk/blender/source/blender/python/generic/blf_api.h > =================================================================== > --- trunk/blender/source/blender/python/generic/blf_api.h 2010-10-29 > 19:40:45 UTC (rev 32763) > +++ trunk/blender/source/blender/python/generic/blf_api.h 2010-10-29 > 22:59:39 UTC (rev 32764) > @@ -22,5 +22,4 @@ > * ***** END GPL LICENSE BLOCK ***** > */ > > - > -PyObject *BLF_Init(void); > +PyObject *BPyInit_blf(void); > > Modified: trunk/blender/source/blender/python/generic/mathutils.c > =================================================================== > --- trunk/blender/source/blender/python/generic/mathutils.c 2010-10-29 > 19:40:45 UTC (rev 32763) > +++ trunk/blender/source/blender/python/generic/mathutils.c 2010-10-29 > 22:59:39 UTC (rev 32764) > @@ -245,12 +245,10 @@ > 0, /* m_free */ > }; > > -PyObject *Mathutils_Init(void) > +PyMODINIT_FUNC BPyInit_mathutils(void) > { > PyObject *submodule; > - > - > - > + > if( PyType_Ready( &vector_Type ) < 0 ) > return NULL; > if( PyType_Ready( &matrix_Type ) < 0 ) > @@ -263,7 +261,6 @@ > return NULL; > > submodule = PyModule_Create(&M_Mathutils_module_def); > - PyDict_SetItemString(PyImport_GetModuleDict(), > M_Mathutils_module_def.m_name, submodule); > > /* each type has its own new() function */ > PyModule_AddObject( submodule, "Vector", (PyObject > *)&vector_Type ); > @@ -273,9 +270,9 @@ > PyModule_AddObject( submodule, "Color", (PyObject > *)&color_Type ); > > /* submodule */ > - PyModule_AddObject( submodule, "geometry", > Geometry_Init()); > + PyModule_AddObject( submodule, "geometry", > BPyInit_mathutils_geometry()); > > mathutils_matrix_vector_cb_index= > Mathutils_RegisterCallback(&mathutils_matrix_vector_cb); > > - return (submodule); > + return submodule; > } > > Modified: trunk/blender/source/blender/python/generic/mathutils.h > =================================================================== > --- trunk/blender/source/blender/python/generic/mathutils.h 2010-10-29 > 19:40:45 UTC (rev 32763) > +++ trunk/blender/source/blender/python/generic/mathutils.h 2010-10-29 > 22:59:39 UTC (rev 32764) > @@ -61,8 +61,7 @@ > PyObject *BaseMathObject_getWrapped( BaseMathObject *self, void * ); > void BaseMathObject_dealloc(BaseMathObject * self); > > -PyObject *Mathutils_Init(void); > -PyObject *Noise_Init(void); /* lazy, saves having own header */ > +PyMODINIT_FUNC BPyInit_mathutils(void); > > int EXPP_FloatsAreEqual(float A, float B, int floatSteps); > int EXPP_VectorsAreEqual(float *vecA, float *vecB, int size, int > floatSteps); > > Modified: trunk/blender/source/blender/python/generic/mathutils_geometry.c > =================================================================== > --- trunk/blender/source/blender/python/generic/mathutils_geometry.c > 2010-10-29 19:40:45 UTC (rev 32763) > +++ trunk/blender/source/blender/python/generic/mathutils_geometry.c > 2010-10-29 22:59:39 UTC (rev 32764) > @@ -830,12 +830,8 @@ > }; > > /*----------------------------MODULE INIT-------------------------*/ > -PyObject *Geometry_Init(void) > +PyMODINIT_FUNC BPyInit_mathutils_geometry(void) > { > - PyObject *submodule; > - > - submodule = PyModule_Create(&M_Geometry_module_def); > - PyDict_SetItemString(PyImport_GetModuleDict(), > M_Geometry_module_def.m_name, submodule); > - > - return (submodule); > + PyObject *submodule= PyModule_Create(&M_Geometry_module_def); > + return submodule; > } > > Modified: trunk/blender/source/blender/python/generic/mathutils_geometry.h > =================================================================== > --- trunk/blender/source/blender/python/generic/mathutils_geometry.h > 2010-10-29 19:40:45 UTC (rev 32763) > +++ trunk/blender/source/blender/python/generic/mathutils_geometry.h > 2010-10-29 22:59:39 UTC (rev 32764) > @@ -34,6 +34,6 @@ > #include <Python.h> > #include "mathutils.h" > > -PyObject *Geometry_Init(void); > +PyMODINIT_FUNC BPyInit_mathutils_geometry(void); > > #endif /* EXPP_Geometry_H */ > > Modified: trunk/blender/source/blender/python/generic/noise.c > =================================================================== > --- trunk/blender/source/blender/python/generic/noise.c 2010-10-29 19:40:45 > UTC (rev 32763) > +++ trunk/blender/source/blender/python/generic/noise.c 2010-10-29 22:59:39 > UTC (rev 32764) > @@ -122,8 +122,6 @@ > static int initf = 0; > static unsigned long *next; > > -PyObject *Noise_Init(void); > - > /* initializes state[N] with a seed */ > static void init_genrand(unsigned long s) > { > @@ -657,10 +655,9 @@ > 0, /* m_free */ > }; > > -PyObject *Noise_Init(void) > +PyObject *BPyInit_noise(void) > { > PyObject *submodule = PyModule_Create(&noise_module_def); > - PyDict_SetItemString(PyImport_GetModuleDict(), > noise_module_def.m_name, submodule); > > /* use current time as seed for random number generator by default > */ > setRndSeed(0); > > Modified: trunk/blender/source/blender/python/intern/bpy.c > =================================================================== > --- trunk/blender/source/blender/python/intern/bpy.c 2010-10-29 19:40:45 > UTC (rev 32763) > +++ trunk/blender/source/blender/python/intern/bpy.c 2010-10-29 22:59:39 > UTC (rev 32764) > @@ -195,12 +195,7 @@ > printf("bpy: couldnt find 'scripts/modules', blender > probably wont start.\n"); > } > /* stand alone utility modules not related to blender directly */ > - Mathutils_Init(); > - Noise_Init(); > - BGL_Init(); > - BLF_Init(); > - IDProp_Init_Types(); > - AUD_initPython(); > + IDProp_Init_Types(); /* not actually a submodule, just types */ > > mod = PyModule_New("_bpy"); > > > Modified: trunk/blender/source/blender/python/intern/bpy_interface.c > =================================================================== > --- trunk/blender/source/blender/python/intern/bpy_interface.c 2010-10-29 > 19:40:45 UTC (rev 32763) > +++ trunk/blender/source/blender/python/intern/bpy_interface.c 2010-10-29 > 22:59:39 UTC (rev 32764) > @@ -196,6 +196,22 @@ > BPy_SetContext(C); > } > > +/* init-tab */ > +extern PyObject *BPyInit_noise(void); > +extern PyObject *BPyInit_mathutils(void); > +extern PyObject *BPyInit_bgl(void); > +extern PyObject *BPyInit_blf(void); > +extern PyObject *AUD_initPython(void); > + > +static struct _inittab bpy_internal_modules[]= { > + {"noise", BPyInit_noise}, > + {"mathutils", BPyInit_mathutils}, > + {"bgl", BPyInit_bgl}, > + {"blf", BPyInit_blf}, > + {"aud", AUD_initPython}, > + {NULL, NULL} > +}; > + > /* call BPY_set_context first */ > void BPY_start_python( int argc, char **argv ) > { > @@ -206,6 +222,9 @@ > utf8towchar(bprogname_wchar, bprogname); > Py_SetProgramName(bprogname_wchar); > > + /* builtin modules */ > + PyImport_ExtendInittab(bpy_internal_modules); > + > BPY_start_python_path(); /* allow to use our own included python */ > > Py_Initialize( ); > > Modified: trunk/blender/source/blender/python/intern/bpy_operator.c > =================================================================== > --- trunk/blender/source/blender/python/intern/bpy_operator.c 2010-10-29 > 19:40:45 UTC (rev 32763) > +++ trunk/blender/source/blender/python/intern/bpy_operator.c 2010-10-29 > 22:59:39 UTC (rev 32764) > @@ -313,14 +313,8 @@ > PyObject *BPY_operator_module(void) > { > PyObject *submodule; > - > + > submodule= PyModule_Create(&bpy_ops_module); > - PyDict_SetItemString(PyImport_GetModuleDict(), > bpy_ops_module.m_name, submodule); > > - /* INCREF since its its assumed that all these functions return the > - * module with a new ref like PyDict_New, since they are passed to > - * PyModule_AddObject which steals a ref */ > - Py_INCREF(submodule); > - > return submodule; > } > > > _______________________________________________ > Bf-blender-cvs mailing list > [email protected] > http://lists.blender.org/mailman/listinfo/bf-blender-cvs > _______________________________________________ Bf-committers mailing list [email protected] http://lists.blender.org/mailman/listinfo/bf-committers
