CppSharp
CppSharp copied to clipboard
Parse Failure; Unknown Type Name
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
};
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.