diff options
22 files changed, 203 insertions, 310 deletions
diff --git a/release/scripts/modules/bpy/__init__.py b/release/scripts/modules/bpy/__init__.py index e4a2dfa5b05..e307b253780 100644 --- a/release/scripts/modules/bpy/__init__.py +++ b/release/scripts/modules/bpy/__init__.py @@ -20,14 +20,13 @@ # internal blender C module import _bpy -from _bpy import types, props +from _bpy import types, props, app data = _bpy.data context = _bpy.context # python modules from bpy import utils -from bpy import app from bpy import ops as _ops_module diff --git a/release/scripts/modules/bpy/app.py b/release/scripts/modules/bpy/app.py deleted file mode 100644 index 26011ca5c2e..00000000000 --- a/release/scripts/modules/bpy/app.py +++ /dev/null @@ -1,52 +0,0 @@ -# ##### BEGIN GPL LICENSE BLOCK ##### -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software Foundation, -# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -# ##### END GPL LICENSE BLOCK ##### - -# <pep8 compliant> - -""" -This module contains application values that remain unchanged during runtime. - -.. data:: version - - The Blender version as a tuple of 3 numbers. eg. (2, 50, 11) - - -.. data:: version_string - - The Blender version formatted as a string. - -.. data:: home - - The blender home directory, normally matching $HOME - -.. data:: binary_path - - The location of blenders executable, useful for utilities that spawn new instances. - -.. data:: debug - - Boolean, set when blender is running in debug mode (started with -d) - -""" -# constants -import _bpy -version = _bpy._VERSION -version_string = _bpy._VERSION_STR -home = _bpy._HOME -binary_path = _bpy._BINPATH -debug = _bpy._DEBUG diff --git a/source/blender/python/CMakeLists.txt b/source/blender/python/CMakeLists.txt index a83e29e2fab..3a57db647e6 100644 --- a/source/blender/python/CMakeLists.txt +++ b/source/blender/python/CMakeLists.txt @@ -19,33 +19,30 @@ # # The Original Code is: all of this file. # -# Contributor(s): Jacques Beaurain. +# Contributor(s): Jacques Beaurainm, Campbell Barton # # ***** END GPL LICENSE BLOCK ***** +ADD_SUBDIRECTORY(generic) + FILE(GLOB SRC intern/*.c) -FILE(GLOB GENSRC generic/*.c) SET(INC - . ../../../intern/guardedalloc ../blenlib ../makesdna ../makesrna - ../blenkernel ../editors/include ../windowmanager ${PYTHON_INC} - ../../../extern/glew/include + . + ../blenlib + ../makesdna + ../makesrna + ../blenkernel + ../windowmanager + ../editors/include + ../../../intern/guardedalloc + ${PYTHON_INC} ) -IF(WITH_OPENEXR) - ADD_DEFINITIONS(-DWITH_OPENEXR) -ENDIF(WITH_OPENEXR) - -IF(WITH_QUICKTIME) - SET(INC ${INC} ${QUICKTIME_INC}) - ADD_DEFINITIONS(-DWITH_QUICKTIME) -ENDIF(WITH_QUICKTIME) - -IF(WITH_FFMPEG) - SET(INC ${INC} ${FFMPEG_INC}) - ADD_DEFINITIONS(-DWITH_FFMPEG) -ENDIF(WITH_FFMPEG) +# only to check if buildinfo is available +IF(WITH_BUILDINFO) + ADD_DEFINITIONS(-DBUILD_DATE) +ENDIF(WITH_BUILDINFO) BLENDERLIB(bf_python "${SRC}" "${INC}") -BLENDERLIB(bf_gen_python "${GENSRC}" "${INC}") diff --git a/source/blender/python/doc/epy/Mathutils.py b/source/blender/python/doc/epy/Mathutils.py index eff3ab87dd3..b1bb039debe 100644 --- a/source/blender/python/doc/epy/Mathutils.py +++ b/source/blender/python/doc/epy/Mathutils.py @@ -1,60 +1,9 @@ # Blender.Mathutils module and its subtypes -""" -The Blender.Mathutils submodule. -Mathutils -========= -(when accessing it from the Game Engine use Mathutils instead of Blender.Mathutils) - -This module provides access to matrices, eulers, quaternions and vectors. - -Example:: - import Blender - from Blender import Mathutils - from Blender.Mathutils import * - - vec = Vector([1,2,3]) - mat = RotationMatrix(90, 4, 'x') - matT = TranslationMatrix(vec) - - matTotal = mat * matT - matTotal.invert() - - mat3 = matTotal.rotationPart - quat1 = mat.to_quat() - quat2 = mat3.to_quat() - - angle = DifferenceQuats(quat1, quat2) - print angle -""" class Vector: """ - The Vector object - ================= - @note: Comparison operators can be done on Vector classes: - - >, >=, <, <= test the vector magnitude - - ==, != test vector values e.g. 1,2,3 != 1,2,4 even if they are the same length - @note: Math can be performed on Vector classes - - vec + vec - - vec - vec - - vec * float/int - - vec * matrix - - vec * vec - - vec * quat - - -vec - @note: You can access a vector object like a sequence - - x = vector[0] - - vec_a[:] vec_b - - vec2d[:] vec3d[:2] - @note: Vectors support 'swizzle' operations - - vec.xyz = vec.zyx - - vec.xy = vec.zw - - vec.xxy = vec.wzz - - vec.yzyz = vec.yxyx - - See U{http://en.wikipedia.org/wiki/Swizzling_(computer_graphics)} @attention: Vector data can be wrapped or non-wrapped. When a object is wrapped it means that the object will give you direct access to the data inside of blender. Modification @@ -62,15 +11,6 @@ class Vector: you need to use the object's constructor. If you copy and object by assignment you will not get a second copy but a second reference to the same data. Only certain functions will return wrapped data. This will be indicated in the method description. - Example:: - wrappedObject = Object.getAttribute() #this is wrapped data - print wrappedObject.wrapped #prints 'True' - copyOfObject = wrappedObject.copy() #creates a copy of the object - secondPointer = wrappedObject #creates a second pointer to the same data - print wrappedObject.attribute #prints '5' - secondPointer.attribute = 10 - print wrappedObject.attribute #prints '10' - print copyOfObject.attribute #prints '5' """ def __init__(list = None): @@ -107,15 +47,6 @@ class Euler: you need to use the object's constructor. If you copy and object by assignment you will not get a second copy but a second reference to the same data. Only certain functions will return wrapped data. This will be indicated in the method description. - Example:: - wrappedObject = Object.getAttribute() #this is wrapped data - print wrappedObject.wrapped #prints 'True' - copyOfObject = wrappedObject.copy() #creates a copy of the object - secondPointer = wrappedObject #creates a second pointer to the same data - print wrappedObject.attribute #prints '5' - secondPointer.attribute = 10 - print wrappedObject.attribute #prints '10' - print copyOfObject.attribute #prints '5' """ def __init__(list = None): @@ -154,15 +85,6 @@ class Quaternion: you need to use the object's constructor. If you copy and object by assignment you will not get a second copy but a second reference to the same data. Only certain functions will return wrapped data. This will be indicated in the method description. - Example:: - wrappedObject = Object.getAttribute() #this is wrapped data - print wrappedObject.wrapped #prints 'True' - copyOfObject = wrappedObject.copy() #creates a copy of the object - secondPointer = wrappedObject #creates a second pointer to the same data - print wrappedObject.attribute #prints '5' - secondPointer.attribute = 10 - print wrappedObject.attribute #prints '10' - print copyOfObject.attribute #prints '5' """ def __init__(list, angle = None): @@ -208,15 +130,6 @@ class Matrix: you need to use the object's constructor. If you copy and object by assignment you will not get a second copy but a second reference to the same data. Only certain functions will return wrapped data. This will be indicated in the method description. - Example:: - wrappedObject = Object.getAttribute() #this is wrapped data - print wrappedObject.wrapped #prints 'True' - copyOfObject = wrappedObject.copy() #creates a copy of the object - secondPointer = wrappedObject #creates a second pointer to the same data - print wrappedObject.attribute #prints '5' - secondPointer.attribute = 10 - print wrappedObject.attribute #prints '10' - print copyOfObject.attribute #prints '5' """ def __init__(list1 = None, list2 = None, list3 = None, list4 = None): diff --git a/source/blender/python/doc/examples/mathutils.py b/source/blender/python/doc/examples/mathutils.py new file mode 100644 index 00000000000..a00ca3dd1c8 --- /dev/null +++ b/source/blender/python/doc/examples/mathutils.py @@ -0,0 +1,17 @@ +import Mathutils + +vec = Mathutils.Vector(1.0, 2.0, 3.0) + +mat_rot = Mathutils.RotationMatrix(90, 4, 'X') +mat_trans = Mathutils.TranslationMatrix(vec) + +mat = mat_trans * mat_rot +mat.invert() + +mat3 = mat.rotation_part() +quat1 = mat.to_quat() +quat2 = mat3.to_quat() + +angle = quat1.difference(quat2) + +print(angle)
\ No newline at end of file diff --git a/source/blender/python/doc/examples/mathutils_euler.py b/source/blender/python/doc/examples/mathutils_euler.py new file mode 100644 index 00000000000..0e7a62162d9 --- /dev/null +++ b/source/blender/python/doc/examples/mathutils_euler.py @@ -0,0 +1,3 @@ +import Mathutils + +# todo
\ No newline at end of file diff --git a/source/blender/python/doc/examples/mathutils_matrix.py b/source/blender/python/doc/examples/mathutils_matrix.py new file mode 100644 index 00000000000..0e7a62162d9 --- /dev/null +++ b/source/blender/python/doc/examples/mathutils_matrix.py @@ -0,0 +1,3 @@ +import Mathutils + +# todo
\ No newline at end of file diff --git a/source/blender/python/doc/examples/mathutils_quat.py b/source/blender/python/doc/examples/mathutils_quat.py new file mode 100644 index 00000000000..0e7a62162d9 --- /dev/null +++ b/source/blender/python/doc/examples/mathutils_quat.py @@ -0,0 +1,3 @@ +import Mathutils + +# todo
\ No newline at end of file diff --git a/source/blender/python/doc/examples/mathutils_vector.py b/source/blender/python/doc/examples/mathutils_vector.py new file mode 100644 index 00000000000..ef566a878e7 --- /dev/null +++ b/source/blender/python/doc/examples/mathutils_vector.py @@ -0,0 +1,55 @@ +import Mathutils + +# zero length vector +vec = Mathutils.Vector(0, 0, 1) + +# unit length vector +vec_a = vec.copy().normalize() + +vec_b = Mathutils.Vector(0, 1, 2) + +vec2d = Mathutils.Vector(1, 2) +vec3d = Mathutils.Vector([1, 0, 0]) +vec4d = vec_a.copy().resize4D() + +# other mathutuls types +quat = Mathutils.Quaternion() +matrix = Mathutils.Matrix() + +# Comparison operators can be done on Vector classes: + +# greater and less then test vector length. +vec_a > vec_b +vec_a >= vec_b +vec_a < vec_b +vec_a <= vec_b + +# ==, != test vector values e.g. 1,2,3 != 3,2,1 even if they are the same length +vec_a == vec_b +vec_a != vec_b + + +# Math can be performed on Vector classes +vec_a + vec_b +vec_a - vec_b +vec_a * vec_b +vec_a * 10.0 +vec_a * matrix +vec_a * vec_b +vec_a * quat +-vec_a + + +# You can access a vector object like a sequence +x = vec_a[0] +len(vec) +vec_a[:] = vec_b +vec2d[:] = vec3d[:2] + + +# Vectors support 'swizzle' operations +# See http://en.wikipedia.org/wiki/Swizzling_(computer_graphics) +vec.xyz = vec.zyx +vec.xy = vec.zw +vec.xxy = vec.wzz +vec.yzyz = vec.yxyx diff --git a/source/blender/python/sphinx_doc_gen.py b/source/blender/python/doc/sphinx_doc_gen.py index d7699d5d8f5..3b92ec28548 100644 --- a/source/blender/python/sphinx_doc_gen.py +++ b/source/blender/python/doc/sphinx_doc_gen.py @@ -21,7 +21,7 @@ script_help_msg = ''' Usage, run this script from blenders root path once you have compiled blender - ./blender.bin -b -P /b/source/blender/python/sphinx_doc_gen.py + ./blender.bin -b -P /b/source/blender/python/doc/sphinx_doc_gen.py This will generate python files in "./source/blender/python/doc/sphinx-in" Generate html docs by running... @@ -51,11 +51,14 @@ def range_str(val): else: return str(val) -def write_indented_lines(ident, fn, text): +def write_indented_lines(ident, fn, text, strip=True): if text is None: return for l in text.split("\n"): - fn(ident + l.strip() + "\n") + if strip: + fn(ident + l.strip() + "\n") + else: + fn(ident + l + "\n") def pymethod2sphinx(ident, fw, identifier, py_func): @@ -109,8 +112,7 @@ def py_c_func2sphinx(ident, fw, identifier, py_func, is_class=True): # dump the docstring, assume its formatted correctly if py_func.__doc__: - for l in py_func.__doc__.split("\n"): - fw(ident + l + "\n") + write_indented_lines(ident, fw, py_func.__doc__, False) fw("\n") else: fw(ident + ".. function:: %s()\n\n" % identifier) @@ -133,6 +135,7 @@ def pymodule2sphinx(BASEPATH, module_name, module, title): MethodDescriptorType = type(dict.get) GetSetDescriptorType = type(int.real) + filepath = os.path.join(BASEPATH, module_name + ".rst") @@ -150,6 +153,16 @@ def pymodule2sphinx(BASEPATH, module_name, module, title): fw(module.__doc__.strip()) fw("\n\n") + # write members of the module + # only tested with PyStructs which are not exactly modules + for attribute, descr in sorted(type(module).__dict__.items()): + if type(descr) == types.MemberDescriptorType: + if descr.__doc__: + fw(".. data:: %s\n\n" % attribute) + write_indented_lines(" ", fw, descr.__doc__, False) + fw("\n") + + classes = [] for attribute in dir(module): @@ -173,8 +186,7 @@ def pymodule2sphinx(BASEPATH, module_name, module, title): # May need to be its own function fw(".. class:: %s\n\n" % attribute) if value.__doc__: - for l in value.__doc__.split("\n"): - fw(" %s\n" % l) + write_indented_lines(" ", fw, value.__doc__, False) fw("\n") for key in sorted(value.__dict__.keys()): @@ -184,8 +196,7 @@ def pymodule2sphinx(BASEPATH, module_name, module, title): if type(descr) == GetSetDescriptorType: if descr.__doc__: fw(" .. attribute:: %s\n\n" % key) - for l in descr.__doc__.split("\n"): - fw(" %s\n" % l) + write_indented_lines(" ", fw, descr.__doc__, False) fw("\n") for key in sorted(value.__dict__.keys()): @@ -194,8 +205,7 @@ def pymodule2sphinx(BASEPATH, module_name, module, title): descr = value.__dict__[key] if type(descr) == MethodDescriptorType: # GetSetDescriptorType, GetSetDescriptorType's are not documented yet if descr.__doc__: - for l in descr.__doc__.split("\n"): - fw(" %s\n" % l) + write_indented_lines(" ", fw, descr.__doc__, False) fw("\n") fw("\n\n") @@ -203,6 +213,7 @@ def pymodule2sphinx(BASEPATH, module_name, module, title): file.close() + def rna2sphinx(BASEPATH): structs, funcs, ops, props = rna_info.BuildRNAInfo() @@ -217,11 +228,16 @@ def rna2sphinx(BASEPATH): file = open(filepath, "w") fw = file.write + + version_string = bpy.app.version_string.split("(")[0] + if bpy.app.build_revision != "Unknown": + version_string = version_string + " r" + bpy.app.build_revision + fw("project = 'Blender 3D'\n") # fw("master_doc = 'index'\n") fw("copyright = u'Blender Foundation'\n") - fw("version = '%s'\n" % bpy.app.version_string) - fw("release = '%s'\n" % bpy.app.version_string) + fw("version = '%s'\n" % version_string) + fw("release = '%s'\n" % version_string) fw("\n") # needed for latex, pdf gen fw("latex_documents = [ ('contents', 'contents.tex', 'Blender Index', 'Blender Foundation', 'manual'), ]\n") @@ -237,7 +253,7 @@ def rna2sphinx(BASEPATH): fw(" Blender Documentation contents\n") fw("%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n") fw("\n") - fw("This document is an API reference for Blender %s.\n" % bpy.app.version_string.split()[0]) + fw("This document is an API reference for Blender %s. built %s.\n" % (version_string, bpy.app.build_date)) fw("\n") fw("An introduction to blender and python can be found at <http://wiki.blender.org/index.php/Dev:2.5/Py/API/Intro>\n") fw("\n") @@ -285,6 +301,8 @@ def rna2sphinx(BASEPATH): # python modules from bpy import utils as module pymodule2sphinx(BASEPATH, "bpy.utils", module, "Utilities (bpy.utils)") + + # C modules from bpy import app as module pymodule2sphinx(BASEPATH, "bpy.app", module, "Application Data (bpy.app)") @@ -473,10 +491,18 @@ if __name__ == '__main__': print("\nError, this script must run from inside blender2.5") print(script_help_msg) else: - # os.system("rm source/blender/python/doc/sphinx-in/*.rst") - # os.system("rm -rf source/blender/python/doc/sphinx-out/*") - rna2sphinx('source/blender/python/doc/sphinx-in') + import shutil + + path_in = 'source/blender/python/doc/sphinx-in' + path_out = 'source/blender/python/doc/sphinx-in' + + shutil.rmtree(path_in, True) + shutil.rmtree(path_out, True) + rna2sphinx(path_in) + + # for fast module testing # os.system("rm source/blender/python/doc/sphinx-in/bpy.types.*.rst") + # os.system("rm source/blender/python/doc/sphinx-in/bpy.ops.*.rst") import sys sys.exit() diff --git a/source/blender/python/generic/BGL.c b/source/blender/python/generic/BGL.c index 767af8e0836..a0eb050341f 100644 --- a/source/blender/python/generic/BGL.c +++ b/source/blender/python/generic/BGL.c @@ -33,7 +33,7 @@ * allowing script writers to make OpenGL calls in their Python scripts. */ #include "BGL.h" /*This must come first */ - +#include <GL/glew.h> #include "MEM_guardedalloc.h" static int type_size( int type ); diff --git a/source/blender/python/generic/BGL.h b/source/blender/python/generic/BGL.h index 91f88549faf..d83a48445c9 100644 --- a/source/blender/python/generic/BGL.h +++ b/source/blender/python/generic/BGL.h @@ -41,7 +41,6 @@ #endif #include <Python.h> -#include <GL/glew.h> PyObject *BGL_Init(void); diff --git a/source/blender/python/generic/CMakeLists.txt b/source/blender/python/generic/CMakeLists.txt new file mode 100644 index 00000000000..da916ef33c7 --- /dev/null +++ b/source/blender/python/generic/CMakeLists.txt @@ -0,0 +1,34 @@ +# ***** BEGIN GPL LICENSE BLOCK ***** +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# Contributor(s): Campbell Barton +# +# ***** END GPL LICENSE BLOCK ***** + +FILE(GLOB SRC *.c) + +SET(INC + . + ../../blenlib + ../../makesdna + ../../blenkernel + ../../editors/include + ../../../../intern/guardedalloc + ../../../../extern/glew/include + ${PYTHON_INC} +) + +BLENDERLIB(bf_gen_python "${SRC}" "${INC}") diff --git a/source/blender/python/generic/Mathutils.c b/source/blender/python/generic/Mathutils.c index fa2c60813ed..cc8ced2d2db 100644 --- a/source/blender/python/generic/Mathutils.c +++ b/source/blender/python/generic/Mathutils.c @@ -54,7 +54,10 @@ #include "BKE_utildefines.h" //-------------------------DOC STRINGS --------------------------- -static char M_Mathutils_doc[] = "This module provides access to matrices, eulers, quaternions and vectors."; +static char M_Mathutils_doc[] = +"This module provides access to matrices, eulers, quaternions and vectors.\n" +"\n" +".. literalinclude:: ../examples/mathutils.py\n"; //-----------------------------METHODS---------------------------- //-----------------quat_rotation (internal)----------- diff --git a/source/blender/python/generic/euler.c b/source/blender/python/generic/euler.c index c41107286e0..2ba3d1d7675 100644 --- a/source/blender/python/generic/euler.c +++ b/source/blender/python/generic/euler.c @@ -591,7 +591,10 @@ static struct PyMethodDef Euler_methods[] = { }; //------------------PY_OBECT DEFINITION-------------------------- -static char euler_doc[] = "This object gives access to Eulers in Blender."; +static char euler_doc[] = +"This object gives access to Eulers in Blender.\n" +"\n" +".. literalinclude:: ../examples/mathutils_euler.py\n"; PyTypeObject euler_Type = { PyVarObject_HEAD_INIT(NULL, 0) diff --git a/source/blender/python/generic/matrix.c b/source/blender/python/generic/matrix.c index af754e532a9..181004929ff 100644 --- a/source/blender/python/generic/matrix.c +++ b/source/blender/python/generic/matrix.c @@ -1280,7 +1280,10 @@ static struct PyMethodDef Matrix_methods[] = { }; /*------------------PY_OBECT DEFINITION--------------------------*/ -static char matrix_doc[] = "This object gives access to Matrices in Blender."; +static char matrix_doc[] = +"This object gives access to Matrices in Blender.\n" +"\n" +".. literalinclude:: ../examples/mathutils_matrix.py\n"; PyTypeObject matrix_Type = { PyVarObject_HEAD_INIT(NULL, 0) diff --git a/source/blender/python/generic/quat.c b/source/blender/python/generic/quat.c index 33d35da5175..54172537e26 100644 --- a/source/blender/python/generic/quat.c +++ b/source/blender/python/generic/quat.c @@ -860,7 +860,10 @@ static PyGetSetDef Quaternion_getseters[] = { }; //------------------PY_OBECT DEFINITION-------------------------- -static char quaternion_doc[] = "This object gives access to Quaternions in Blender."; +static char quaternion_doc[] = +"This object gives access to Quaternions in Blender.\n" +"\n" +".. literalinclude:: ../examples/mathutils_quat.py\n"; PyTypeObject quaternion_Type = { PyVarObject_HEAD_INIT(NULL, 0) diff --git a/source/blender/python/generic/vector.c b/source/blender/python/generic/vector.c index 4efd168eb87..a8452773012 100644 --- a/source/blender/python/generic/vector.c +++ b/source/blender/python/generic/vector.c @@ -2110,7 +2110,10 @@ static struct PyMethodDef Vector_methods[] = { vec*mat and mat*vec both get sent to Vector_mul and it neesd to sort out the order */ -static char vector_doc[] = "This object gives access to Vectors in Blender."; +static char vector_doc[] = +"This object gives access to Vectors in Blender.\n" +"\n" +".. literalinclude:: ../examples/mathutils_vector.py\n"; PyTypeObject vector_Type = { PyVarObject_HEAD_INIT(NULL, 0) diff --git a/source/blender/python/intern/bpy_interface.c b/source/blender/python/intern/bpy_interface.c index e5204c0b8b5..7074f507aca 100644 --- a/source/blender/python/intern/bpy_interface.c +++ b/source/blender/python/intern/bpy_interface.c @@ -41,7 +41,6 @@ #include "bpy_rna.h" #include "bpy_props.h" #include "bpy_operator.h" -#include "bpy_ui.h" #include "bpy_util.h" #ifndef WIN32 @@ -60,11 +59,9 @@ #include "BLI_fileops.h" #include "BLI_string.h" -#include "BKE_blender.h" #include "BKE_context.h" #include "BKE_text.h" #include "BKE_context.h" -#include "BKE_global.h" #include "BKE_main.h" #include "BPY_extern.h" @@ -210,9 +207,7 @@ static void bpy_init_modules( void ) /* PyModule_AddObject( mod, "doc", BPY_rna_doc() ); */ PyModule_AddObject( mod, "props", BPY_rna_props() ); PyModule_AddObject( mod, "ops", BPY_operator_module() ); /* ops is now a python module that does the conversion from SOME_OT_foo -> some.foo */ - PyModule_AddObject( mod, "ui", BPY_ui_module() ); // XXX very experimental, consider this a test, especially PyCObject is not meant to be permanent - - + PyModule_AddObject( mod, "app", BPY_app_struct() ); /* bpy context */ { @@ -224,20 +219,6 @@ static void bpy_init_modules( void ) PyModule_AddObject(mod, "context", (PyObject *)bpy_context_module); } - /* blender info that wont change at runtime, add into _bpy */ - { - extern char bprogname[]; /* argv[0] from creator.c */ - - PyObject *mod_dict= PyModule_GetDict(mod); - char tmpstr[256]; - PyModule_AddStringConstant(mod, "_HOME", BLI_gethome()); - PyDict_SetItemString(mod_dict, "_VERSION", Py_BuildValue("(iii)", BLENDER_VERSION/100, BLENDER_VERSION%100, BLENDER_SUBVERSION)); - sprintf(tmpstr, "%d.%02d (sub %d)", BLENDER_VERSION/100, BLENDER_VERSION%100, BLENDER_SUBVERSION); - PyModule_AddStringConstant(mod, "_VERSION_STR", tmpstr); - PyModule_AddStringConstant(mod, "_BINPATH", bprogname); - PyModule_AddIntConstant(mod, "_DEBUG", G.f & G_DEBUG ? 1:0); - } - /* add our own modules dir, this is a python package */ bpy_import_test("bpy"); } @@ -794,7 +775,7 @@ int BPY_context_get(bContext *C, const char *member, bContextDataResult *result) if (item) printf("Context '%s' not a valid type\n", member); else printf("Context '%s' not found\n", member); } - else if (G.f & G_DEBUG) { + else { printf("Context '%s' found\n", member); } diff --git a/source/blender/python/intern/bpy_ui.c b/source/blender/python/intern/bpy_ui.c deleted file mode 100644 index ab50ebd8bd5..00000000000 --- a/source/blender/python/intern/bpy_ui.c +++ /dev/null @@ -1,69 +0,0 @@ -/** - * $Id$ - * - * ***** BEGIN GPL LICENSE BLOCK ***** - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - * - * Contributor(s): Campbell Barton - * - * ***** END GPL LICENSE BLOCK ***** - */ - -#include "bpy_ui.h" -#include "bpy_util.h" -#include "bpy_rna.h" /* for rna buttons */ -#include "bpy_operator.h" /* for setting button operator properties */ - -#include "WM_types.h" /* for WM_OP_INVOKE_DEFAULT & friends */ - -#include "BLI_dynstr.h" - -#include "MEM_guardedalloc.h" -#include "BKE_global.h" /* evil G.* */ -#include "BKE_context.h" - -#include "DNA_screen_types.h" -#include "DNA_space_types.h" /* only for SpaceLink */ -#include "UI_interface.h" -#include "WM_api.h" - -/* Dummy Module, may want to include non RNA UI functions here, else it can be removed */ - -static struct PyMethodDef ui_methods[] = { - {NULL, NULL, 0, NULL} -}; - -static struct PyModuleDef ui_module = { - PyModuleDef_HEAD_INIT, - "_bpy.ui", - "", - -1,/* multiple "initialization" just copies the module dict. */ - ui_methods, - NULL, NULL, NULL, NULL -}; - -PyObject *BPY_ui_module( void ) -{ - PyObject *submodule; - submodule= PyModule_Create(&ui_module); - - /* 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; -} diff --git a/source/blender/python/intern/bpy_ui.h b/source/blender/python/intern/bpy_ui.h deleted file mode 100644 index 4182a32d3f0..00000000000 --- a/source/blender/python/intern/bpy_ui.h +++ /dev/null @@ -1,31 +0,0 @@ -/** - * $Id$ - * - * ***** BEGIN GPL LICENSE BLOCK ***** - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - * - * Contributor(s): Campbell Barton - * - * ***** END GPL LICENSE BLOCK ***** - */ -#ifndef BPY_UI_H__ -#define BPY_UI_H__ - -#include <Python.h> - -PyObject *BPY_ui_module( void ); - -#endif diff --git a/source/creator/CMakeLists.txt b/source/creator/CMakeLists.txt index d6938aa958c..bb94ee2fe0f 100644 --- a/source/creator/CMakeLists.txt +++ b/source/creator/CMakeLists.txt @@ -88,11 +88,11 @@ IF(WIN32) ENDIF(WIN32) IF(WITH_BUILDINFO) - ADD_DEFINITIONS(-DBUILD_DATE="${BUILD_DATE}") - ADD_DEFINITIONS(-DBUILD_TIME="${BUILD_TIME}") - ADD_DEFINITIONS(-DBUILD_REV="${BUILD_REV}") - ADD_DEFINITIONS(-DBUILD_PLATFORM="${CMAKE_SYSTEM_NAME}") - ADD_DEFINITIONS(-DBUILD_TYPE="${CMAKE_BUILD_TYPE}") + ADD_DEFINITIONS(-DBUILD_DATE=${BUILD_DATE}) + ADD_DEFINITIONS(-DBUILD_TIME=${BUILD_TIME}) + ADD_DEFINITIONS(-DBUILD_REV=${BUILD_REV}) + ADD_DEFINITIONS(-DBUILD_PLATFORM=${CMAKE_SYSTEM_NAME}) + ADD_DEFINITIONS(-DBUILD_TYPE=${CMAKE_BUILD_TYPE}) SET(EXESRC ${EXESRC} buildinfo.c) ENDIF(WITH_BUILDINFO) |