CppSharp icon indicating copy to clipboard operation
CppSharp copied to clipboard

Parse Failure; Unknown Type Name

Open AlmightyLks opened this issue 3 years ago • 1 comments
trafficstars

Brief Description

I'm trying to use the docs' simple example, and for some reason it states that the target project is missing a definition Target project: https://github.com/Gratt-5r2/UnionProject
(Mind my recently opened issue - https://github.com/Gratt-5r2/UnionProject/issues/1 - in case you'd like to replicate) Also mind, I am a C++ novice, and am exploring some things. :)

OS: Windows 10

Stack trace or incompilable generated code

My Code:

using CppSharp;
using CppSharp.AST;
using CppSharp.Generators;

ConsoleDriver.Run(new Library());

public class Library : ILibrary
{
    public void Postprocess(Driver driver, ASTContext ctx)
    {

    }

    public void Preprocess(Driver driver, ASTContext ctx)
    {

    }

    public void Setup(Driver driver)
    {
        var options = driver.Options;
        options.GeneratorKind = GeneratorKind.CSharp;
        var module = options.AddModule("UnionProject");
        module.LibraryDirs.Add(@"C:\Users\Wholesome\Downloads\UnionProject-master\G1 Debug");
        module.Libraries.Add(@"UnionProject.lib");

        var files = Directory.GetFiles(@"C:\Users\Wholesome\Downloads\UnionProject-master\UnionProject", "*.h", SearchOption.AllDirectories);
        module.IncludeDirs.AddRange(files.Select(x => Path.GetDirectoryName(x)).Distinct());
        module.Headers.AddRange(files.Select(x => Path.GetFileName(x)).Distinct());
    }

    public void SetupPasses(Driver driver)
    {

    }
}

The Error Trace:

Parsing libraries...
Parsed 'UnionProject.lib'
Parsing code...
Error parsing 'resource.h, zGothicAPI.h, plugin.h, UnionAfx.h, G2A.h, G2.h, G1A.h, G1.h, Array.h, ArrayInterface.h, ArrayLocator.h, ArraySortedInterface.h, ObjectLocator.h, Console.h, Crc32.h, Hook.h, Map.h, Message.h, Options.h, Document.h, String.h, Thread.h, Timer.h, Union.h, Macro.h, Types.h, Vdfs.h, d3d.h, d3dcaps.h, d3drm.h, d3drmdef.h, d3drmobj.h, d3drmwin.h, d3dtypes.h, d3dx.h, d3dxcore.h, d3dxerr.h, d3dxmath.h, d3dxshapes.h, d3dxsprite.h, ddraw.h, dinput.h, dinputd.h, dls1.h, dls2.h, dmdls.h, dmerror.h, dmksctrl.h, dmusbuff.h, dmusicc.h, dmusicf.h, dmusici.h, dplay.h, dplobby.h, dsetup.h, dsound.h, dvp.h, dxfile.h, multimon.h, rmxfguid.h, rmxftmpl.h, activecf.h, amaudio.h, amparse.h, amstream.h, amva.h, Amvideo.h, atsmedia.h, audevcod.h, austream.h, aviriff.h, basetsd.h, bdaiface.h, bdamedia.h, Bdatif.h, bdatypes.h, comlite.h, control.h, d3d8.h, d3d8caps.h, d3d8types.h, d3dx8.h, d3dx8core.h, d3dx8effect.h, d3dx8math.h, d3dx8mesh.h, d3dx8shape.h, d3dx8tex.h, ddrawex.h, ddstream.h, dmo.h, dmodshow.h, dmoimpl.h, dmoreg.h, dmort.h, dmplugin.h, dmusics.h, dpaddr.h, dplay8.h, dplobby8.h, DShow.h, dshowasf.h, dv.h, dvdevcod.h, dvdmedia.h, dvoice.h, dx7todx8.h, dxerr8.h, dxtrans.h, dxva.h, edevdefs.h, errors.h, evcode.h, il21dec.h, Iwstdec.h, ks.h, ksguid.h, ksmedia.h, ksproxy.h, ksuuids.h, mediaerr.h, mediaobj.h, medparam.h, mmstream.h, mpconfig.h, mpegtype.h, Mstvca.h, Mstve.h, Msvidctl.h, playlist.h, qedit.h, qnetwork.h, regbag.h, Segment.h, strmif.h, tune.h, tuner.h, uuids.h, vfwmsgs.h, videoacc.h, vpconfig.h, vpnotify.h, vptype.h, xprtdefs.h, oAiHuman.h, oAiShoot.h, oAniCtrl.h, oBarrier.h, oBinkPlayer.h, oCollisionObjectMiscChar.h, oCsManager.h, oCsPlayer.h, oCsProps.h, oCsTrigger.h, oDamage.h, oDialog.h, oDoc.h, oDocumentManager.h, oFocus.h, oGame.h, oGameInfo.h, oGameManager.h, oGuilds.h, oHelp.h, oInfo.h, oInformationManager.h, oInventory.h, oItem.h, oItemReact.h, oLogManager.h, oMagFrontier.h, oMagic.h, oMenuSavegame.h, oMenu_Help.h, oMenu_Main.h, oMenu_Status.h, oMission.h, oMobInter.h, oMusicZone.h, oNews.h, oNpc.h, oNpcMessages.h, oNpcStates.h, oObjFactory.h, oParticleControl.h, oPlayerInfo.h, oPortals.h, oPrototypes.h, oRoutine.h, oSavegame.h, oSpawn.h, oSpell.h, oSvm.h, oSysInfo.h, oText.h, oTrigger.h, oViewDialogInventory.h, oViewDialogItem.h, oViewDialogItemContainer.h, oViewDialogStealContainer.h, oViewDialogTrade.h, oViewDocument.h, oViewDocumentMap.h, oViewProgressbar.h, oViewStatusbar.h, oVisFx.h, oVisFx_MultiTarget.h, oVob.h, oWaynet.h, oWorld.h, z3d.h, zAccount.h, zAi.h, zAiCamera.h, zAiCamera_Core.h, zAiCamera_Movement.h, zAIPlayer.h, zAlgebra.h, zArchiver.h, zArchiver2.h, zArchiverGeneric.h, zBinkPlayer.h, zBsp.h, zBuffer.h, zBVolume.h, zBVolume_Util.h, zCCsContext.h, zCCsCutscene.h, zCCsLib.h, zCCsManager.h, zCCsPlayer.h, zCCsPool.h, zCCsProps.h, zCollisionDetector.h, zCollisionObject.h, zCollisionObjectMisc.h, zConsole.h, zContainer.h, zConvexCollision.h, zCsCamera.h, zDisk.h, zDisk_Vdfs.h, zEigen.h, zEngine.h, zError.h, zEventMan.h, zFft.h, zFile3d.h, zFileCsv.h, zFlash.h, zFonts.h, zGameInfo.h, zGlobal.h, zGrafix.h, zIncDialogs.h, zIncViews.h, zInput.h, zInput_Const.h, zInput_Win32.h, zKbSplines.h, zLensflare.h, zList.h, zMacro.h, zMaterial.h, zMathTools.h, zMemory_Base.h, zMemory_Generic.h, zMemory_Win32.h, zMemPool.h, zMenu.h, zMenu_Item.h, zModel.h, zMorphMesh.h, zMoving.h, zMusic.h, zMusicCtrl.h, zMusic_Dm.h, zNet.h, zNetEventMan.h, zNetHost.h, zNetManager.h, zNetMessage.h, zNetSession.h, zNetTypes.h, zNetVersion.h, zNetVobControl.h, zNet_Win32.h, zObject.h, zOption.h, zParser.h, zParser_Const.h, zParser_Symbol.h, zParticle.h, zPhysics.h, zPlayerGroup.h, zPlayerInfo.h, zPluecker.h, zPolyPool.h, zPolyStrip.h, zPrime.h, zProgMesh.h, zPrototypes.h, zQueue.h, zRayCache.h, zRenderer.h, zRenderLightContainer.h, zRenderManager.h, zResource.h, zRndD3d.h, zRndD3d_Init.h, zScanDir.h, zSession.h, zSky.h, zSky_Outdoor.h, zSndMss.h, zSound.h, zSoundMan.h, zSparseArray.h, zSpyTypes.h, zString.h, zSysInfo.h, zTexConvert.h, zTexture.h, zThread.h, zTools.h, zTypes.h, zTypes3d.h, zVertexBuffer.h, zVertexTransform.h, zVideoPlayer.h, zVideo_Win32.h, zview.h, zViewBase.h, zViewDialog.h, zViewDialogChoice.h, zViewDraw.h, zViewFx.h, zViewObject.h, zViewPrint.h, zViewPrint_Font.h, zViewProgressbar.h, zViews.h, zViewStatusbar.h, zVisual.h, zVob.h, zVobIdentifier.h, zVobMisc.h, zWaynet.h, zWorld.h, zWorldInfo.h, zZone.h, zAiPlayer.h, zLocal.h, zView.h, zRndGlide.h, zRndGlide_Dib.h, zRndGlide_Draw.h'
C:\Users\Wholesome\Downloads\UnionProject-master\UnionProject\GothicAPI\Gothic_I_Classic\API\zRndGlide_Draw.h(12,5): error: unknown type name 'zTRnd_AlphaBlendFunc'
C:\Users\Wholesome\Downloads\UnionProject-master\UnionProject\GothicAPI\Gothic_I_Classic\API\zRndGlide_Draw.h(13,5): error: unknown type name 'zTRnd_PolyDrawMode'
C:\Users\Wholesome\Downloads\UnionProject-master\UnionProject\GothicAPI\Gothic_I_Classic\API\zRndGlide_Draw.h(15,28): error: use of undeclared identifier 'zMAX_POLY_CLIP_VERTS'
C:\Users\Wholesome\Downloads\UnionProject-master\UnionProject\GothicAPI\Gothic_I_Classic\API\zRndGlide_Draw.h(16,20): error: use of undeclared identifier 'zMAX_POLY_CLIP_VERTS'
C:\Users\Wholesome\Downloads\UnionProject-master\UnionProject\GothicAPI\Gothic_I_Classic\API\zRndGlide_Draw.h(17,20): error: use of undeclared identifier 'zMAX_POLY_CLIP_VERTS'
C:\Users\Wholesome\Downloads\UnionProject-master\UnionProject\GothicAPI\Gothic_I_Classic\API\zRndGlide_Draw.h(18,16): error: use of undeclared identifier 'zMAX_POLY_CLIP_VERTS'
C:\Users\Wholesome\Downloads\UnionProject-master\UnionProject\GothicAPI\Gothic_I_Classic\API\zRndGlide_Draw.h(19,16): error: use of undeclared identifier 'zMAX_POLY_CLIP_VERTS'
C:\Users\Wholesome\Downloads\UnionProject-master\UnionProject\GothicAPI\Gothic_I_Classic\API\zRndGlide_Draw.h(21,5): error: unknown type name 'zCOLOR'
C:\Users\Wholesome\Downloads\UnionProject-master\UnionProject\GothicAPI\Gothic_I_Classic\API\zRndGlide_Draw.h(21,21): error: use of undeclared identifier 'zMAX_POLY_CLIP_VERTS'
C:\Users\Wholesome\Downloads\UnionProject-master\UnionProject\GothicAPI\Gothic_I_Classic\API\zRndGlide_Draw.h(23,5): error: unknown type name 'zCMaterial'
C:\Users\Wholesome\Downloads\UnionProject-master\UnionProject\GothicAPI\Gothic_I_Classic\API\zRndGlide_Draw.h(24,5): error: unknown type name 'zCTexture'
C:\Users\Wholesome\Downloads\UnionProject-master\UnionProject\GothicAPI\Gothic_I_Classic\API\zRndGlide_Draw.h(25,5): error: unknown type name 'zCTexture'
C:\Users\Wholesome\Downloads\UnionProject-master\UnionProject\GothicAPI\Gothic_I_Classic\API\zRndGlide_Draw.h(33,14): fatal: 'zSRndGlide_AlphaPoly.inl' file not found
CppSharp has encountered an error while parsing code.

Taking for example the type zTRnd_AlphaBlendFunc that is claimed to not be found:
It can be found in \UnionProject\GothicAPI\Gothic_I_Classic\API\zRenderer.h, defined as

  enum zTRnd_AlphaBlendFunc {
    zRND_ALPHA_FUNC_MAT_DEFAULT,
    zRND_ALPHA_FUNC_NONE,
    zRND_ALPHA_FUNC_BLEND,
    zRND_ALPHA_FUNC_ADD,
    zRND_ALPHA_FUNC_SUB,
    zRND_ALPHA_FUNC_MUL,
    zRND_ALPHA_FUNC_MUL2,
    zRND_ALPHA_FUNC_TEST
  };

AlmightyLks avatar Aug 17 '22 22:08 AlmightyLks

The error is just a C++ include issue, so zRndGlide_Draw.h is using the zTRnd_AlphaBlendFunc type but is not including the header where that type is defined, zRenderer.h.

Either you need to fix the files in the codebase to include what they needs or not pass those files to CppSharp for processing.

tritao avatar Aug 18 '22 09:08 tritao