Allow overriding SOURCE_DATE_EPOCH via env option

We apply this variable before the env options so we can clear this.

Closes: #257
Approved by: alexlarsson
auto
Alexander Larsson 2019-01-14 11:25:29 +01:00 committed by Atomic Bot
parent 4d2ff1a196
commit 1b546771c5
3 changed files with 22 additions and 11 deletions

View File

@ -1013,8 +1013,21 @@ builder_context_set_enable_ccache (BuilderContext *self,
}
char **
builder_context_extend_env (BuilderContext *self,
char **envp)
builder_context_extend_env_pre (BuilderContext *self,
char **envp)
{
if (self->source_date_epoch != 0)
{
g_autofree char *s_d_e = g_strdup_printf ("%" G_GUINT64_FORMAT, self->source_date_epoch);
envp = g_environ_setenv (envp, "SOURCE_DATE_EPOCH", s_d_e, FALSE);
}
return envp;
}
char **
builder_context_extend_env_post (BuilderContext *self,
char **envp)
{
g_autofree char *path = NULL;
const char *ccache_dir = NULL;
@ -1038,12 +1051,6 @@ builder_context_extend_env (BuilderContext *self,
envp = g_environ_setenv (envp, "CCACHE_DIR", ccache_dir, TRUE);
envp = g_environ_setenv (envp, "PATH", path, TRUE);
if (self->source_date_epoch != 0)
{
g_autofree char *s_d_e = g_strdup_printf ("%" G_GUINT64_FORMAT, self->source_date_epoch);
envp = g_environ_setenv (envp, "SOURCE_DATE_EPOCH", s_d_e, FALSE);
}
return envp;
}

View File

@ -142,8 +142,10 @@ void builder_context_set_run_tests (BuilderContext *self,
void builder_context_set_no_shallow_clone (BuilderContext *self,
gboolean no_shallow_clone);
gboolean builder_context_get_no_shallow_clone (BuilderContext *self);
char ** builder_context_extend_env (BuilderContext *self,
char **envp);
char ** builder_context_extend_env_pre (BuilderContext *self,
char **envp);
char ** builder_context_extend_env_post (BuilderContext *self,
char **envp);
gboolean builder_context_load_sdk_config (BuilderContext *self,
const char *sdk_path,

View File

@ -1093,6 +1093,8 @@ builder_options_get_env (BuilderOptions *self, BuilderContext *context)
char **envp = NULL;
const char *cflags, *cppflags, *cxxflags, *ldflags;
envp = builder_context_extend_env_pre (context, envp);
cflags = builder_options_get_cflags (self, context);
if (cflags)
envp = g_environ_setenv (envp, "CFLAGS", cflags, FALSE);
@ -1137,7 +1139,7 @@ builder_options_get_env (BuilderOptions *self, BuilderContext *context)
}
}
envp = builder_context_extend_env (context, envp);
envp = builder_context_extend_env_post (context, envp);
envp = builder_options_update_path (self, context, envp);
envp = builder_options_update_ld_path (self, context, envp);