#include "helper.h"
#include "c.h"
#include "ld.h"
#include "tier1/utlstring.h"
#include "tier1/commandline.h"

CUtlVector<CUtlString> tier0_CompiledFiles = {
	"tier0/lib.cpp",
	"tier0/mem.cpp",
	"tier0/platform.cpp",
};

int tier0_build()
{
	CCProject compileProject = {};
	CLDProject ldProject = {};

	compileProject.m_szName = "tier0";
	compileProject.files = tier0_CompiledFiles;
	compileProject.includeDirectories = all_IncludeDirectories;
	compileProject.bFPIC = true;
	ldProject = compileProject.Compile();
	if (bStaticBuild)
		ldProject.linkType = ELINK_STATIC_LIBRARY;
	else
		ldProject.linkType = ELINK_DYNAMIC_LIBRARY;

	CUtlString outputProject = ldProject.Link();
	
	if (!bStaticBuild)
	{
		IFileSystem2::MakeDirectory(CUtlString("%s/bin",szOutputDir.GetString()));
		IFileSystem2::CopyFile(CUtlString("%s/bin", szOutputDir.GetString()), outputProject);
	} else {
		tier0_lib = outputProject;
	}

	return 0;
};
DECLARE_BUILD_STAGE(tier0, tier0_build);
