68 for(
auto&& itr : *data)
71 size_t pos = std::string::npos;
72 while((
pos = str.find(
'\\')) != std::string::npos)
73 str = str.replace(
pos, 1,
"/");
74 while((
pos = str.find(
"//")) != std::string::npos)
75 str = str.replace(
pos, 1,
"/");
76 ss <<
"LIST(APPEND CTEST_NOTES_FILES \"" << str <<
"\")\n";
80 ss <<
"LIST(REMOVE_DUPLICATES CTEST_NOTES_FILES)\n";
89 std::cout <<
"[ctest_notes]> Outputting '" << fname <<
"'..."
92 ofs << ss.str() << std::endl;
105 using notes_ptr_t = std::unique_ptr<strset_t, ctest_notes_deleter>;
115 get_notes()->insert(std::forward<std::string>(fname));
120 for(
auto&& itr : fnames)
127template <
typename Type>
136 template <
typename Tp>
bool open(std::ofstream &_ofs, std::string _fpath, Args &&... _args)
char argparse::argument_parser tim::settings * _settings
tim::mpl::apply< std::string > string
The declaration for the types for operations without definitions.
Include the macros for operations.
Declare the operations types.
ctest_notes(strset_t &&fnames)
static notes_ptr_t & get_notes()
ctest_notes(std::string &&fname)
std::unique_ptr< strset_t, ctest_notes_deleter > notes_ptr_t
std::set< std::string > strset_t
std::set< std::string > strset_t
~ctest_notes_deleter()=default
ctest_notes_deleter()=default
void operator()(strset_t *data)
static notes_ptr_t & get_notes()
typename base_type::notes_ptr_t notes_ptr_t
std::set< std::string > strset_t
static string_t compose_output_filename(string_t _tag, string_t _ext, bool _use_suffix=use_output_suffix(), int32_t _suffix=default_process_suffix(), bool _make_dir=false, std::string _explicit={})
static settings * instance()