diff options
-rw-r--r-- | compiler/valacompiler.vala | 3 | ||||
-rw-r--r-- | doc/valac.1 | 11 | ||||
-rw-r--r-- | doc/valac.h2m | 10 | ||||
-rw-r--r-- | vala/valacodecontext.vala | 5 |
4 files changed, 29 insertions, 0 deletions
diff --git a/compiler/valacompiler.vala b/compiler/valacompiler.vala index ed97374dd..8edb0749d 100644 --- a/compiler/valacompiler.vala +++ b/compiler/valacompiler.vala @@ -53,6 +53,7 @@ class Vala.Compiler { static string[] gresources_directories; static bool ccode_only; + static bool abi_stability; static string header_filename; static bool use_header; static string internal_header_filename; @@ -159,6 +160,7 @@ class Vala.Compiler { { "enable-version-header", 0, 0, OptionArg.NONE, ref enable_version_header, "Write vala build version in generated files", null }, { "disable-version-header", 0, 0, OptionArg.NONE, ref disable_version_header, "Do not write vala build version in generated files", null }, { "run-args", 0, 0, OptionArg.STRING, ref run_args, "Arguments passed to directly compiled executeable", null }, + { "abi-stability", 0, 0, OptionArg.NONE, ref abi_stability, "Enable support for ABI stability", null }, { OPTION_REMAINING, 0, 0, OptionArg.FILENAME_ARRAY, ref sources, null, "FILE..." }, { null } }; @@ -236,6 +238,7 @@ class Vala.Compiler { if (ccode_only && cc_options != null) { Report.warning (null, "-X has no effect when -C or --ccode is set"); } + context.abi_stability = abi_stability; context.compile_only = compile_only; context.header_filename = header_filename; if (header_filename == null && use_header) { diff --git a/doc/valac.1 b/doc/valac.1 index 9d0fbad77..7e77a4002 100644 --- a/doc/valac.1 +++ b/doc/valac.1 @@ -199,6 +199,17 @@ Do not write vala build version in generated files .TP \fB\-\-run\-args\fR Arguments passed to directly compiled executeable +.TP +\fB\-\-abi\-stability\fR +Enable support for ABI stability +.RS +This changes the current behaviour to output public members of classes and +interfaces the same order as they appear in Vala source. +For libraries is recommended to use \fB--abi-stability\fR to ensure the +maintainability of the resulting Application Binary Interface (ABI). +This option is disabled by default for backward compatibility because it can +break ABI of existing projects. +.RE .SH BUGS https://bugzilla.gnome.org/page.cgi?id=browse.html&product=vala .SH "HOMEPAGE OR CONTACT" diff --git a/doc/valac.h2m b/doc/valac.h2m index 87b41b7d2..15f66c2af 100644 --- a/doc/valac.h2m +++ b/doc/valac.h2m @@ -23,6 +23,16 @@ or \fB--no-color\fR are declared then \fB--color\fR=\fIauto\fR is used where output is colored when stderr is a terminal. .RE +/Enable support for ABI stability/ +.RS +This changes the current behaviour to output public members of classes and +interfaces the same order as they appear in Vala source. +For libraries is recommended to use \fB--abi-stability\fR to ensure the +maintainability of the resulting Application Binary Interface (ABI). +This option is disabled by default for backward compatibility because it can +break ABI of existing projects. +.RE + [BUGS] https://bugzilla.gnome.org/page.cgi?id=browse.html&product=vala diff --git a/vala/valacodecontext.vala b/vala/valacodecontext.vala index ad6fcd44e..713ba7eb2 100644 --- a/vala/valacodecontext.vala +++ b/vala/valacodecontext.vala @@ -72,6 +72,11 @@ public class Vala.CodeContext { public bool ccode_only { get; set; } /** + * Enable support for ABI stability. + */ + public bool abi_stability { get; set; } + + /** * Output C header file. */ public string? header_filename { get; set; } |