VisualStudio 2013 unrecognized identifier 'MSTRINGIFY'

Post Reply
inquisitor
Posts: 1
Joined: Thu Feb 12, 2015 3:26 am

VisualStudio 2013 unrecognized identifier 'MSTRINGIFY'

Post by inquisitor »

I can't compile target BulletSoftBodySolvers_DX11 as I get bullet-2.82-r2704\src\BulletMultiThreaded\GpuSoftBodySolvers\DX11\HLSL\OutputToVertexArray.hlsl(1,1-10): error X3000: unrecognized identifier 'MSTRINGIFY'. A google search revealed only a Japanese forum entry. A (very rough) translation seemed to imply I should simply not include the broken target (although that's my best guess. The English?! translation wasn't very clear). If I do that, I also have to exclude the cloth demo as I'm missing BulletSoftBodySolvers_DX11_Debug.lib.

I'm trying to compile 64 bit debug. Using VisualStudio 2013 Community. Using sln file from cmake (BULLET_PHYSICS.sln). It is not a static build, I'm making dll files.

Does anyone know what I'm doing wrong?
guysherman
Posts: 1
Joined: Thu Mar 12, 2015 5:00 am

Re: VisualStudio 2013 unrecognized identifier 'MSTRINGIFY'

Post by guysherman »

Hi, I just encountered the same problem, and the solution was to edit the properties for each hlsl file, and tell Visual Studio to interpret it as a C/C++ header, rather than compiling it with the HLSL compiler (bullet must use run-time compilation).

It seems the MSTRINGIFY() is a macro, which is used to grab the entire contents of the file and whack it into a string.

The property page you're looking for is: General > Item Type.

I don't think CMAKE explicitly supports setting that property, but the files don't *need* to be referenced by the VS project. I changed the following file:

bullet/src/BulletMultiThreaded/GpuSoftBodySolvers/DX11/CMakeLists.txt

as follows:

Code: Select all

Line 59: ADD_LIBRARY(BulletSoftBodySolvers_DX11  ${BulletSoftBodyDX11Solvers_SRCS} ${BulletSoftBodyDX11Solvers_HDRS} ${BulletSoftBodyDX11Solvers_HLSL})
becomes

Code: Select all

Line 59: ADD_LIBRARY(BulletSoftBodySolvers_DX11  ${BulletSoftBodyDX11Solvers_SRCS} ${BulletSoftBodyDX11Solvers_HDRS})
Post Reply