using namespace dds; | using namespace dds; | ||||
using namespace ranges; | using namespace ranges; | ||||
using namespace ranges::view; | |||||
using namespace ranges::views; | |||||
namespace { | namespace { | ||||
dds::execute_all(compiles, params.toolchain, params.parallel_jobs); | dds::execute_all(compiles, params.toolchain, params.parallel_jobs); | ||||
using namespace ranges::view; | |||||
using namespace ranges::views; | |||||
auto link_res = link_project(params, project, compiles); | auto link_res = link_project(params, project, compiles); | ||||
auto all_tests = link_res // | auto all_tests = link_res // | ||||
| transform(DDS_TL(_1.test_exes)) // | | transform(DDS_TL(_1.test_exes)) // | ||||
| action::join; | |||||
| ranges::actions::join; | |||||
int n_test_fails = 0; | int n_test_fails = 0; | ||||
for (path_ref test_exe : all_tests) { | for (path_ref test_exe : all_tests) { |
if (!fs::exists(pf_libs_dir)) { | if (!fs::exists(pf_libs_dir)) { | ||||
return {}; | return {}; | ||||
} | } | ||||
using namespace ranges::view; | |||||
using namespace ranges::views; | |||||
return fs::directory_iterator(pf_libs_dir) // | return fs::directory_iterator(pf_libs_dir) // | ||||
| filter(has_library_dirs) // | | filter(has_library_dirs) // | ||||
| transform(DDS_TL(library::from_directory(_1))) // | | transform(DDS_TL(library::from_directory(_1))) // |
browns::md5& hash) { | browns::md5& hash) { | ||||
auto sources_to_keep = // | auto sources_to_keep = // | ||||
lib.sources() // | lib.sources() // | ||||
| ranges::view::filter([&](const source_file& sf) { | |||||
| ranges::views::filter([&](const source_file& sf) { | |||||
if (sf.kind == source_kind::app && params.include_apps) { | if (sf.kind == source_kind::app && params.include_apps) { | ||||
return true; | return true; | ||||
} | } |
} | } | ||||
source_list source_file::collect_for_dir(path_ref src) { | source_list source_file::collect_for_dir(path_ref src) { | ||||
using namespace ranges::view; | |||||
using namespace ranges::views; | |||||
// Strips nullopt elements and lifts the value from the results | // Strips nullopt elements and lifts the value from the results | ||||
auto drop_nulls = // | auto drop_nulls = // | ||||
filter(DDS_TL(_1.has_value())) // | filter(DDS_TL(_1.has_value())) // |