diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2016-07-17 08:18:45 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2016-07-17 08:18:45 +0200 |
commit | db3534da1bcbf286df7ac4c8736f5c5157399ced (patch) | |
tree | 9e65d9fe9806e794364db0cc8fe0d062b1f1cdc4 /build2/bin/target | |
parent | b439803cc5e09188c7b523333f6b71de3ba57dbf (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/bin/target')
-rw-r--r-- | build2/bin/target | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/build2/bin/target b/build2/bin/target index f386592..8c32e84 100644 --- a/build2/bin/target +++ b/build2/bin/target @@ -16,6 +16,16 @@ namespace build2 { // The obj{} target group. // + class obje: public file + { + public: + using file::file; + + public: + static const target_type static_type; + virtual const target_type& dynamic_type () const {return static_type;} + }; + class obja: public file { public: @@ -26,7 +36,7 @@ namespace build2 virtual const target_type& dynamic_type () const {return static_type;} }; - class objso: public file + class objs: public file { public: using file::file; @@ -41,8 +51,9 @@ namespace build2 public: using target::target; + obje* e {nullptr}; obja* a {nullptr}; - objso* so {nullptr}; + objs* s {nullptr}; public: static const target_type static_type; @@ -71,7 +82,7 @@ namespace build2 virtual const target_type& dynamic_type () const {return static_type;} }; - class libso: public file + class libs: public file { public: using file::file; @@ -87,7 +98,7 @@ namespace build2 using target::target; liba* a {nullptr}; - libso* so {nullptr}; + libs* s {nullptr}; virtual void reset (action_type); |