// -*- 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 { { .name = "testprog", .type = ctor::target_type::unit_test, .system = ctor::output_system::build, .target = "testprog", .sources = { {"testprog.cc"}, }, .flags = { .cxxflags = { "-std=c++20", "-O3", "-Wall",// "-Werror", {ctor::toolchain::msvc, ctor::cxx_opt::custom, "/EHsc"}, {ctor::toolchain::msvc, ctor::cxx_opt::custom, "/D_CRT_SECURE_NO_WARNINGS"}, }, }, }, { .type = ctor::target_type::unit_test, .system = ctor::output_system::build, .target = "execute_test", .sources = { "execute_test.cc", "testmain.cc", "../src/execute.cc", "../src/util.cc", }, .depends = { "testprog", }, .flags = { .cxxflags = { "-std=c++20", "-O3", "-Wall",// "-Werror", "-I../src", "-Iuunit", "-DOUTPUT=\"execute\"", {ctor::toolchain::msvc, ctor::cxx_opt::custom, "/EHsc"}, {ctor::toolchain::msvc, ctor::cxx_opt::custom, "/D_CRT_SECURE_NO_WARNINGS"}, }, .ldflags = { "-pthread" }, }, }, { .type = ctor::target_type::unit_test, .system = ctor::output_system::build, .target = "tasks_test", .sources = { "tasks_test.cc", "testmain.cc", }, .depends = { "libctor_nomain.lib" }, .flags = { .cxxflags = { "-std=c++20", "-O3", "-Wall",// "-Werror", "-I../src", "-Iuunit", "-DOUTPUT=\"tasks\"", {ctor::toolchain::msvc, ctor::cxx_opt::custom, "/EHsc"}, {ctor::toolchain::msvc, ctor::cxx_opt::custom, "/D_CRT_SECURE_NO_WARNINGS"}, }, .ldflags = { "-pthread" }, }, }, { .type = ctor::target_type::unit_test, .system = ctor::output_system::build, .target = "source_type_test", .sources = { "source_type_test.cc", "testmain.cc", }, .depends = { "libctor_nomain.lib" }, .flags = { .cxxflags = { "-std=c++20", "-O3", "-Wall",// "-Werror", "-I../src", "-Iuunit", "-DOUTPUT=\"source_type\"", {ctor::toolchain::msvc, ctor::cxx_opt::custom, "/EHsc"}, {ctor::toolchain::msvc, ctor::cxx_opt::custom, "/D_CRT_SECURE_NO_WARNINGS"}, }, .ldflags = { "-pthread" }, }, }, { .type = ctor::target_type::unit_test, .system = ctor::output_system::build, .target = "tools_test", .sources = { "tools_test.cc", "testmain.cc", "../src/util.cc", "../src/tools.cc", }, //.depends = { "libctor_nomain.a" }, .flags = { .cxxflags = { "-std=c++20", "-O3", "-Wall",// "-Werror", "-I../src", "-Iuunit", "-DOUTPUT=\"tools\"", {ctor::toolchain::msvc, ctor::cxx_opt::custom, "/EHsc"}, {ctor::toolchain::msvc, ctor::cxx_opt::custom, "/D_CRT_SECURE_NO_WARNINGS"}, }, }, }, { .type = ctor::target_type::unit_test_library, .system = ctor::output_system::build, .target = "libctor_nomain.lib", .sources = { "../src/build.cc", "../src/configure.cc", "../src/execute.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", {ctor::toolchain::msvc, "../getopt-for-windows/getopt.c"}, }, .flags = { .cflags = { "-O3", // "-g", // "-Wall", // "-Wconversion", // "-Wextra", //"-Werror", "-I../src", {ctor::toolchain::msvc, ctor::c_opt::custom, "/I../getopt-for-windows"}, {ctor::toolchain::msvc, ctor::c_opt::custom, "/D_X86_"}, {ctor::toolchain::msvc, ctor::c_opt::custom, "/EHsc"}, {ctor::toolchain::msvc, ctor::c_opt::custom, "/external:W0"}, {ctor::toolchain::msvc, ctor::c_opt::custom, "/D_CRT_SECURE_NO_WARNINGS"}, }, .cxxflags = { "-std=c++20", "-O3", "-Wall",// "-Werror", "-I../src", {ctor::toolchain::msvc, ctor::cxx_opt::custom, "/Igetopt-for-windows"}, {ctor::toolchain::msvc, ctor::cxx_opt::custom, "/D_X86_"}, {ctor::toolchain::msvc, ctor::cxx_opt::custom, "/EHsc"}, {ctor::toolchain::msvc, ctor::cxx_opt::custom, "/external:W0"}, {ctor::toolchain::msvc, ctor::cxx_opt::custom, "/D_CRT_SECURE_NO_WARNINGS"}, {ctor::toolchain::msvc, ctor::cxx_opt::custom, "/Dstrdup=_strdup"}, }, .ldflags = { "-pthread" }, }, }, }; } } // Convenience macro REG(ctorTestConfigs);