From a1817f462a06cca5cb25609b892dbff73db8a938 Mon Sep 17 00:00:00 2001 From: José Miguel Sánchez Date: Thu, 12 May 2016 18:41:20 +0200 Subject: Add --zig-std-dir --- src/codegen.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'src/codegen.cpp') diff --git a/src/codegen.cpp b/src/codegen.cpp index d9a581b570..4d399fe8b0 100644 --- a/src/codegen.cpp +++ b/src/codegen.cpp @@ -84,6 +84,7 @@ CodeGen *codegen_create(Buf *root_source_dir, const ZigTarget *target) { g->libc_lib_dir = buf_create_from_str(""); g->libc_static_lib_dir = buf_create_from_str(""); g->libc_include_dir = buf_create_from_str(""); + g->zig_std_dir = buf_create_from_str(""); g->linker_path = buf_create_from_str(""); g->ar_path = buf_create_from_str(""); g->darwin_linker_version = buf_create_from_str(""); @@ -96,6 +97,7 @@ CodeGen *codegen_create(Buf *root_source_dir, const ZigTarget *target) { g->libc_lib_dir = buf_create_from_str(ZIG_LIBC_LIB_DIR); g->libc_static_lib_dir = buf_create_from_str(ZIG_LIBC_STATIC_LIB_DIR); g->libc_include_dir = buf_create_from_str(ZIG_LIBC_INCLUDE_DIR); + g->zig_std_dir = buf_create_from_str(ZIG_STD_DIR); g->linker_path = buf_create_from_str(ZIG_LD_PATH); g->ar_path = buf_create_from_str(ZIG_AR_PATH); g->darwin_linker_version = buf_create_from_str(ZIG_HOST_LINK_VERSION); @@ -165,6 +167,11 @@ void codegen_set_libc_include_dir(CodeGen *g, Buf *libc_include_dir) { g->libc_include_dir = libc_include_dir; } +void codegen_set_zig_std_dir(CodeGen *g, Buf *zig_std_dir) { + g->zig_std_dir = zig_std_dir; + g->std_package->root_src_dir = *zig_std_dir; +} + void codegen_set_dynamic_linker(CodeGen *g, Buf *dynamic_linker) { g->dynamic_linker = dynamic_linker; } @@ -4752,7 +4759,7 @@ void codegen_render_ast(CodeGen *g, FILE *f, int indent_size) { static ImportTableEntry *add_special_code(CodeGen *g, PackageTableEntry *package, const char *basename) { - Buf *std_dir = buf_create_from_str(ZIG_STD_DIR); + Buf *std_dir = g->zig_std_dir; Buf *code_basename = buf_create_from_str(basename); Buf path_to_code_src = BUF_INIT; os_path_join(std_dir, code_basename, &path_to_code_src); @@ -4770,7 +4777,7 @@ static ImportTableEntry *add_special_code(CodeGen *g, PackageTableEntry *package } static PackageTableEntry *create_bootstrap_pkg(CodeGen *g) { - PackageTableEntry *package = new_package(ZIG_STD_DIR, ""); + PackageTableEntry *package = new_package(buf_ptr(g->zig_std_dir), ""); package->package_table.put(buf_create_from_str("std"), g->std_package); package->package_table.put(buf_create_from_str("@root"), g->root_package); return package; -- cgit v1.2.3 From b7b864e5e5cb3898c2632ff7a79fd3fbbf03e59b Mon Sep 17 00:00:00 2001 From: José Miguel Sánchez Date: Thu, 12 May 2016 19:55:50 +0200 Subject: For the sake of correctness: we can always rely on ZIG_STD_DIR --- src/codegen.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'src/codegen.cpp') diff --git a/src/codegen.cpp b/src/codegen.cpp index 4d399fe8b0..d30c9e3f44 100644 --- a/src/codegen.cpp +++ b/src/codegen.cpp @@ -72,6 +72,7 @@ CodeGen *codegen_create(Buf *root_source_dir, const ZigTarget *target) { g->root_package = new_package(buf_ptr(root_source_dir), ""); g->std_package = new_package(ZIG_STD_DIR, "index.zig"); g->root_package->package_table.put(buf_create_from_str("std"), g->std_package); + g->zig_std_dir = buf_create_from_str(ZIG_STD_DIR); if (target) { @@ -84,7 +85,6 @@ CodeGen *codegen_create(Buf *root_source_dir, const ZigTarget *target) { g->libc_lib_dir = buf_create_from_str(""); g->libc_static_lib_dir = buf_create_from_str(""); g->libc_include_dir = buf_create_from_str(""); - g->zig_std_dir = buf_create_from_str(""); g->linker_path = buf_create_from_str(""); g->ar_path = buf_create_from_str(""); g->darwin_linker_version = buf_create_from_str(""); @@ -97,7 +97,6 @@ CodeGen *codegen_create(Buf *root_source_dir, const ZigTarget *target) { g->libc_lib_dir = buf_create_from_str(ZIG_LIBC_LIB_DIR); g->libc_static_lib_dir = buf_create_from_str(ZIG_LIBC_STATIC_LIB_DIR); g->libc_include_dir = buf_create_from_str(ZIG_LIBC_INCLUDE_DIR); - g->zig_std_dir = buf_create_from_str(ZIG_STD_DIR); g->linker_path = buf_create_from_str(ZIG_LD_PATH); g->ar_path = buf_create_from_str(ZIG_AR_PATH); g->darwin_linker_version = buf_create_from_str(ZIG_HOST_LINK_VERSION); -- cgit v1.2.3