build: support drivers symlink on Windows
authorNick Connolly <nick.connolly@mayadata.io>
Mon, 26 Apr 2021 10:07:32 +0000 (11:07 +0100)
committerThomas Monjalon <thomas@monjalon.net>
Fri, 9 Jul 2021 15:22:42 +0000 (17:22 +0200)
commitcd27047dbee1eda0e8ed12300bc035636d89607b
treef6efabda785638d33c5934d77f1331849f0cb864
parent29343b9030e38e8c3519ba01cb66724d45b13dc8
build: support drivers symlink on Windows

The symlink-drivers-solibs.sh script was disabled as part of 'install'
for Windows because there is no support for shell scripts. However,
this means that driver related DLLs are not present in the installed
'libdir' directory. Add a python script to perform the install and use
it for Windows if the version of meson supports using an external
program with add_install_script (>= 0.55.0).

On Windows, symbolic links are somewhat problematic since the
SeCreateSymbolicLinkPrivilege is required to be able to create them.
In addition, different cross-compilation environments handle symbolic
links differently, e.g. WSL, Msys2, Cygwin. Rather than trying to
distinguish these scenarios, the python script will perform a file copy
for any Windows specific names.

On Windows, the shared library outputs have different names depending
upon which toolset has been used to build them. The script currently
handles Clang and GCC.

On Linux the functionality is unchanged, but could be replaced with the
python script once the required minimum version of meson is >= 0.55.0.

Cc: stable@dpdk.org
Signed-off-by: Nick Connolly <nick.connolly@mayadata.io>
Tested-by: Narcisa Vasile <navasile@linux.microsoft.com>
Acked-by: Narcisa Vasile <navasile@linux.microsoft.com>
Reviewed-by: Bruce Richardson <bruce.richardson@intel.com>
MAINTAINERS
buildtools/symlink-drivers-solibs.py [new file with mode: 0644]
config/meson.build