mirror of
https://github.com/kiwix/kiwix-desktop.git
synced 2025-09-08 11:45:09 -04:00

On Windows, static libraries are using "foo.lib" naming. On Unix, they are in the form of "libfoo.a" On Windows, "foo.lib" can also the definition of symbols in a foo.dll. So you can link to "foo.lib", whatever you are doing static or dynamic linking and you are good. However, meson is always creating static library as "libfoo.a" 'to avoid a potential name clash with shared libraries which also generate import libraries with a lib suffix.' [1] On top of that, qmake is replacing all `-lfoo` in LIBS by `foo.lib` (on Windows). So at the end, we try to link with `foo.lib` but we have `libfoo.a` Solution could be : - Rename `libfoo.a` to `foo.lib`, but it would mean modify deps libraries on the FS - Don't use LIBS and directly set QMAKE_LFLAGS but we would have to handle different command line option format between g++/clang and msvc - Update meson build system of each projet to explicitly set the library naming. - Replace `-lfoo` with absolute path to static library. This is what meson is doing internally and what we are doing here Any `-lfoo` is replace with absolute path to static library (`libfoo.a`) if we found one. Else, it is keep unchanged. [1] https://mesonbuild.com/Reference-manual_functions.html#library_name_suffix