From 8e0e8edb727a5367d991880b033eb13060f4c8eb Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Mon, 26 Aug 2019 07:34:15 +0200 Subject: Make target types project-wide --- build2/bin/init.cxx | 69 ++++++++++++++++++++++++++-------------------------- build2/cc/module.cxx | 12 ++++----- build2/cli/init.cxx | 9 +++---- 3 files changed, 44 insertions(+), 46 deletions(-) (limited to 'build2') diff --git a/build2/bin/init.cxx b/build2/bin/init.cxx index 4e80834..54bd84a 100644 --- a/build2/bin/init.cxx +++ b/build2/bin/init.cxx @@ -402,7 +402,7 @@ namespace build2 scope& bs, const location& loc, unique_ptr&, - bool, + bool first, bool, const variable_map& hints) { @@ -421,41 +421,41 @@ namespace build2 // Register target types and configure their default "installability". // bool install_loaded (cast_false (rs["install.loaded"])); - { using namespace install; - auto& t (bs.target_types); - - t.insert (); - t.insert (); - t.insert (); - t.insert (); - - t.insert (); - t.insert (); - t.insert (); - t.insert (); - - t.insert (); - t.insert (); - t.insert (); - t.insert (); - - t.insert (); - t.insert (); - t.insert (); - t.insert (); - - t.insert (); - t.insert (); - t.insert (); - - // Register the def{} target type. Note that we do it here since it is - // input and can be specified unconditionally (i.e., not only when - // building for Windows). - // - t.insert (); + if (first) + { + rs.insert_target_type (); + rs.insert_target_type (); + rs.insert_target_type (); + rs.insert_target_type (); + + rs.insert_target_type (); + rs.insert_target_type (); + rs.insert_target_type (); + rs.insert_target_type (); + + rs.insert_target_type (); + rs.insert_target_type (); + rs.insert_target_type (); + rs.insert_target_type (); + + rs.insert_target_type (); + rs.insert_target_type (); + rs.insert_target_type (); + rs.insert_target_type (); + + rs.insert_target_type (); + rs.insert_target_type (); + rs.insert_target_type (); + + // Register the def{} target type. Note that we do it here since it + // is input and can be specified unconditionally (i.e., not only + // when building for Windows). + // + rs.insert_target_type (); + } // Note: libu*{} members are not installable. // @@ -494,7 +494,8 @@ namespace build2 { // Import library. // - t.insert (); + if (first) + rs.insert_target_type (); if (install_loaded) { diff --git a/build2/cc/module.cxx b/build2/cc/module.cxx index 064d954..bd853cc 100644 --- a/build2/cc/module.cxx +++ b/build2/cc/module.cxx @@ -642,13 +642,11 @@ namespace build2 { using namespace install; - auto& tts (rs.target_types); + rs.insert_target_type (x_src); - tts.insert (x_src); - - auto insert_hdr = [&rs, &tts, install_loaded] (const target_type& tt) + auto insert_hdr = [&rs, install_loaded] (const target_type& tt) { - tts.insert (tt); + rs.insert_target_type (tt); // Install headers into install.include. // @@ -666,8 +664,8 @@ namespace build2 if (*x_hdr != &h::static_type) insert_hdr (h::static_type); - tts.insert (); - tts.insert (); + rs.insert_target_type (); + rs.insert_target_type (); if (install_loaded) install_path (rs, dir_path ("pkgconfig")); diff --git a/build2/cli/init.cxx b/build2/cli/init.cxx index 2e553f7..3aebe8e 100644 --- a/build2/cli/init.cxx +++ b/build2/cli/init.cxx @@ -301,7 +301,7 @@ namespace build2 scope& bs, const location& l, unique_ptr&, - bool, + bool first, bool optional, const variable_map& hints) { @@ -334,11 +334,10 @@ namespace build2 // Register target types. // + if (first) { - auto& t (bs.target_types); - - t.insert (); - t.insert (); + rs.insert_target_type (); + rs.insert_target_type (); } // Register our rules. -- cgit v1.1