// -*- c++ -*-
// Distributed under the BSD 2-Clause License.
// See accompanying file LICENSE for details.
#include <libctor.h>

namespace
{
BuildConfigurations ctorTestConfigs()
{
	return
	{
		{
			.type = TargetType::UnitTest,
			.target = "execute_test",
			.sources = {
				"execute_test.cc",
				"testmain.cc",
				"../src/execute.cc",
			},
			.flags = {
				.cxxflags = {
					"-std=c++20", "-O3", "-s", "-Wall", "-Werror",
					"-I../src", "-Iuunit",
					"-DOUTPUT=\"execute\"",
				},
				.ldflags = { "-pthread" },
			},
		},
		{
			.type = TargetType::UnitTest,
			.target = "tasks_test",
			.sources = {
				"tasks_test.cc",
				"testmain.cc",
			},
			.depends = {"libctor.a"},
			.flags = {
				.cxxflags = {
					"-std=c++20", "-O3", "-s", "-Wall", "-Werror",
					"-I../src", "-Iuunit",
					"-DOUTPUT=\"tasks\"",
				},
				.ldflags = { "-pthread" },
			},
		},
		{
			.type = TargetType::UnitTest,
			.target = "source_type_test",
			.sources = {
				"source_type_test.cc",
				"testmain.cc",
			},
			.depends = {"libctor.a"},
			.flags = {
				.cxxflags = {
					"-std=c++20", "-O3", "-s", "-Wall", "-Werror",
					"-I../src", "-Iuunit",
					"-DOUTPUT=\"source_type\"",
				},
				.ldflags = { "-pthread" },
			},
		},
	};
}
}

// Convenience macro
REG(ctorTestConfigs);