diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2016-10-14 10:41:48 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2016-11-04 09:26:14 +0200 |
commit | 64eecc0f7ba15b1733bbc713a2f197dda590e12d (patch) | |
tree | bd3e05f5408e3f512eb39e37cddd9257d464e240 /build2/test/target.cxx | |
parent | d4be6965ed8d5cacb79776fa892b763548e3d070 (diff) |
Add test{} testscript target type
Diffstat (limited to 'build2/test/target.cxx')
-rw-r--r-- | build2/test/target.cxx | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/build2/test/target.cxx b/build2/test/target.cxx new file mode 100644 index 0000000..1a215ca --- /dev/null +++ b/build2/test/target.cxx @@ -0,0 +1,47 @@ +// file : build2/test/target.cxx -*- C++ -*- +// copyright : Copyright (c) 2014-2016 Code Synthesis Ltd +// license : MIT; see accompanying LICENSE file + +#include <build2/test/target> + +using namespace std; +using namespace butl; + +namespace build2 +{ + namespace test + { + static target* + testscript_factory (const target_type&, + dir_path d, + dir_path o, + string n, + const string* e) + { + if (e == nullptr) + e = &extension_pool.find (n == "testscript" ? "" : "test"); + + return new testscript (move (d), move (o), move (n), e); + } + + static const string* + testscript_target_extension (const target_key& tk, scope&) + { + // If the name is special 'testscript', then there is no extension, + // otherwise it is .test. + // + return &extension_pool.find (*tk.name == "testscript" ? "" : "test"); + } + + const target_type testscript::static_type + { + "test", + &file::static_type, + &testscript_factory, + &testscript_target_extension, + nullptr, + &search_file, + false + }; + } +} |