diff --git a/builder/builder-options.c b/builder/builder-options.c
index a6398da7..b8527d31 100644
--- a/builder/builder-options.c
+++ b/builder/builder-options.c
@@ -40,6 +40,7 @@ struct BuilderOptions
gboolean no_debuginfo;
char *cflags;
char *cxxflags;
+ char *ldflags;
char *prefix;
char **env;
char **build_args;
@@ -61,6 +62,7 @@ enum {
PROP_0,
PROP_CFLAGS,
PROP_CXXFLAGS,
+ PROP_LDFLAGS,
PROP_PREFIX,
PROP_ENV,
PROP_STRIP,
@@ -79,6 +81,7 @@ builder_options_finalize (GObject *object)
g_free (self->cflags);
g_free (self->cxxflags);
+ g_free (self->ldflags);
g_free (self->prefix);
g_strfreev (self->env);
g_strfreev (self->build_args);
@@ -106,6 +109,10 @@ builder_options_get_property (GObject *object,
g_value_set_string (value, self->cxxflags);
break;
+ case PROP_LDFLAGS:
+ g_value_set_string (value, self->ldflags);
+ break;
+
case PROP_PREFIX:
g_value_set_string (value, self->prefix);
break;
@@ -160,6 +167,11 @@ builder_options_set_property (GObject *object,
self->cxxflags = g_value_dup_string (value);
break;
+ case PROP_LDFLAGS:
+ g_clear_pointer (&self->ldflags, g_free);
+ self->ldflags = g_value_dup_string (value);
+ break;
+
case PROP_PREFIX:
g_clear_pointer (&self->prefix, g_free);
self->prefix = g_value_dup_string (value);
@@ -225,6 +237,13 @@ builder_options_class_init (BuilderOptionsClass *klass)
"",
NULL,
G_PARAM_READWRITE));
+ g_object_class_install_property (object_class,
+ PROP_LDFLAGS,
+ g_param_spec_string ("ldflags",
+ "",
+ "",
+ NULL,
+ G_PARAM_READWRITE));
g_object_class_install_property (object_class,
PROP_PREFIX,
g_param_spec_string ("prefix",
@@ -519,6 +538,22 @@ builder_options_get_cxxflags (BuilderOptions *self, BuilderContext *context)
return NULL;
}
+const char *
+builder_options_get_ldflags (BuilderOptions *self, BuilderContext *context)
+{
+ g_autoptr(GList) options = get_all_options (self, context);
+ GList *l;
+
+ for (l = options; l != NULL; l = l->next)
+ {
+ BuilderOptions *o = l->data;
+ if (o->ldflags)
+ return o->ldflags;
+ }
+
+ return NULL;
+}
+
const char *
builder_options_get_prefix (BuilderOptions *self, BuilderContext *context)
{
@@ -577,7 +612,7 @@ builder_options_get_env (BuilderOptions *self, BuilderContext *context)
GList *l;
int i;
char **envp = NULL;
- const char *cflags, *cxxflags;
+ const char *cflags, *cxxflags, *ldflags;
for (l = options; l != NULL; l = l->next)
{
@@ -617,6 +652,10 @@ builder_options_get_env (BuilderOptions *self, BuilderContext *context)
if (cxxflags)
envp = g_environ_setenv (envp, "CXXFLAGS", cxxflags, TRUE);
+ ldflags = builder_options_get_ldflags (self, context);
+ if (ldflags)
+ envp = g_environ_setenv (envp, "LDFLAGS", cxxflags, TRUE);
+
return envp;
}
@@ -701,6 +740,7 @@ builder_options_checksum (BuilderOptions *self,
builder_cache_checksum_str (cache, BUILDER_OPTION_CHECKSUM_VERSION);
builder_cache_checksum_str (cache, self->cflags);
builder_cache_checksum_str (cache, self->cxxflags);
+ builder_cache_checksum_str (cache, self->ldflags);
builder_cache_checksum_str (cache, self->prefix);
builder_cache_checksum_strv (cache, self->env);
builder_cache_checksum_strv (cache, self->build_args);
diff --git a/builder/builder-options.h b/builder/builder-options.h
index 6089c205..0e0f6d8a 100644
--- a/builder/builder-options.h
+++ b/builder/builder-options.h
@@ -41,6 +41,8 @@ const char *builder_options_get_cflags (BuilderOptions *self,
BuilderContext *context);
const char *builder_options_get_cxxflags (BuilderOptions *self,
BuilderContext *context);
+const char *builder_options_get_ldflags (BuilderOptions *self,
+ BuilderContext *context);
const char *builder_options_get_prefix (BuilderOptions *self,
BuilderContext *context);
char ** builder_options_get_env (BuilderOptions *self,
diff --git a/doc/flatpak-builder.xml b/doc/flatpak-builder.xml
index 910aed89..3697e72a 100644
--- a/doc/flatpak-builder.xml
+++ b/doc/flatpak-builder.xml
@@ -276,6 +276,10 @@
(string)
This is set in the environment variable CXXFLAGS during the build.
+
+ (string)
+ This is set in the environment variable LDFLAGS during the build.
+
(string)
The build prefix for the modules (defaults to /app for