ruschelp / cortex-vfx

Automatically exported from code.google.com/p/cortex-vfx
Other
3 stars 1 forks source link

Maya 2011 linux build #14

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Use /usr/autodesk/maya2011-x64/ as MAYA_ROOT option
2.
3.

What is the expected output? What do you see instead?
The expected output is the compiled maya plugin for IECoreMaya.so, but the 
compiler outputs:

g++ -o src/IECoreMaya/SystemExitCmd.os -c -pipe -Wall -O2 -DNDEBUG 
-DBOOST_DISABLE_ASSERTS -fPIC -DIE_CORE_MAJORVERSION=5 
-DIE_CORE_MINORVERSION=12 -DIE_CORE_PATCHVERSION=0 -D_BOOL -DREQUIRE_IOSTREAM 
-I/usr/include/python2.6 -I/usr/include/python2.6 -DLINUX -DIECOREMAYA_WITH_RI 
-DIECORERI_RMANPROCEDURAL_NAME=iePython -Iinclude -I/usr/include/tbb 
-I/usr/include/OpenEXR -I/usr/include/OpenEXR -I/usr/include/OpenEXR/OpenEXR 
-I/usr/include/OpenEXR/OpenEXR -I/usr/include -I/usr/local/include 
-I/usr/local/include -I/usr/local/include/freetype2 -I/usr/include/GL 
-I/usr/autodesk/maya2011-x64/include -I/usr/3delight/include 
src/IECoreMaya/SystemExitCmd.cpp
src/IECoreMaya/SystemExitCmd.cpp: In member function 'virtual MStatus 
IECoreMaya::SystemExitCmd::doIt(const MArgList&)':
src/IECoreMaya/SystemExitCmd.cpp:72: error: 'exit' was not declared in this 
scope
scons: *** [src/IECoreMaya/SystemExitCmd.os] Error 1
scons: building terminated because of errors.

What version of the product are you using? On what operating system?
Version 5.13.0. from svn  Linux x64 (OpenSuSE 11.2)

Please provide any additional information below.
The complete scons string is:
scons BOOST_INCLUDE_PATH=/usr/include/ BOOST_LIB_PATH=/usr/lib64/ 
BOOST_LIB_SUFFIX= OPENEXR_INCLUDE_PATH=/usr/include/OpenEXR/ 
TBB_INCLUDE_PATH=/usr/include/tbb/ RMAN_ROOT=/usr/3delight/ 
MAYA_ROOT=/usr/autodesk/maya2011-x64/  NUKE_ROOT=/usr/local/Nuke6.1v1/  
GLEW_INCLUDE_PATH=/usr/include/GL/ GLUT_INCLUDE_PATH=/usr/include/GL/ 
WITH_GL=yes GLUT_INCLUDE_PATH=/usr/include/GL/

edgar

Original issue reported on code.google.com by eddga...@gmail.com on 20 Aug 2010 at 8:35

GoogleCodeExporter commented 9 years ago
I am seeing a similar error with Maya 2008

Sam

Original comment by sam.ho...@gmail.com on 30 Sep 2010 at 2:33

GoogleCodeExporter commented 9 years ago
exit() is a stdlib command. Can you try adding "#include <stdlib.h>" to 
src/IECoreMaya/SystemExitCmd.cpp to see if that helps? Or try std::exit or 
::exit.

It is known that Cortex doesn't currently build with Maya 2011, but not for 
this reason. We don't have internal plans to revisit Maya 2011 until the new 
year. If you do manage to get it running in 2011, we'd be happy to see the 
patch.

As for Maya 2008, we dropped support for that version as of Cortex 5. You'll 
either have to use a Cortex 4 distribution, or update to Maya 2009 or 2010. It 
may be possible to patch cortex to work in Maya 2008, but I believe we are 
using API functionality that isn't available until 2009.

Andrew

Original comment by andrewk....@gmail.com on 30 Sep 2010 at 4:15

GoogleCodeExporter commented 9 years ago
Thanks Andrew,
I've included the stdlib.h line but now there's an error in other place:

g++ -o src/IECoreMaya/bindings/FnParameterisedHolderBinding.os -c -pipe -Wall 
-O2 -DNDEBUG -DBOOST_DISABLE_ASSERTS -fPIC -DIE_CORE_MAJORVERSION=5 
-DIE_CORE_MINORVERSION=20 -DIE_CORE_PATCHVERSION=0 -I/usr/include/python2.6 
-I/usr/include/python2.6 -DBOOST_PYTHON_MAX_ARITY=20 -D_BOOL -DREQUIRE_IOSTREAM 
-I/usr/include/python2.6 -I/usr/include/python2.6 -DLINUX -Iinclude 
-I/usr/include/tbb -I/usr/include/OpenEXR -I/usr/include/OpenEXR 
-I/usr/include/OpenEXR/OpenEXR -I/usr/include/OpenEXR/OpenEXR -I/usr/include 
-I/usr/local/include -I/usr/local/include -I/usr/local/include/freetype2 
-I/usr/include/GL -I/usr/autodesk/maya2011-x64/include 
src/IECoreMaya/bindings/FnParameterisedHolderBinding.cpp
src/IECoreMaya/bindings/FnParameterisedHolderBinding.cpp:141: error: 'void 
IECoreMaya::parameterisedHolderAssignModificationState(IECore::ObjectPtr, 
IECore::CompoundDataPtr, IECore::ObjectPtr, IECore::CompoundDataPtr)' should 
have been declared inside 'IECoreMaya'
scons: *** [src/IECoreMaya/bindings/FnParameterisedHolderBinding.os] Error 1
scons: building terminated because of errors.

I just did the same thing as before with scons, so maybe I should take a closer 
look again. I'll post here how it goes,

edgar

Original comment by eddga...@gmail.com on 3 Oct 2010 at 10:40

GoogleCodeExporter commented 9 years ago
It sounds as if you may be using a more recent version of gcc than we've tested 
with - just out of interest what is the output of "g++ --version"?

Could you try replacing lines 141-147 of 
IECoreMaya/bindings/FnParameterisedHolderBinding.cpp with the following :

namespace IECoreMaya
{

void parameterisedHolderAssignModificationState( IECore::ObjectPtr 
originalValue, IECore::CompoundDataPtr originalClasses, IECore::ObjectPtr 
newValue, IECore::CompoundDataPtr newClasses )
{
    ParameterisedHolderModificationCmd::g_originalValue = originalValue;
    ParameterisedHolderModificationCmd::g_originalClasses = originalClasses;
    ParameterisedHolderModificationCmd::g_newValue = newValue;
    ParameterisedHolderModificationCmd::g_newClasses = newClasses;
}

}

Original comment by thehaddo...@gmail.com on 4 Oct 2010 at 3:47

GoogleCodeExporter commented 9 years ago

Thanks! It's all compiled now. I still have to test everything and maybe 
download Houdini Apprentice to build against that too. Will do that asap.

g++ (SUSE Linux) 4.4.1 [gcc-4_4-branch revision 150839 by the way.

Original comment by eddga...@gmail.com on 5 Oct 2010 at 3:05

GoogleCodeExporter commented 9 years ago
Great - I've committed the changes to the trunk so they shouldn't be necessary 
in the future. Please note though that we haven't thoroughly tested Cortex with 
Maya 2011 and I believe there are unresolved issues there still. Also it can be 
very important to build with the right compiler for your target application and 
I'm not sure that 4.4.1 is the right gcc version (we use 4.1.2 for Maya 2010 
and Houdini).

Original comment by john.ima...@gmail.com on 5 Oct 2010 at 4:34

GoogleCodeExporter commented 9 years ago
For the record I got pretty close with Maya 2008

The plugin compiled OK

BUT

on loading the plugin I got the following error:

// Error: Unable to dynamically load : 
/home/samh/Development/cortex-vfx-read-only/plugins/maya/ieCore.so
/usr/autodesk/maya2008/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found 
(required by /usr/lib/libboost_regex.so.1.40.0) // 
// Error: /usr/autodesk/maya2008/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' 
not found (required by /usr/lib/libboost_regex.so.1.40.0) // 
// Error: /usr/autodesk/maya2008/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' 
not found (required by /usr/lib/libboost_regex.so.1.40.0) (ieCore) // 

So it looks more like a mismatch between boost and maya's glibc rather than API 
functionality as I would expect the API calls would prevent it from compiling

Which is a pity because this is just some stuff I am playing with at home and I 
dont have any hardware which is 64 bit compatible with room to accept a Linux 
install.

I believe that 2008 is the last version of 32 bit Linux Maya that Autodesk 
released.

Nevermind

Sam

Original comment by sam.ho...@gmail.com on 13 Oct 2010 at 4:15

GoogleCodeExporter commented 9 years ago
This was also making both of the changes in comment 2 and comment 5

Sam

Original comment by sam.ho...@gmail.com on 13 Oct 2010 at 4:16

GoogleCodeExporter commented 9 years ago
I think the problem is most likely that you're building with gcc 4.4.1 - you 
really need to build with gcc 4.1.2 for maya 2008 (this isn't a cortex 
requirement but a maya one). That means building boost and openexr and tbb with 
gcc 4.1.2 too - this is where developing for multiple vfx applications on linux 
becomes a real pain.

Original comment by thehaddo...@gmail.com on 13 Oct 2010 at 3:58

GoogleCodeExporter commented 9 years ago
Just to comment that after compiling with suggested versions (and using gcc 
4.1.2) everything was working. Some minor problems with libraries not found in 
standard paths.

Possibly the maya dome builder example has to be updated since I'm getting:

# Error: ArgumentError: Python argument types in
    Op.__init__(DomeBuilder, str, str, DAGPathParameter)
did not match C++ signature:
    __init__(_object*, std::string description, IECore::IntrusivePtr<IECore::CompoundParameter> compoundParameter, IECore::IntrusivePtr<IECore::Parameter> resultParameter)
    __init__(_object*, std::string description, IECore::IntrusivePtr<IECore::Parameter> resultParameter) # 

when trying to execute, but the rest of the examples are fine. Or simply 
there's still something wrong on my system :-)

Original comment by eddga...@gmail.com on 5 Jan 2011 at 2:48

GoogleCodeExporter commented 9 years ago
That example was not updated to Cortex 5. We've changed two things: the Ops 
don't have the name parameter anymore on their constructor and the compound 
objects cannot be indexed anymore using the dot syntax. Only square brackets is 
accepted now.
Thanks for pointing that out!

Original comment by lucio.im...@gmail.com on 5 Jan 2011 at 5:56

GoogleCodeExporter commented 9 years ago

Original comment by john.ima...@gmail.com on 26 Jan 2011 at 1:51

GoogleCodeExporter commented 9 years ago
Quick status update on this. I've started looking into Maya 2011 support and 
things don't look too bad at present.

The python unit tests are passing already.

The C++ tests pass but then segfault on shutdown. As far as I can tell this is 
because we're not calling MLibrary::cleanup() and the license manager crashes 
on exit because of that. Boost::test doesn't seem particularly helpful in terms 
of allowing us to cleanup on shutdown so my current plan is to port the c++ 
tests to python - this will also mean adding bindings for the image converters 
which will be a nice feature anyway.

The remaining problem I'm aware of is that the IECoreGL initialisation fails 
during plugin load - I think we can fix this by deferring initialisation to the 
point of use.

Original comment by thehaddo...@gmail.com on 9 Feb 2011 at 12:24

GoogleCodeExporter commented 9 years ago
Just a quick note to say that I've moved the C++ tests into python, which meant 
adding a few new python bindings which will come in handy anyway. I've also 
fixed another couple of problems and things seem to be running pretty well in 
Maya 2011 right now. I've still only done limited testing, so won't resolve 
this ticket just now, but if any interested parties want to take it for a spin 
then now is not a bad time...

Original comment by thehaddo...@gmail.com on 15 Feb 2011 at 7:13

GoogleCodeExporter commented 9 years ago
Will do, thanks.
But before that, and maybe a bit off topic, which is the scons version I should 
be using? Right now is 1.2 (engine & script) and I can't get coreRI library to 
build without forcing "haveDelight = 1" and using "c.CheckFunc( 
"SxGetParameter", "sx.h" )" instead of regular c.CheckCXXHeader( "sx.h" ) and 
c.CheckFunc( "SxGetParameter" ) in line 1367 with 3delight 9.0.86

Original comment by eddga...@gmail.com on 15 Feb 2011 at 8:22

GoogleCodeExporter commented 9 years ago
We've updated to SCons 2.0.1, and the trunk builds fine with that. Before that 
we were using an ancient 0.97 - I'm pretty sure that still works too. We've 
never tried 1.2.

Original comment by thehaddo...@gmail.com on 15 Feb 2011 at 9:31

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
This might be a stupid question, but have you loaded the ieCore plugin before 
running the example? When you load the plugin do you get any errors in the 
script editor?
Cheers...
John

Original comment by thehaddo...@gmail.com on 27 Jun 2012 at 7:04

GoogleCodeExporter commented 9 years ago
Thanks John, this did the trick.
Just want to crawl under a rock now, thought I had it on autoload.

Original comment by tak7yosh...@gmail.com on 28 Jun 2012 at 4:37

GoogleCodeExporter commented 9 years ago

Original comment by thehaddo...@gmail.com on 17 Dec 2012 at 5:27