aboutsummaryrefslogtreecommitdiff
path: root/build2/cc/link.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2017-11-24 12:55:58 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2017-11-24 12:55:58 +0200
commit88b346394054416213d3d4e81e0a213403eb2ff7 (patch)
treeab633c53682749452a0f0503869714069df55f2b /build2/cc/link.cxx
parent9bfd3788071d8e6f938d5b34366562fdfc300c68 (diff)
Add extra library search paths as -L options
Diffstat (limited to 'build2/cc/link.cxx')
-rw-r--r--build2/cc/link.cxx13
1 files changed, 12 insertions, 1 deletions
diff --git a/build2/cc/link.cxx b/build2/cc/link.cxx
index 4f1eea5..2b70fe9 100644
--- a/build2/cc/link.cxx
+++ b/build2/cc/link.cxx
@@ -1421,6 +1421,17 @@ namespace build2
append_options (args, t, c_loptions);
append_options (args, t, x_loptions);
+ // Extra system library dirs (last).
+ //
+ // @@ /LIBPATH:<path>, not /LIBPATH <path>
+ //
+ assert (sys_lib_dirs_extra <= sys_lib_dirs.size ());
+ append_option_values (
+ args,
+ cid == compiler_id::msvc ? "/LIBPATH:" : "-L",
+ sys_lib_dirs.begin () + sys_lib_dirs_extra, sys_lib_dirs.end (),
+ [] (const dir_path& d) {return d.string ().c_str ();});
+
// Handle soname/rpath.
//
if (tclass == "windows")
@@ -1562,7 +1573,7 @@ namespace build2
if (!manifest.empty ())
cs.append (manifest.string ());
- // Treat them as inputs, not options.
+ // Treat .libs as inputs, not options.
//
if (!lt.static_library ())
{