PlaneShift

Development => Development Deliberation => Topic started by: Madouc on September 28, 2005, 03:07:48 pm

Title: Build problem
Post by: Madouc on September 28, 2005, 03:07:48 pm
i\'ve downloaded all the latest CVS files

CS complies allright,
cel compiles allright,
only psclient won\'t build.
it stops with the following errors:
Code: [Select]
------ Build started: Project: apppsclient, Configuration: Debug Win32 ------

Compiling...
psengine.cpp
\\dev\\planeshift\\src\\client\\psengine.cpp(251) : error C2259: \'psCal3DCallbackLoader\' : cannot instantiate abstract class
        due to following members:
        \'csPtr iLoaderPlugin::Parse(iDocumentNode *,iStreamSource *,iLoaderContext *,iBase *)\' : pure virtual function was not defined
        with
        [
            T=iBase
        ]
        ..\\..\\..\\CS\\include\\imap\\reader.h(50) : see declaration of \'iLoaderPlugin::Parse\'
\\dev\\planeshift\\src\\client\\psengine.cpp(1052) : error C2259: \'psEffectManager\' : cannot instantiate abstract class
        due to following members:
        \'csPtr iLoaderPlugin::Parse(iDocumentNode *,iStreamSource *,iLoaderContext *,iBase *)\' : pure virtual function was not defined
        with
        [
            T=iBase
        ]
        ..\\..\\..\\CS\\include\\imap\\reader.h(50) : see declaration of \'iLoaderPlugin::Parse\'
pscal3dcallback.cpp
\\dev\\planeshift\\src\\client\\pscal3dcallback.cpp(53) : error C2635: cannot convert a \'iBase*\' to a \'iMeshFactoryWrapper*\'; conversion from a virtual base class is implied
        ..\\..\\..\\CS\\include\\csutil\\scf_interface.h(108) : see declaration of \'iBase\'
        ..\\..\\..\\CS\\include\\iengine\\mesh.h(751) : see declaration of \'iMeshFactoryWrapper\'
\\dev\\planeshift\\src\\client\\pscal3dcallback.cpp(53) : error C2039: \'GetMeshObjectFactory\' : is not a member of \'iBase\'
        ..\\..\\..\\CS\\include\\csutil\\scf_interface.h(108) : see declaration of \'iBase\'

Build log was saved at \"file://h:\\dev\\planeshift\\mk\\visualc7.1\\psbuild\\debug\\apppsclient\\BuildLog.htm\"
apppsclient - 4 error(s), 0 warning(s)


i\'ve already double and tripple checked my paths.
i only have set my cel - lib path to \'h:\\dev\\cel\\out\\debug\\libs\\\' because \'h:\\dev\\cel\\msvc\\debug\\libs\\\' dousn\'t exist
Title:
Post by: stfrn on September 28, 2005, 03:23:47 pm
I\'m wondering which guide you used for building Planeshift. For a while now, we have had a freeze date on CS and Cel, previsously it was 8-11, but it was moved up to 9-5. The guides on laanx say the 8-11 date, but these errors are due to CS being too new, so you didn\'t specify any date.

As for the errors, more functions were added into iLoaderPlugin:: Parse, however PS has not been adjusted for this change,. Use the freeze date of Sept. 5th, untill it is updated again.
Title:
Post by: Madouc on September 28, 2005, 03:51:09 pm
the guide on laanx doesn\'t specify a date.

how do i get the dated versions?
Title:
Post by: stfrn on September 28, 2005, 04:00:34 pm
Ah, you followed the Guide for VisualC++... that needs to be edited then. Instead of:
:pserver:anonymous@cvs.sourceforge.net:/cvsroot/crystal

you should use:
:pserver:anonymous@cvs.sourceforge.net:/cvsroot/crystal co CS -D 2005-09-05 00:00:00

same for

:pserver:anonymous@cvs.sourceforge.net:/cvsroot/cel co cel -D 2005-09-05 00:00:00

I assume your CVS client can take the date format like that. If not... upgrade to Tortoise CVS :P
Title:
Post by: Madouc on September 28, 2005, 04:59:25 pm
:)
changing 6 lines of code also made planeshift compatible with the latest CVS of CS en CEL :P

(i\'m already running tortoise CVS :) )
Title:
Post by: banuse on September 28, 2005, 06:14:22 pm
yeah,this is my modification:

in pscal3dcallback.h class psCal3DCallbackLoader definition do following modify

csPtr Parse(iDocumentNode * node, iStreamSource* ssource, iLoaderContext * ldr_context, iBase * context);

in pscal3dcallback.cpp modify the Parse implementation function

csPtr psCal3DCallbackLoader::Parse(iDocumentNode * node, iStreamSource* ssource, iLoaderContext * ldr_context, iBase * context)
{
 csRef fact;
 fact = SCF_QUERY_INTERFACE (context, iMeshObjectFactory);

   csRef fcal3dsprite = SCF_QUERY_INTERFACE(fact, iSpriteCal3DFactoryState);
    // turn the iBase into an iSpriteCal3DFactoryState so we can use it
    //csRef fcal3dsprite = SCF_QUERY_INTERFACE(((iMeshFactoryWrapper *)context)->GetMeshObjectFactory(), iSpriteCal3DFactoryState);


thats all,
Title:
Post by: acraig on September 28, 2005, 07:38:08 pm
I have to more careful in updating the build guides on laanx to make sure they are showing the correct build dates.
Title:
Post by: AryHann on September 29, 2005, 07:16:40 am
The same is of course valid for the build guides in /docs, which - at least the one I have \"worked\" for - hasn\'t been updated with the \"freezing\" date.
Sorry for that.