branch: development
commit d27d17874b967335b16a7d7660adc900a7a3b937
Author: Ileana Dumitrescu <[email protected]>
AuthorDate: Wed Dec 11 18:43:47 2024 +0200
libtoolize.in: Create symlinks with mklink for MSVC
Symlink files are not generated properly with 'ln -s' for MSVC to
process, so mklink is used, which swaps the argument order of target
and link_name. This also requires absolute paths, generated with the
use of cygpath.
* libtoolize.in: Check if linking with mklink and update processing.
---
libtoolize.in | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/libtoolize.in b/libtoolize.in
index 77d0c9ed..fe8abe74 100644
--- a/libtoolize.in
+++ b/libtoolize.in
@@ -437,6 +437,33 @@ func_copy ()
else
my_copycmd=$LN_S
my_copy_type=linking
+
+ # The Windows linker, mklink, swaps link_name and target.
+ case $my_copycmd in
+ *mklink*)
+ my_temp=$my_destfile
+ my_destfile=$my_srcfile
+ my_srcfile=$my_temp
+
+ my_copy_msg="$my_copy_type file '$my_destfile'"
+ $opt_verbose && my_copy_msg="$my_copycmd $my_srcfile $my_destdir"
+
+ my_destfile=`cygpath -aw "$my_destfile"`
+ my_srcfile=`cygpath -aw "$my_srcfile"`
+
+ if test -d "$my_destfile"; then
+ case $host_os,$build_os in
+ mingw*,cygwin*)
+ my_copycmd="$my_copycmd /d" ;;
+ mingw*,*) # MSYS
+ my_copycmd="$my_copycmd //d" ;;
+ *)
+ my_copycmd="$my_copycmd /d" ;;
+ esac
+ fi
+ ;;
+ *) ;;
+ esac
fi
my_copy_msg="$my_copy_type file '$my_destfile'"
$opt_verbose && my_copy_msg="$my_copycmd $my_srcfile $my_destdir"