`static const` variables in headers do not get their values assigned on the Nim generated code
typedef WGPUFlags WGPUTextureUsage;
static const WGPUTextureUsage WGPUTextureUsage_None = 0x0000000000000000;
static const WGPUTextureUsage WGPUTextureUsage_CopySrc = 0x0000000000000001;
static const WGPUTextureUsage WGPUTextureUsage_CopyDst = 0x0000000000000002;
static const WGPUTextureUsage WGPUTextureUsage_TextureBinding = 0x0000000000000004;
static const WGPUTextureUsage WGPUTextureUsage_StorageBinding = 0x0000000000000008;
static const WGPUTextureUsage WGPUTextureUsage_RenderAttachment = 0x0000000000000010;
var TextureUsage_None*: TextureUsage
var TextureUsage_CopySrc*: TextureUsage
var TextureUsage_CopyDst*: TextureUsage
var TextureUsage_TextureBinding*: TextureUsage
var TextureUsage_StorageBinding*: TextureUsage
var TextureUsage_RenderAttachment*: TextureUsage
Source: https://github.com/webgpu-native/webgpu-headers/blob/bac520839ff5ed2e2b648ed540bd9ec45edbccbc/webgpu.h#L1140-L1178 Generated output: https://github.com/heysokam/wgpu/blob/14e586d7b67188797c7ffcde9b84077ec8393017/src/wgpu/api.nim#L1639-L1668
I'm sure this used to work.. Which libclang version do you have installed? I know there has been some differences between the versions around this, so it might help me to debug this.
clang 19
This is also affecting Vulkan (using the Volk wrapper) and clang 20 :
// Flag bits for VkPipelineStageFlagBits2
typedef VkFlags64 VkPipelineStageFlagBits2;
static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_NONE = 0ULL;
static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT = 0x00000001ULL;
static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT = 0x00000002ULL;
static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT = 0x00000004ULL;
static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT = 0x00000008ULL;
static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010ULL;
static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020ULL;
static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT = 0x00000040ULL;
static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT = 0x00000080ULL;
var VK_PIPELINE_STAGE_2_NONE*: VkPipelineStageFlagBits2
var VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT*: VkPipelineStageFlagBits2
var VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT*: VkPipelineStageFlagBits2
var VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT*: VkPipelineStageFlagBits2
var VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT*: VkPipelineStageFlagBits2
var VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT*: VkPipelineStageFlagBits2
var VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT*: VkPipelineStageFlagBits2
var VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT*: VkPipelineStageFlagBits2
var VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT*: VkPipelineStageFlagBits2
See https://github.com/PMunch/futhark/pull/158