authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2016-05-12 21:40:38-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2016-05-12 21:40:38-07:00
log774ec1f88992667529a7b3c149b59b68eb4f2c59
treeea93759810ff5cd1d137938f9a5770c331570289
parent1eafc85f1f0643ca2594247615a14b7a34343a14
parentb7b864e5e5cb3898c2632ff7a79fd3fbbf03e59b

Merge pull request #152 from jmi2k/zig-std-dir

Add --zig-std-dir

5 files changed, 17 insertions(+), 3 deletions(-)

src/all_types.hpp+1
......@@ -1220,6 +1220,7 @@ struct CodeGen {
12201220 Buf *libc_lib_dir;
12211221 Buf *libc_static_lib_dir;
12221222 Buf *libc_include_dir;
1223 Buf *zig_std_dir;
12231224 Buf *dynamic_linker;
12241225 Buf *linker_path;
12251226 Buf *ar_path;
src/codegen.cpp+8-2
......@@ -72,6 +72,7 @@ CodeGen *codegen_create(Buf *root_source_dir, const ZigTarget *target) {
7272 g->root_package = new_package(buf_ptr(root_source_dir), "");
7373 g->std_package = new_package(ZIG_STD_DIR, "index.zig");
7474 g->root_package->package_table.put(buf_create_from_str("std"), g->std_package);
75 g->zig_std_dir = buf_create_from_str(ZIG_STD_DIR);
7576
7677
7778 if (target) {
......@@ -165,6 +166,11 @@ void codegen_set_libc_include_dir(CodeGen *g, Buf *libc_include_dir) {
165166 g->libc_include_dir = libc_include_dir;
166167}
167168
169void codegen_set_zig_std_dir(CodeGen *g, Buf *zig_std_dir) {
170 g->zig_std_dir = zig_std_dir;
171 g->std_package->root_src_dir = *zig_std_dir;
172}
173
168174void codegen_set_dynamic_linker(CodeGen *g, Buf *dynamic_linker) {
169175 g->dynamic_linker = dynamic_linker;
170176}
......@@ -4752,7 +4758,7 @@ void codegen_render_ast(CodeGen *g, FILE *f, int indent_size) {
47524758
47534759
47544760static ImportTableEntry *add_special_code(CodeGen *g, PackageTableEntry *package, const char *basename) {
4755 Buf *std_dir = buf_create_from_str(ZIG_STD_DIR);
4761 Buf *std_dir = g->zig_std_dir;
47564762 Buf *code_basename = buf_create_from_str(basename);
47574763 Buf path_to_code_src = BUF_INIT;
47584764 os_path_join(std_dir, code_basename, &path_to_code_src);
......@@ -4770,7 +4776,7 @@ static ImportTableEntry *add_special_code(CodeGen *g, PackageTableEntry *package
47704776}
47714777
47724778static PackageTableEntry *create_bootstrap_pkg(CodeGen *g) {
4773 PackageTableEntry *package = new_package(ZIG_STD_DIR, "");
4779 PackageTableEntry *package = new_package(buf_ptr(g->zig_std_dir), "");
47744780 package->package_table.put(buf_create_from_str("std"), g->std_package);
47754781 package->package_table.put(buf_create_from_str("@root"), g->root_package);
47764782 return package;
src/codegen.hpp+1
......@@ -30,6 +30,7 @@ void codegen_set_out_name(CodeGen *codegen, Buf *out_name);
3030void codegen_set_libc_lib_dir(CodeGen *codegen, Buf *libc_lib_dir);
3131void codegen_set_libc_static_lib_dir(CodeGen *g, Buf *libc_static_lib_dir);
3232void codegen_set_libc_include_dir(CodeGen *codegen, Buf *libc_include_dir);
33void codegen_set_zig_std_dir(CodeGen *codegen, Buf *zig_std_dir);
3334void codegen_set_dynamic_linker(CodeGen *g, Buf *dynamic_linker);
3435void codegen_set_linker_path(CodeGen *g, Buf *linker_path);
3536void codegen_set_ar_path(CodeGen *g, Buf *ar_path);
src/link.cpp+1-1
......@@ -33,7 +33,7 @@ static const char *get_libc_static_file(CodeGen *g, const char *file) {
3333
3434static Buf *build_o(CodeGen *parent_gen, const char *oname) {
3535 Buf *source_basename = buf_sprintf("%s.zig", oname);
36 Buf *std_dir_path = buf_create_from_str(ZIG_STD_DIR);
36 Buf *std_dir_path = parent_gen->zig_std_dir;
3737
3838 ZigTarget *child_target = parent_gen->is_native_target ? nullptr : &parent_gen->zig_target;
3939 CodeGen *child_gen = codegen_create(std_dir_path, child_target);
src/main.cpp+6
......@@ -35,6 +35,7 @@ static int usage(const char *arg0) {
3535 " --libc-lib-dir [path] directory where libc crt1.o resides\n"
3636 " --libc-static-lib-dir [path] directory where libc crtbegin.o resides\n"
3737 " --libc-include-dir [path] directory where libc stdlib.h resides\n"
38 " --zig-std-dir [path] directory where zig standard library resides\n"
3839 " --dynamic-linker [path] set the path to ld.so\n"
3940 " --ld-path [path] set the path to the linker\n"
4041 " --ar-path [path] set the path to ar\n"
......@@ -117,6 +118,7 @@ int main(int argc, char **argv) {
117118 const char *libc_lib_dir = nullptr;
118119 const char *libc_static_lib_dir = nullptr;
119120 const char *libc_include_dir = nullptr;
121 const char *zig_std_dir = nullptr;
120122 const char *dynamic_linker = nullptr;
121123 const char *linker_path = nullptr;
122124 const char *ar_path = nullptr;
......@@ -194,6 +196,8 @@ int main(int argc, char **argv) {
194196 libc_static_lib_dir = argv[i];
195197 } else if (strcmp(arg, "--libc-include-dir") == 0) {
196198 libc_include_dir = argv[i];
199 } else if (strcmp(arg, "--zig-std-dir") == 0) {
200 zig_std_dir = argv[i];
197201 } else if (strcmp(arg, "--dynamic-linker") == 0) {
198202 dynamic_linker = argv[i];
199203 } else if (strcmp(arg, "--ld-path") == 0) {
......@@ -356,6 +360,8 @@ int main(int argc, char **argv) {
356360 codegen_set_libc_static_lib_dir(g, buf_create_from_str(libc_static_lib_dir));
357361 if (libc_include_dir)
358362 codegen_set_libc_include_dir(g, buf_create_from_str(libc_include_dir));
363 if (zig_std_dir)
364 codegen_set_zig_std_dir(g, buf_create_from_str(zig_std_dir));
359365 if (dynamic_linker)
360366 codegen_set_dynamic_linker(g, buf_create_from_str(dynamic_linker));
361367 if (linker_path)