| 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())) // |