I am facing different sort of issues while trying to update lvgl.

I made a very simple example: 
[borrame.nim](https://github.com/mantielero/lvgl.nim/blob/futhark/examples/borrame.nim)
    
    
    import lvgl
    
    proc main =
      var color = lv_color_hex(0x003a57'u32)
      echo typeof(color)
    main()
    
    
    Run

I am compyling using `clang`, because `gcc` is giving me headaches.
    
    
    $ nim c -r --cc:clang borrame
    ...
    CC: borrame.nim
    /home/jose/.cache/nim/borrame_d/@mborrame.nim.c:98:75: error: assigning to 
'tyObject_structlvcolort__5ikTeP1YANPPlKqzoHuyAg' (aka 'struct 
tyObject_structlvcolort__5ikTeP1YANPPlKqzoHuyAg') from incompatible type 
'lv_color_t'
       98 |         nimlf_(4, 
"/home/jose/src/nimlang/lvgl.nim/examples/borrame.nim");      color = 
lv_color_hex(((NU32)14935));
          |                                                                     
                  ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
    1 error generated.
    Error: execution of an external compiler program 'clang -c -w 
-ferror-limit=3 -pthread -Ilvgl/submodules/lvgl 
-I/home/jose/src/nimlang/lvgl.nim/src/lvgl/submodules/lvgl   
-I/home/jose/.choosenim/toolchains/nim-2.0.6/lib 
-I/home/jose/src/nimlang/lvgl.nim/examples -o 
/home/jose/.cache/nim/borrame_d/@mborrame.nim.c.o 
/home/jose/.cache/nim/borrame_d/@mborrame.nim.c' failed with exit code: 1
    
    
    Run

The C code looks like this:
    
    
    N_LIB_PRIVATE N_NIMCALL(void, main__borrame_u2)(void) {
            tyObject_structlvcolort__5ikTeP1YANPPlKqzoHuyAg color;
            nimfr_("main", 
"/home/jose/src/nimlang/lvgl.nim/examples/borrame.nim");
            nimlf_(4, "/home/jose/src/nimlang/lvgl.nim/examples/borrame.nim");  
color = lv_color_hex(((NU32)14935));
            nimln_(5);  echoBinSafe(TM__nnU0fWpUVhSBXtxRF6Sf1A_2, 1);
            popFrame();
    }
    
    
    Run

The ["lv_color_hex" 
bindings](https://github.com/mantielero/lvgl.nim/blob/fb2eace1f5fc68df901e0962cb82d37829e71de2/src/lvgl/wrapper/lvgl_9_1_1.nim#L4013)
 made by Futhark:
    
    
    proc lvcolorhex*(c: uint32): lvcolort {.cdecl, importc: "lv_color_hex".}
    
    
    Run

where ["lvcolort" and 
"structlvcolort"](https://github.com/mantielero/lvgl.nim/blob/fb2eace1f5fc68df901e0962cb82d37829e71de2/src/lvgl/wrapper/lvgl_9_1_1.nim#L1010-L1014):
    
    
    structlvcolort* {.pure, inheritable, bycopy.} = object
        blue*: uint8             ## Generated based on 
/home/jose/src/nimlang/lvgl.nim/src/lvgl/submodules/lvgl/src/misc/../font/../draw/../misc/lv_color.h:89:9
        green*: uint8
        red*: uint8
      lvcolort* = structlvcolort ## Generated based on 
/home/jose/src/nimlang/lvgl.nim/src/lvgl/submodules/lvgl/src/misc/../font/../draw/../misc/lv_color.h:93:3
    
    
    Run

Any idea of what is going on?

Reply via email to