Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxime Curioni <maxime.curioni@gmail.com>2008-05-27 07:29:43 +0400
committerMaxime Curioni <maxime.curioni@gmail.com>2008-05-27 07:29:43 +0400
commit4245f8160555f12139a44d4bb8c3eac7bfc5970b (patch)
tree0122f0603f078c06ca2de48a822afe9e050714dd /source/blender/freestyle
parent373d42dbeaef014ce6d8c9d337242966d7ca8e5f (diff)
soc-2008-mxcurioni: PythonInterpreter now properly handles its initialization (in accordance with original Freestyle code). This is achieved by creating a temporary Text structure, adding the required import and appending the necessary Python path. The text is executed using the BPY_txt_do_python_Text command.
When Freestyle is run within Blender, it should not crash; the Python interpreter should report an ImportError on _Freestyle (the SWIG wrapper).
Diffstat (limited to 'source/blender/freestyle')
-rw-r--r--source/blender/freestyle/SConscript2
-rwxr-xr-xsource/blender/freestyle/intern/system/PythonInterpreter.h25
2 files changed, 17 insertions, 10 deletions
diff --git a/source/blender/freestyle/SConscript b/source/blender/freestyle/SConscript
index 623bf0308dd..4f096d35c23 100644
--- a/source/blender/freestyle/SConscript
+++ b/source/blender/freestyle/SConscript
@@ -92,4 +92,4 @@ env.BlenderLib (libname="bf_freestyle",
# g++ -w -I../geometry -I../image -I../scene_graph -I../stroke -I../system -I../view_map -I../winged_edge -I/usr/include/python2.5 -I../../../blenlib -I../../../blenkernel -I../../../imbuf -I../../../makesdna -c ModuleWrapper.cpp -o ModuleWrapper.o
#
-# g++ -bundle -flat_namespace -undefined suppress -w -L/usr/lib/python2.5/config -lpython2.5 -o ../../python/_Freestyle.so ModuleWrapper.o \ No newline at end of file
+# g++ -bundle -flat_namespace -undefined suppress -w -L/Users/mx/Documents/work/GSoC_2008/bf-blender/branches/build/darwin/lib -L/usr/lib/python2.5/config -lbf_freestyle -lbf_blenlib -lbf_blenkernel -lbf_guardedalloc -lbf_imbuf -lpython2.5 -o ../../python/_Freestyle.so ModuleWrapper.o
diff --git a/source/blender/freestyle/intern/system/PythonInterpreter.h b/source/blender/freestyle/intern/system/PythonInterpreter.h
index d9b563fabaa..540d0b3ddec 100755
--- a/source/blender/freestyle/intern/system/PythonInterpreter.h
+++ b/source/blender/freestyle/intern/system/PythonInterpreter.h
@@ -105,15 +105,22 @@ private:
if (_initialized)
return;
- // vector<string> pathnames;
- // StringUtils::getPathName(_path, "", pathnames);
- //
- // for (vector<string>::const_iterator it = pathnames.begin(); it != pathnames.end();++it) {
- // if ( !it->empty() ) {
- // cout << "Adding Python path: " << *it << endl;
- // syspath_append( const_cast<char*>(it->c_str()) );
- // }
- // }
+ vector<string> pathnames;
+ StringUtils::getPathName(_path, "", pathnames);
+
+ struct Text *text = add_empty_text("initpath_test.txt");
+ string cmd = "import sys\n";
+ txt_insert_buf(text, const_cast<char*>(cmd.c_str()));
+
+ for (vector<string>::const_iterator it = pathnames.begin(); it != pathnames.end();++it) {
+ if ( !it->empty() ) {
+ cout << "Adding Python path: " << *it << endl;
+ cmd = "sys.path.append(\"" + *it + "\")\n";
+ txt_insert_buf(text, const_cast<char*>(cmd.c_str()));
+ }
+ }
+
+ BPY_txt_do_python_Text(text);
//PyRun_SimpleString("from Freestyle import *");
_initialized = true;