Install .dll files into (bindir) on non-Cygwin Windows as well; add --dlldir override support

This commit is contained in:
Peter Dimov
2026-04-12 21:28:51 +03:00
parent 8747e91da9
commit 41163c1be9
2 changed files with 25 additions and 6 deletions
+1
View File
@@ -8,6 +8,7 @@ import path ;
import stage ;
stage.add-install-dir cmakedir : cmake : libdir ;
stage.add-install-dir dlldir : "" : bindir ;
# header-subdir
+24 -6
View File
@@ -488,7 +488,7 @@ rule generate-cmake-variant- ( target : sources * : properties * )
print.text
"set_target_properties($(target) PROPERTIES"
" IMPORTED_LOCATION_$(variant:U) \"${_BOOST_LIBDIR}/$(dll-name)\""
" IMPORTED_LOCATION_$(variant:U) \"${_BOOST_DLLDIR}/$(dll-name)\""
" )"
""
: true ;
@@ -770,6 +770,10 @@ rule make-cmake-config ( target : sources * : properties * )
libdir = [ path.relative-to $(cmakedir) $(libdir) ] ;
.info " libdir=" $(libdir) ;
local dlldir = [ stage.get-dir dlldir : $(ps) : Boost ] ;
dlldir = [ path.relative-to $(cmakedir) $(dlldir) ] ;
.info " dlldir=" $(dlldir) ;
local lname = [ MATCH boost_(.*) : $(name) ] ;
.info " lname=" $(lname) ;
@@ -837,6 +841,7 @@ rule make-cmake-config ( target : sources * : properties * )
else
{
get-dir "_BOOST_LIBDIR" : $(libdir) ;
get-dir "_BOOST_DLLDIR" : $(dlldir) ;
print.text
@@ -872,6 +877,7 @@ rule make-cmake-config ( target : sources * : properties * )
"unset(_BOOST_LIBDIR)"
"unset(_BOOST_INCLUDEDIR)"
"unset(_BOOST_CMAKEDIR)"
"unset(_BOOST_DLLDIR)"
""
"if(NOT __boost_variants AND (Boost_VERBOSE OR Boost_DEBUG))"
" message(STATUS \" Library has no variants and is considered not found\")"
@@ -1261,14 +1267,15 @@ rule boost-install ( libraries * )
$(p).mark-target-as-explicit install-libraries-static ;
alias install-libraries-shared : install-libraries-shared- ;
alias install-libraries-shared : install-libraries-shared-cygwin : <target-os>cygwin ;
alias install-libraries-shared : install-libraries-shared-windows : <target-os>windows ;
alias install-libraries-shared : install-libraries-shared-windows : <target-os>cygwin ;
$(p).mark-target-as-explicit install-libraries-shared ;
install install-libraries-shared- : $(libraries) : <location>(libdir) <install-type>SHARED_LIB <install-type>PDB <install-dependencies>on <install-no-version-symlinks>on : <install-package>Boost ;
$(p).mark-target-as-explicit install-libraries-shared- ;
install install-libraries-shared-cygwin : $(libraries) : <location>(bindir) <install-type>SHARED_LIB <install-type>PDB <install-dependencies>on <install-no-version-symlinks>on : <install-package>Boost ;
$(p).mark-target-as-explicit install-libraries-shared-cygwin ;
install install-libraries-shared-windows : $(libraries) : <location>(dlldir) <install-type>SHARED_LIB <install-type>PDB <install-dependencies>on <install-no-version-symlinks>on : <install-package>Boost ;
$(p).mark-target-as-explicit install-libraries-shared-windows ;
install install-unprefixed-static : $(unprefixed) : <install-type>STATIC_LIB <conditional>@boost-install%install-subdir : <install-package>Boost ;
$(p).mark-target-as-explicit install-unprefixed-static ;
@@ -1316,6 +1323,7 @@ rule boost-install ( libraries * )
# If --{parent} is explicitly specified on the command line, then we need to
# clear every dir setting in config files that depends on it
if [ MATCH --prefix=(.*) : [ modules.peek : ARGV ] ]
{
option.set exec-prefix : ;
@@ -1325,18 +1333,28 @@ if [ MATCH --prefix=(.*) : [ modules.peek : ARGV ] ]
option.set datadir : ;
option.set datarootdir : ;
option.set cmakedir : ;
option.set dlldir : ;
}
if [ MATCH --exec-prefix=(.*) : [ modules.peek : ARGV ] ]
{
option.set bindir : ;
option.set libdir : ;
option.set cmakedir : ;
option.set dlldir : ;
}
if [ MATCH --libdir-prefix=(.*) : [ modules.peek : ARGV ] ]
if [ MATCH --bindir=(.*) : [ modules.peek : ARGV ] ]
{
option.set dlldir : ;
}
if [ MATCH --libdir=(.*) : [ modules.peek : ARGV ] ]
{
option.set cmakedir : ;
}
if [ MATCH --dataroot-prefix=(.*) : [ modules.peek : ARGV ] ]
if [ MATCH --datarootdir=(.*) : [ modules.peek : ARGV ] ]
{
option.set datadir : ;
}