// file : libbuild2/test/target.cxx -*- C++ -*- // license : MIT; see accompanying LICENSE file #include <libbuild2/test/target.hxx> using namespace std; using namespace butl; namespace build2 { namespace test { static const char* testscript_target_extension (const target_key& tk, const scope*) { // If the name is special 'testscript', then there is no extension, // otherwise it is .testscript. // return *tk.name == "testscript" ? "" : "testscript"; } static bool testscript_target_pattern (const target_type&, const scope&, string& v, optional<string>& e, const location& l, bool r) { if (r) { assert (e); e = nullopt; } else { e = target::split_name (v, l); if (!e && v != "testscript") { e = "testscript"; return true; } } return false; } const target_type testscript::static_type { "testscript", &file::static_type, &target_factory<testscript>, &testscript_target_extension, nullptr, /* default_extension */ &testscript_target_pattern, nullptr, &file_search, false }; } }