From 64eecc0f7ba15b1733bbc713a2f197dda590e12d Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Fri, 14 Oct 2016 10:41:48 +0200 Subject: Add test{} testscript target type --- build2/test/target.cxx | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 build2/test/target.cxx (limited to 'build2/test/target.cxx') 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 + +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 + }; + } +} -- cgit v1.1