[Hdrflow-svn] SF.net SVN: hdrflow: [187] trunk
Status: Pre-Alpha
Brought to you by:
glslang
From: <gl...@us...> - 2007-07-15 18:44:51
|
Revision: 187 http://hdrflow.svn.sourceforge.net/hdrflow/?rev=187&view=rev Author: glslang Date: 2007-07-15 11:44:50 -0700 (Sun, 15 Jul 2007) Log Message: ----------- + Python modules within HDRFlow framework Modified Paths: -------------- trunk/app/HDRFlow/ScriptEditorController.mm trunk/app/HDRFlow/ScriptEngine.cpp trunk/lib/openlibraries/src/openpluginlib/pl/Makefile.am trunk/unity.sh Modified: trunk/app/HDRFlow/ScriptEditorController.mm =================================================================== --- trunk/app/HDRFlow/ScriptEditorController.mm 2007-07-15 18:34:09 UTC (rev 186) +++ trunk/app/HDRFlow/ScriptEditorController.mm 2007-07-15 18:44:50 UTC (rev 187) @@ -38,7 +38,7 @@ - ( void ) executeScript { NSString* script = [ scriptEdit_ string ]; - NSString* output = [ scriptOutput_ string ]; + NSString* output = [ [ [ NSString alloc ] initWithString: @"" ] autorelease ]; if( engine_->eval( [ script UTF8String ] ) ) { @@ -54,6 +54,7 @@ NSString* out = [ [ [ NSString alloc ] initWithUTF8String: engine_->result( ).c_str( ) ] autorelease ]; output = [ output stringByAppendingString: out ]; + output = [ output stringByAppendingString: @"\n" ]; [ scriptOutput_ setString: output ]; [ scriptOutput_ setNeedsDisplay: YES ]; Modified: trunk/app/HDRFlow/ScriptEngine.cpp =================================================================== --- trunk/app/HDRFlow/ScriptEngine.cpp 2007-07-15 18:34:09 UTC (rev 186) +++ trunk/app/HDRFlow/ScriptEngine.cpp 2007-07-15 18:44:50 UTC (rev 187) @@ -18,8 +18,10 @@ { if( obj ) { - py::extract<std::string> extract( obj ); - if( extract.check( ) ) return extract( ); + py::object strobj( py::handle<>( PyObject_Str( obj ) ) ); + py::extract<std::string> extract( strobj ); + if( extract.check( ) ) + return extract( ); } return pl::string( ); @@ -46,16 +48,20 @@ try { py::handle<> handle; - if( !( handle = py::handle<>( - py::allow_null( PyRun_String( str.c_str( ), Py_eval_input, main_namespace.ptr( ), main_namespace.ptr( ) ) ) ) ) ) + if( !( handle = + py::handle<>( py::allow_null( PyRun_String( str.c_str( ), Py_eval_input, main_namespace.ptr( ), main_namespace.ptr( ) ) ) ) ) ) { + // clear all errors so the call below has a chance to succeed. PyErr_Clear( ); handle = py::handle<>( PyRun_String( str.c_str( ), Py_file_input, main_namespace.ptr( ), main_namespace.ptr( ) ) ); } py::object strobj( py::handle<>( PyObject_Str( py::object( handle ).ptr( ) ) ) ); if( strobj ) - result_ = PyString_AsString( strobj.ptr( ) ) + pl::string( "\n" ); + { + result_ = PyString_AsString( strobj.ptr( ) ); + if( result_ == "None" ) result_.clear( ); + } } catch( py::error_already_set ) { @@ -64,12 +70,18 @@ PyObject* error_traceback; PyErr_Fetch( &error_type, &error_data, &error_traceback ); - + result_ += error_to_result( error_type ); result_ += error_to_result( error_data ); - result_ += error_to_result( error_traceback ); - result_ += "\n"; + result_ += error_to_result( error_traceback ); + + if( result_.empty( ) ) + result_ = "<no info available>"; + Py_XDECREF( error_type ); + Py_XDECREF( error_data ); + Py_XDECREF( error_traceback ); + return false; } Modified: trunk/lib/openlibraries/src/openpluginlib/pl/Makefile.am =================================================================== --- trunk/lib/openlibraries/src/openpluginlib/pl/Makefile.am 2007-07-15 18:34:09 UTC (rev 186) +++ trunk/lib/openlibraries/src/openpluginlib/pl/Makefile.am 2007-07-15 18:44:50 UTC (rev 187) @@ -81,6 +81,7 @@ $(BOOST_FILESYSTEM_LIBS) \ $(BOOST_REGEX_LIBS) \ $(BOOST_THREAD_LIBS) \ + $(BOOST_IOSTREAMS_LIBS) \ $(GLEW_LIBS) \ $(XML2_LIBS) \ $(OFX_LIBS) Modified: trunk/unity.sh =================================================================== --- trunk/unity.sh 2007-07-15 18:34:09 UTC (rev 186) +++ trunk/unity.sh 2007-07-15 18:44:50 UTC (rev 187) @@ -32,12 +32,13 @@ build_frameworks=0 build_umbrella=0 build_installer=0 +build_application=0 framework_version="A" install_name_prefix="/Library/Frameworks" output_directory="." -while getopts "v:b:efi:o:x:up" option +while getopts "v:b:efi:o:x:upa" option do case $option in e ) update_boost_version=1;; @@ -49,6 +50,7 @@ i ) install_name_prefix="$OPTARG";; u ) build_umbrella=1;; p ) build_installer=1;; + a ) build_application=1;; esac done @@ -105,9 +107,23 @@ cp $i $1.framework/Versions/Current/$1 && install_name_tool -id $install_name_prefix/$1.framework/Versions/$framework_version/$1 $1.framework/$1 fi - done + done } +make_framework_python_libs( ) +{ + if [ -d $2 ] + then + libs=`ls $2/.libs/*.?.dylib` + for i in $libs + do if [ ! -L $i ] + then cp $i $1.framework/Versions/$framework_version/PlugIns/$1.so && + install_name_tool -id $install_name_prefix/$1.framework/Versions/$framework_version/$1 $1.framework/$1 + fi + done + fi +} + make_framework_deps( ) { deplist="GLEW boost" @@ -247,51 +263,60 @@ make_framework_dir $1 && make_framework_headers $2 $1 && make_framework_libs $1 $2 && - make_framework_resources $1 $2 - make_framework_deps $1 - make_framework_plugins $2 $1 - make_framework_plugins_deps $1 - make_framework_interdeps $1 + make_framework_python_libs $1 "$2/../py" && + make_framework_resources $1 $2 && + make_framework_deps $1 && + make_framework_plugins $2 $1 && + make_framework_interdeps $1 && + make_framework_plugins_deps $1 && make_framework_libs_deps $1 } -make_umbrella_framework( ) +make_umbrella_framework_deps( ) { - rm -rf "./HDRFlow.framework" - make_framework "HDRFlow" "./lib/openlibraries/src/umbrella_framework" - - framework_dir="$output_directory/HDRFlow.framework" - mkdir -p "$framework_dir/Versions/$framework_version/Frameworks" - ln -sf "Versions/Current/Frameworks" "$framework_dir/Frameworks" - - cp -R "./HDRFlowPlugin.framework" "$framework_dir/Versions/$framework_version/Frameworks" - cp -R "./HDRFlowImage.framework" "$framework_dir/Versions/$framework_version/Frameworks" - cp -R "./HDRFlowMedia.framework" "$framework_dir/Versions/$framework_version/Frameworks" - deplist="openpluginlib_pl openimagelib_il openmedialib_ml" for i in $deplist - do depname=`otool -L HDRFlow.framework/HDRFlow | grep $i | cut -d ' ' -f 1` + do depname=`otool -L $1 | grep $i | cut -d ' ' -f 1` if [ ! -z $depname ] then case $i in openpluginlib_pl ) install_name_tool -change $depname \ "$install_name_prefix"/HDRFlow.framework/Versions/$framework_version/Frameworks/HDRFlowPlugin.framework/Versions/$framework_version/HDRFlowPlugin \ - ./HDRFlow.framework/Versions/$framework_version/HDRFlow + $1 ;; openimagelib_il ) install_name_tool -change $depname \ "$install_name_prefix"/HDRFlow.framework/Versions/$framework_version/Frameworks/HDRFlowImage.framework/Versions/$framework_version/HDRFlowImage \ - ./HDRFlow.framework/Versions/$framework_version/HDRFlow + $1 ;; openmedialib_ml ) install_name_tool -change $depname \ "$install_name_prefix"/HDRFlow.framework/Versions/$framework_version/Frameworks/HDRFlowMedia.framework/Versions/$framework_version/HDRFlowMedia \ - ./HDRFlow.framework/Versions/$framework_version/HDRFlow + $1 ;; esac fi done +} + +make_umbrella_framework( ) +{ + rm -rf "./HDRFlow.framework" + make_framework "HDRFlow" "./lib/openlibraries/src/umbrella_framework" + framework_dir="$output_directory/HDRFlow.framework" + mkdir -p "$framework_dir/Versions/$framework_version/Frameworks" + ln -sf "Versions/Current/Frameworks" "$framework_dir/Frameworks" + + cp -R "./HDRFlowPlugin.framework" "$framework_dir/Versions/$framework_version/Frameworks" + cp -R "./HDRFlowImage.framework" "$framework_dir/Versions/$framework_version/Frameworks" + cp -R "./HDRFlowMedia.framework" "$framework_dir/Versions/$framework_version/Frameworks" + + make_umbrella_framework_deps "HDRFlow.framework/HDRFlow" + make_umbrella_framework_deps "HDRFlow.framework/Frameworks/HDRFlowPlugin.framework/PlugIns/HDRFlowPlugin.so" + make_umbrella_framework_deps "HDRFlow.framework/Frameworks/HDRFlowImage.framework/PlugIns/HDRFlowImage.so" + make_umbrella_framework_deps "HDRFlow.framework/Frameworks/HDRFlowMedia.framework/PlugIns/HDRFlowMedia.so" + deplist="GLEW boost" for i in $deplist do fmwklist="HDRFlowPlugin HDRFlowImage HDRFlowMedia" @@ -301,8 +326,17 @@ do base=`basename $k` install_name_tool -change $k \ $install_name_prefix/HDRFlow.framework/Versions/$framework_version/Libraries/$base \ - HDRFlow.framework/Versions/$framework_version/Frameworks/$j.framework/$j + HDRFlow.framework/Versions/$framework_version/Frameworks/$j.framework/$j done + + # Python modules + depname=`otool -L HDRFlow.framework/Frameworks/$j.framework/PlugIns/$j.so | grep $i | cut -d ' ' -f 1` + for k in $depname + do base=`basename $k` + install_name_tool -change $k \ + $install_name_prefix/HDRFlow.framework/Versions/$framework_version/Libraries/$base \ + HDRFlow.framework/Versions/$framework_version/Frameworks/$j.framework/PlugIns/$j.so + done done done @@ -362,9 +396,12 @@ check_status $? fi - echo -n " HDRFlow application..." - make_app - check_status $? + if [ "$build_application" -eq 1 ] + then + echo -n " HDRFlow application..." + make_app + check_status $? + fi if [ "$build_installer" -eq 1 ] then echo " Building packages..." This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |