// -*- c++ -*- // Distributed under the BSD 2-Clause License. // See accompanying file LICENSE for details. #include namespace { ctor::build_configurations ctorTestConfigs(const ctor::settings& settings) { return { { ctor::target_type::unit_test, ctor::output_system::build, ctor::target("argparser_test"), ctor::sources{ "argparser_test.cc", "testmain.cc", }, ctor::flags({ .cxxflags = { "-std=c++20", "-O3", "-Wall", "-I../src", "-Iuunit", "-DOUTPUT=\"argparser\"", "-fexceptions", }, }), }, { ctor::target_type::unit_test, ctor::output_system::build, ctor::target("generated_sources_test"), ctor::sources{ "generated_sources_test.cc", "testmain.cc", }, ctor::depends({"libctor_nomain.a"}), ctor::flags({ .cxxflags = { "-std=c++20", "-O3", "-Wall", "-I../src", "-Iuunit", "-DOUTPUT=\"generated_sources\"", "-fexceptions", }, }), }, { ctor::target_type::unit_test, ctor::output_system::build, ctor::target("argsplit_test"), ctor::sources{ "argsplit_test.cc", "testmain.cc", "../src/util.cc", }, ctor::flags({ .cxxflags = { "-std=c++20", "-O3", "-Wall", "-I../src", "-Iuunit", "-DOUTPUT=\"argsplit\"", "-fexceptions", }, }), }, { ctor::target_type::unit_test, ctor::output_system::build, ctor::target("pointerlist_test"), ctor::sources{ "pointerlist_test.cc", "testmain.cc", "../src/pointerlist.cc", }, ctor::flags({ .cxxflags = { "-std=c++20", "-O3", "-Wall", "-I../src", "-Iuunit", "-DOUTPUT=\"pointerlist\"", "-fexceptions", }, }), }, { ctor::target_type::unit_test, ctor::output_system::build, ctor::target("deps_test"), ctor::sources{ "deps_test.cc", "testmain.cc", "../src/deps.cc", "../src/util.cc", }, ctor::depends({"testprog"}), ctor::flags({ .cxxflags = { "-std=c++20", "-O3", "-Wall", "-I../src", "-Iuunit", "-DOUTPUT=\"deps\"", "-fexceptions", }, }), }, { ctor::target_type::unit_test, ctor::output_system::build, ctor::target("testprog"), ctor::sources{ "testprog.cc", }, ctor::flags({ .cxxflags = { "-std=c++20", "-O3", "-Wall", "-fexceptions", }, }), }, { ctor::target_type::unit_test, ctor::output_system::build, ctor::target("execute_test"), ctor::sources{ "execute_test.cc", "testmain.cc", "../src/execute.cc", "../src/pointerlist.cc", "../src/util.cc", }, ctor::depends({"testprog"}), ctor::flags({ .cxxflags = { "-std=c++20", "-O3", "-Wall", "-I../src", "-Iuunit", "-DOUTPUT=\"execute\"", "-fexceptions", }, .ldflags = { "-pthread" }, }), }, { ctor::target_type::unit_test, ctor::output_system::build, ctor::target("tasks_test"), ctor::sources{ "tasks_test.cc", "testmain.cc", }, ctor::depends({"libctor_nomain.a"}), ctor::flags({ .cxxflags = { "-std=c++20", "-O3", "-Wall", "-I../src", "-Iuunit", "-DOUTPUT=\"tasks\"", "-fexceptions", }, .ldflags = { "-pthread" }, }), }, { ctor::target_type::unit_test, ctor::output_system::build, ctor::target("cycle_test"), ctor::sources{ "cycle_test.cc", "testmain.cc", }, ctor::depends({"libctor_nomain.a"}), ctor::flags({ .cxxflags = { "-std=c++20", "-O3", "-Wall", "-I../src", "-Iuunit", "-DOUTPUT=\"cycle\"", "-fexceptions", }, .ldflags = { "-pthread" }, }), }, { ctor::target_type::unit_test, ctor::output_system::build, ctor::target("source_type_test"), ctor::sources{ "source_type_test.cc", "testmain.cc", }, ctor::depends({"libctor_nomain.a"}), ctor::flags({ .cxxflags = { "-std=c++20", "-O3", "-Wall", "-I../src", "-Iuunit", "-DOUTPUT=\"source_type\"", "-fexceptions", }, .ldflags = { "-pthread" }, }), }, { ctor::target_type::unit_test, ctor::output_system::build, ctor::target("tools_test"), ctor::sources{ "tools_test.cc", "testmain.cc", "../src/util.cc", "../src/tools.cc", }, ctor::depends({"libctor_nomain.a"}), ctor::flags({ .cxxflags = { "-std=c++20", "-O3", "-Wall", "-I../src", "-Iuunit", "-DOUTPUT=\"tools\"", "-fexceptions", }, }), }, { ctor::target_type::unit_test_library, ctor::output_system::build, ctor::target("libctor_nomain.a"), ctor::sources{ "../src/build.cc", "../src/configure.cc", "../src/deps.cc", "../src/execute.cc", "../src/pointerlist.cc", "../src/rebuild.cc", "../src/tasks.cc", "../src/task.cc", "../src/task_ar.cc", "../src/task_cc.cc", "../src/task_fn.cc", "../src/task_ld.cc", "../src/task_so.cc", "../src/tools.cc", "../src/util.cc", "../src/externals_manual.cc", "../configuration.cc", }, ctor::flags({ .cxxflags = { "-std=c++20", "-O3", "-Wall", "-I../src", "-fexceptions", }, .ldflags = { "-pthread" }, }), }, }; } } // Convenience macro REG(ctorTestConfigs);