Hi On Wed, Apr 20, 2022 at 3:17 PM Konstantin Kostiuk <[email protected]> wrote:
> Hi Helge, > > I checked what happened in MSYS2 and this looks like a bug in the widl > tool. > > I looked into the widl source code and think that it detects the default > include path incorrectly. > > During build of widl tool the corresponding variable receive incorrect > value: > `BIN_TO_INCLUDEDIR = ../x86_64-w64-mingw32/include` but should be > `BIN_TO_INCLUDEDIR = ../include`. Looks like a package mismatch, > because the `/ming64/x86_64-w64-mingw32` directory exist > but contains only few libs and no any include files. > > So I agreed with Marc-André. I think this bug should be fixed in MSYS2. > I think you can report this issue there > https://github.com/msys2/MINGW-packages/issues > > Thanks for the investigation and your comment on the msys2 issue: https://github.com/msys2/MINGW-packages/issues/11520 When I checked the build using cross-compilation from Linux, > the widl tool uses proper BIN_TO_INCLUDEDIR. > > We should add the rule that qga_vss depends on gen_tlb to get this error > more visible. > > Marc-André, what do you think? > > yes, that's what I suggested earlier thanks > Best Regards, > Konstantin Kostiuk. > > > On Mon, Apr 18, 2022 at 11:15 AM Marc-André Lureau < > [email protected]> wrote: > >> Hi Helge >> >> On Sun, Apr 17, 2022 at 6:51 PM Helge Konetzka <[email protected]> wrote: >> >>> Generation with widl needs to be triggered explicitly and requires >>> library and include directories containing referenced *.idl and *.tlb >>> as parameters. >>> >> >> Ok, that's different issues, it would help to split the patch. >> >> >>> >>> Signed-off-by: Helge Konetzka <[email protected]> >>> --- >>> >>> For tested Msys2 build all referenced resources reside in /<usr>/include. >>> Msys2 provides its flavours in different /<usr> bases. >>> >>> This patch derives the missing include directory path from widl path. >>> Assuming the given widl path is /<usr>/bin/widl, it determines /<usr> >>> as base and appends /<usr>/include as include and library directories >>> to widl command. This way the directory is correct for any Msys2 >>> flavour. >>> It makes sure, only existing directories are appended as parameter. >>> >> >> I would file a bug to msys2 instead for widl to use the default include >> directory. Otherwise, every widl user out there needs to be adjusted. >> (I think it would need a special --with-widl-includedir=DIR, given how >> msys2 remaps directory) >> >> >>> --- >>> qga/vss-win32/meson.build | 11 +++++++++-- >>> 1 file changed, 9 insertions(+), 2 deletions(-) >>> >>> diff --git a/qga/vss-win32/meson.build b/qga/vss-win32/meson.build >>> index 71c50d0866..51539a582c 100644 >>> --- a/qga/vss-win32/meson.build >>> +++ b/qga/vss-win32/meson.build >>> @@ -30,9 +30,16 @@ if midl.found() >>> input: 'qga-vss.idl', >>> output: 'qga-vss.tlb', >>> command: [midl, '@INPUT@', '/tlb', '@OUTPUT@ >>> ']) >>> -else >>> +elif widl.found() >>> + widl_cmd = [widl, '-t', '@INPUT@', '-o', '@OUTPUT@'] >>> + usr_include = fs.parent(fs.parent(widl.full_path()))/'include' >>> + if fs.is_dir(usr_include) >>> + widl_cmd += ['-L', usr_include] >>> + widl_cmd += ['-I', usr_include] >>> + endif >>> gen_tlb = custom_target('gen-tlb', >>> input: 'qga-vss.idl', >>> output: 'qga-vss.tlb', >>> - command: [widl, '-t', '@INPUT@', '-o', >>> '@OUTPUT@']) >>> + build_by_default: true, >>> >> >> I would make qga_vss depend on gen_tlb instead (so the tlb is always >> built with the dll) >> >> thanks >> >> -- >> Marc-André Lureau >> > -- Marc-André Lureau
