authorgravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2024-02-03 22:10:50+01:00
committergravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2024-02-03 22:34:59-05:00
log5b803aecfb302718b67c465adfdaaef500ab8c68
tree747baf4610f945c1cf777729888804a29f0ff709
parenta65bc8d0712d14580a7d1b8bfdd2d7beb4b247d5

bootstrap.c: allow overriding the host triple


1 files changed, 14 insertions(+), 3 deletions(-)

bootstrap.c+14-3
......@@ -54,6 +54,8 @@ static void print_and_run(const char **argv) {
5454}
5555
5656static const char *get_host_os(void) {
57 const char *host_os = getenv("ZIG_HOST_TARGET_OS");
58 if (host_os != NULL) return host_os;
5759#if defined(__WIN32__)
5860 return "windows";
5961#elif defined(__APPLE__)
......@@ -63,23 +65,32 @@ static const char *get_host_os(void) {
6365#elif defined(__FreeBSD__)
6466 return "freebsd";
6567#else
66#error TODO implement get_host_os in this build script for this target
68 panic("unknown host os, specify with ZIG_HOST_TARGET_OS");
6769#endif
6870}
6971
7072static const char *get_host_arch(void) {
73 const char *host_arch = getenv("ZIG_HOST_TARGET_ARCH");
74 if (host_arch != NULL) return host_arch;
7175#if defined(__x86_64__ )
7276 return "x86_64";
7377#elif defined(__aarch64__)
7478 return "aarch64";
7579#else
76#error TODO implement get_host_arch in this build script for this target
80 panic("unknown host arch, specify with ZIG_HOST_TARGET_ARCH");
7781#endif
7882}
7983
84static const char *get_host_abi(void) {
85 const char *host_abi = getenv("ZIG_HOST_TARGET_ABI");
86 return (host_abi == NULL) ? "" : host_abi;
87}
88
8089static const char *get_host_triple(void) {
90 const char *host_triple = getenv("ZIG_HOST_TARGET_TRIPLE");
91 if (host_triple != NULL) return host_triple;
8192 static char global_buffer[100];
82 sprintf(global_buffer, "%s-%s", get_host_arch(), get_host_os());
93 sprintf(global_buffer, "%s-%s%s", get_host_arch(), get_host_os(), get_host_abi());
8394 return global_buffer;
8495}
8596