Skip to content

Can no longer build godot and godot-nir-static from source together #106376

@TCROC

Description

@TCROC

Tested versions

System information

PopOS 22.04

Issue description

We use both godot and godot-nir-static repos as submodules within our project. After updating to godot 4.5 to see if it fixes some other bugs for us, we noticed that we can no longer compile godot against our godot-nir-static submodule. After bisecting, I narrowed down exactly which file is the culprit: https://github.com/godotengine/godot/pull/104893/files#diff-bb9fd10753b454a0f1381aa36772df32332f7279095791eede1928a4b29db9ed

Changing CPPEXTPATH back to CPPPATH path in this SCsub fixes it.

Steps to reproduce

Build godot and godot-nir-static from source. godot-nir-static can be found here: https://github.com/godotengine/godot-nir-static.

See that it errors with:

In file included from drivers/d3d12/rendering_device_driver_d3d12.cpp:42:
In file included from /home/tcroc/dev/BlockyBallOT/submodules/godot-nir-static/godot-mesa/src/compiler/spirv/nir_spirv.h:28:
In file included from /home/tcroc/dev/BlockyBallOT/submodules/godot-nir-static/godot-mesa/src/compiler/nir/nir.h:44:
In file included from /home/tcroc/dev/BlockyBallOT/submodules/godot-nir-static/godot-mesa/src/compiler/nir_types.h:36:
In file included from /home/tcroc/dev/BlockyBallOT/submodules/godot-nir-static/godot-mesa/src/compiler/glsl_types.h:42:
In file included from /home/tcroc/dev/BlockyBallOT/submodules/godot-nir-static/godot-mesa/src/util/glheader.h:72:
/home/tcroc/dev/BlockyBallOT/submodules/godot-nir-static/godot-mesa/include/GLES3/gl3.h:383:15: error: expected ')'
  383 | typedef void (GL_APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture);
      |               ^
/home/tcroc/dev/BlockyBallOT/submodules/godot-nir-static/godot-mesa/include/GLES3/gl3.h:40:33: note: expanded from macro 'GL_APIENTRYP'
Y* 40 | #define GL_APIENTRYP GL_APIENTRnode_dock.cpp
      |                                 ^
/home/tcroc/dev/BlockyBallOT/submodules/godot-nir-static/godot-mesa/include/GLES3/gl3.h:383:14: note: to match this '('
  383 | typedef void (GL_APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture);
      |              ^
/home/tcroc/dev/BlockyBallOT/submodules/godot-nir-static/godot-mesa/include/GLES3/gl3.h:384:15: error: expected ')'
  384 | typedef void (GL_APIENTRYP PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader);
      |               ^
/home/tcroc/dev/BlockyBallOT/submodules/godot-nir-static/godot-mesa/include/GLES3/gl3.h:40:33: note: expanded from macro 'GL_APIENTRYP'
   40 | #define GL_APIENTRYP GL_APIENTRY*
      |                                 ^
/home/tcroc/dev/BlockyBallOT/submodules/godot-nir-static/godot-mesa/include/GLES3/gl3.h:384:14: note: to match this '('
  384 | typedef void (GL_APIENTRYP PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader);
      |              ^
/home/tcroc/dev/BlockyBallOT/submodules/godot-nir-static/godot-mesa/include/GLES3/gl3.h:384:15: error: typedef redefinition with different types ('void (GLuint, GLuint)' (aka 'void (unsigned int, unsigned int)') vs 'void (GLenum)' (aka 'void (unsigned int)'))
  384 | typedef void (GL_APIENTRYP PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader);
      |               ^
/home/tcroc/dev/BlockyBallOT/submodules/godot-nir-static/godot-mesa/include/GLES3/gl3.h:40:22: note: expanded from macro 'GL_APIENTRYP'
   40 | #define GL_APIENTRYP GL_APIENTRY*
      |                      ^
/home/tcroc/dev/BlockyBallOT/submodules/godot-nir-static/godot-mesa/src/util/glheader.h:59:21: note: expanded from macro 'GL_APIENTRY'
   59 | #define GL_APIENTRY GLAPIENTRY
      |                     ^
/home/tcroc/dev/BlockyBallOT/submodules/godot-nir-static/godot-mesa/include/GLES3/gl3.h:383:15: note: previous definition is here
  383 | typedef void (GL_APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture);
      |               ^
/home/tcroc/dev/BlockyBallOT/submodules/godot-nir-static/godot-mesa/include/GLES3/gl3.h:40:22: note: expanded from macro 'GL_APIENTRYP'
   40 | #define GL_APIENTRYP GL_APIENTRY*
      |                      ^
/home/tcroc/dev/BlockyBallOT/submodules/godot-nir-static/godot-mesa/src/util/glheader.h:59:21: note: expanded from macro 'GL_APIENTRY'
   59 | #define GL_APIENTRY GLAPIENTRY
      |                     ^

Then change CPPEXTPATH to CPPPATH and see that it compiles successfully.

Minimal reproduction project (MRP)

NA

Metadata

Metadata

Assignees

Type

No type

Projects

Status

Very Bad

Relationships

None yet

Development

No branches or pull requests

Issue actions