Example #1
0
        public override bool Compile(string file)
        {
            var file_name = file.Split('.')[0];

            // Compile
            string cl_args = "";

            Options.ForEach((str) => cl_args     += $" {str}");
            IncludePath.ForEach((str) => cl_args += $" /I\"{str}\"");
            cl_args += $" /c {file} /Fo{file_name}.obj";
            var cl = MakeProcess(ToolchainPath[0] + "\\cl.exe", cl_args);

            ReadCompileResult(cl);
            if (ExitCode != 0)
            {
                return(false);
            }

            // Link
            string link_args = " " + Options[0];

            LibraryPath.ForEach((str) => link_args += $" /LIBPATH:\"{str}\"");
            link_args += $" /out:{file_name}.exe {file_name}.obj";
            var link = MakeProcess(ToolchainPath[0] + "\\link.exe", link_args);

            ReadCompileResult(link);
            if (ExitCode != 0)
            {
                return(false);
            }

            return(true);
        }