aboutsummaryrefslogtreecommitdiff
path: root/build2/cxx/module.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2016-07-17 08:18:45 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2016-07-17 08:18:45 +0200
commitdb3534da1bcbf286df7ac4c8736f5c5157399ced (patch)
tree9e65d9fe9806e794364db0cc8fe0d062b1f1cdc4 /build2/cxx/module.cxx
parentb439803cc5e09188c7b523333f6b71de3ba57dbf (diff)
Redesign obj to exe/lib mapping
Specifically: * objso{} and libso{} target types have been renamed to objs{} and libs{} * obje{} has been added (so now we have obje{}, obja{}, and objs{}) * obje{} is now used for building exe{} * object file extensions have been changed to use "hierarchical extensions" that reflect the extension of the corresponding exe/lib target (instead of the -so suffix we used), specifically: obje{}: foo.o, (UNIX), foo.exe.o (MinGW), foo.exe.obj (Windows) obja{}: foo.a.o (UNIX, MinGW), foo.lib.obj (Windows) objs{}: foo.so.o (UNIX), foo.dylib.o (Darwin), foo.dll.o (MinGW), foo.dll.obj (Windows)
Diffstat (limited to 'build2/cxx/module.cxx')
-rw-r--r--build2/cxx/module.cxx30
1 files changed, 16 insertions, 14 deletions
diff --git a/build2/cxx/module.cxx b/build2/cxx/module.cxx
index 6a5469c..69e76a3 100644
--- a/build2/cxx/module.cxx
+++ b/build2/cxx/module.cxx
@@ -316,38 +316,40 @@ namespace build2
auto& r (b.rules);
- r.insert<obja> (perform_update_id, "cxx.compile", compile::instance);
+ r.insert<obje> (perform_update_id, "cxx.compile", compile::instance);
+ r.insert<obje> (perform_clean_id, "cxx.compile", compile::instance);
r.insert<obja> (perform_update_id, "cxx.compile", compile::instance);
r.insert<obja> (perform_clean_id, "cxx.compile", compile::instance);
- r.insert<objso> (perform_update_id, "cxx.compile", compile::instance);
- r.insert<objso> (perform_clean_id, "cxx.compile", compile::instance);
+ r.insert<objs> (perform_update_id, "cxx.compile", compile::instance);
+ r.insert<objs> (perform_clean_id, "cxx.compile", compile::instance);
- r.insert<exe> (perform_update_id, "cxx.link", link::instance);
- r.insert<exe> (perform_clean_id, "cxx.link", link::instance);
+ r.insert<exe> (perform_update_id, "cxx.link", link::instance);
+ r.insert<exe> (perform_clean_id, "cxx.link", link::instance);
r.insert<liba> (perform_update_id, "cxx.link", link::instance);
r.insert<liba> (perform_clean_id, "cxx.link", link::instance);
- r.insert<libso> (perform_update_id, "cxx.link", link::instance);
- r.insert<libso> (perform_clean_id, "cxx.link", link::instance);
+ r.insert<libs> (perform_update_id, "cxx.link", link::instance);
+ r.insert<libs> (perform_clean_id, "cxx.link", link::instance);
- // Register for configure so that we detect unresolved imports
- // during configuration rather that later, e.g., during update.
+ // Register for configure so that we detect unresolved imports during
+ // configuration rather that later, e.g., during update.
//
+ r.insert<obje> (configure_update_id, "cxx.compile", compile::instance);
r.insert<obja> (configure_update_id, "cxx.compile", compile::instance);
- r.insert<objso> (configure_update_id, "cxx.compile", compile::instance);
+ r.insert<objs> (configure_update_id, "cxx.compile", compile::instance);
- r.insert<exe> (configure_update_id, "cxx.link", link::instance);
+ r.insert<exe> (configure_update_id, "cxx.link", link::instance);
r.insert<liba> (configure_update_id, "cxx.link", link::instance);
- r.insert<libso> (configure_update_id, "cxx.link", link::instance);
+ r.insert<libs> (configure_update_id, "cxx.link", link::instance);
//@@ Should we check if install module was loaded (see bin)?
//
- r.insert<exe> (perform_install_id, "cxx.install", install::instance);
+ r.insert<exe> (perform_install_id, "cxx.install", install::instance);
r.insert<liba> (perform_install_id, "cxx.install", install::instance);
- r.insert<libso> (perform_install_id, "cxx.install", install::instance);
+ r.insert<libs> (perform_install_id, "cxx.install", install::instance);
}
// Configure "installability" of our target types.