aboutsummaryrefslogtreecommitdiff
path: root/build2/bin/target
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/bin/target
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/bin/target')
-rw-r--r--build2/bin/target19
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);