[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.
|