42 lines
1.0 KiB
C++
42 lines
1.0 KiB
C++
/*
|
|
* Copyright (c) 2015 Andrew Kelley
|
|
*
|
|
* This file is part of zig, which is MIT licensed.
|
|
* See http://opensource.org/licenses/MIT
|
|
*/
|
|
|
|
#ifndef ZIG_CODEGEN_HPP
|
|
#define ZIG_CODEGEN_HPP
|
|
|
|
#include "parser.hpp"
|
|
#include "errmsg.hpp"
|
|
|
|
struct CodeGen;
|
|
|
|
enum OutType {
|
|
OutTypeUnknown,
|
|
OutTypeExe,
|
|
OutTypeLib,
|
|
OutTypeObj,
|
|
};
|
|
|
|
CodeGen *codegen_create(Buf *root_source_dir);
|
|
|
|
enum CodeGenBuildType {
|
|
CodeGenBuildTypeDebug,
|
|
CodeGenBuildTypeRelease,
|
|
};
|
|
void codegen_set_build_type(CodeGen *codegen, CodeGenBuildType build_type);
|
|
void codegen_set_is_static(CodeGen *codegen, bool is_static);
|
|
void codegen_set_strip(CodeGen *codegen, bool strip);
|
|
void codegen_set_verbose(CodeGen *codegen, bool verbose);
|
|
void codegen_set_errmsg_color(CodeGen *codegen, ErrColor err_color);
|
|
void codegen_set_out_type(CodeGen *codegen, OutType out_type);
|
|
void codegen_set_out_name(CodeGen *codegen, Buf *out_name);
|
|
|
|
void codegen_add_root_code(CodeGen *g, Buf *source_path, Buf *source_code);
|
|
|
|
void codegen_link(CodeGen *g, const char *out_file);
|
|
|
|
#endif
|