authorgravatar for emekankurumeh@outlook.comemekoi <emekankurumeh@outlook.com> 2019-05-09 18:01:12-05:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2019-05-29 16:54:59-04:00
logfb5dc2892171b4f9f14460844b67163b5aa4d269
treed6173d8fd974bc1bd9a089da77609bdd6c9ed6d6
parent7017388e9ea9a5b144780c0a5c090bb7a221c9b6
signature Commit is signed but in an unrecognized format.

added subsystem to builtin.zig


1 files changed, 40 insertions(+), 0 deletions(-)

src/codegen.cpp+40
......@@ -7869,6 +7869,30 @@ Buf *codegen_generate_builtin_source(CodeGen *g) {
78697869 //assert(EndianBig == 0);
78707870 //assert(EndianLittle == 1);
78717871 }
7872 {
7873 buf_appendf(contents,
7874 "pub const SubSystem = enum {\n"
7875 " Auto,\n"
7876 " Console,\n"
7877 " Windows,\n"
7878 " Posix,\n"
7879 " Native,\n"
7880 " EfiApplication,\n"
7881 " EfiBootServiceDriver,\n"
7882 " EfiRom,\n"
7883 " EfiRuntimeDriver,\n"
7884 "};\n\n");
7885
7886 assert(TargetSubsystemAuto == 0);
7887 assert(TargetSubsystemConsole == 1);
7888 assert(TargetSubsystemWindows == 2);
7889 assert(TargetSubsystemPosix == 3);
7890 assert(TargetSubsystemNative == 4);
7891 assert(TargetSubsystemEfiApplication == 5);
7892 assert(TargetSubsystemEfiBootServiceDriver == 6);
7893 assert(TargetSubsystemEfiRom == 7);
7894 assert(TargetSubsystemEfiRuntimeDriver == 8);
7895 }
78727896 {
78737897 const char *endian_str = g->is_big_endian ? "Endian.Big" : "Endian.Little";
78747898 buf_appendf(contents, "pub const endian = %s;\n", endian_str);
......@@ -7885,6 +7909,21 @@ Buf *codegen_generate_builtin_source(CodeGen *g) {
78857909 buf_appendf(contents, "pub const valgrind_support = %s;\n", bool_to_str(want_valgrind_support(g)));
78867910 buf_appendf(contents, "pub const position_independent_code = %s;\n", bool_to_str(g->have_pic));
78877911
7912 {
7913 static const char* subsystem_strings[] = {
7914 "Auto",
7915 "Console",
7916 "Windows",
7917 "Posix",
7918 "Native",
7919 "EfiApplication",
7920 "EfiBootServiceDriver",
7921 "EfiRom",
7922 "EfiRuntimeDriver",
7923 };
7924 buf_appendf(contents, "pub const subsystem = SubSystem.%s;\n", subsystem_strings[g->subsystem]);
7925 }
7926
78887927 if (g->is_test_build) {
78897928 buf_appendf(contents,
78907929 "const TestFn = struct {\n"
......@@ -7928,6 +7967,7 @@ static Error define_builtin_compile_vars(CodeGen *g) {
79287967 cache_bool(&cache_hash, g->have_err_ret_tracing);
79297968 cache_bool(&cache_hash, g->libc_link_lib != nullptr);
79307969 cache_bool(&cache_hash, g->valgrind_support);
7970 cache_int(&cache_hash, g->subsystem);
79317971
79327972 Buf digest = BUF_INIT;
79337973 buf_resize(&digest, 0);