digitalmars.D.learn - How to use ImportC to import WebGPU header
- JN (44/44) Jan 10 I would like to use ImportC to automatically import a C header
- Sergey (3/5) Jan 11 It was already done. Use it https://code.dlang.org/packages/wgpu-d
- Bkoie (4/10) Jan 12 or if you push a package atleast document the code or give example
- Sergey (8/20) Jan 12 Not my package, but I see it has several separate sub-repos for
- ryuukk_ (19/19) Jan 11 You need to use a .c file that include it
I would like to use ImportC to automatically import a C header into my D project. I've been using Dstep so far which works ok, but requires some manual fixes to get the resulting D file to compare and it doesn't let me to just drop the C header file. I created a fresh dub project to try. I try to import this header https://github.com/webgpu-native/webgpu-headers/blob/main/webgpu.h . I put webgpu.h file next to app.d. My code is: ``` import std.stdio; import webgpu; void main() { } ``` it builds. Then I tried to output one of the enums to see if it works: ``` import std.stdio; import webgpu; void main() { writeln(WGPUBlendFactor_Dst); } ``` and it says: Starting Performing "debug" build using C:\D\dmd2\windows\bin64\dmd.exe for x86_64. Building test_importd ~master: building configuration [application] source\app.d(6,10): Error: undefined identifier `WGPUBlendFactor_Dst` Error C:\D\dmd2\windows\bin64\dmd.exe failed with exit code 1. I tried to do the other commandline but I get this error instead: C:\Users\haxx\Desktop\dev\test_importd\source>dmd -c webgpu.c -Hf=webgpu.di C:\D\dmd2\windows\bin64\..\..\src\druntime\import\importc.h(134): fatal error C1034: sal.h: no include path set Error: C preprocess command C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\HostX64\x64\cl.exe failed for file webgpu.c, exit status 2
Jan 10
On Wednesday, 10 January 2024 at 23:36:33 UTC, JN wrote:I would like to use ImportC to automatically import a C header into my D project.It was already done. Use it https://code.dlang.org/packages/wgpu-d Don't reinvent the wheel :)
Jan 11
On Thursday, 11 January 2024 at 15:18:08 UTC, Sergey wrote:On Wednesday, 10 January 2024 at 23:36:33 UTC, JN wrote:or if you push a package atleast document the code or give example D is not like rust where you can just dive into a lib without docs or exampleI would like to use ImportC to automatically import a C header into my D project.It was already done. Use it https://code.dlang.org/packages/wgpu-d Don't reinvent the wheel :)
Jan 12
On Friday, 12 January 2024 at 11:06:39 UTC, Bkoie wrote:On Thursday, 11 January 2024 at 15:18:08 UTC, Sergey wrote:Not my package, but I see it has several separate sub-repos for examples: This package provides sub packages which can be used individually: wgpu-d:enumerate - Enumerate GPU adapters example wgpu-d:headless - Headless (windowless) rendering example wgpu-d:triangle - Triangle (windowed) example wgpu-d:cube - Cube (windowed) exampleOn Wednesday, 10 January 2024 at 23:36:33 UTC, JN wrote:or if you push a package atleast document the code or give example D is not like rust where you can just dive into a lib without docs or exampleI would like to use ImportC to automatically import a C header into my D project.It was already done. Use it https://code.dlang.org/packages/wgpu-d Don't reinvent the wheel :)
Jan 12