[vala/wip/issue/713: 3/3] vala: Drop --use-header compiler option and enable it by default
- From: Rico Tzschichholz <ricotz src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [vala/wip/issue/713: 3/3] vala: Drop --use-header compiler option and enable it by default
- Date: Sun, 5 Apr 2020 09:12:15 +0000 (UTC)
commit 9f3249212112526353d41b875bf56b2eac6e9a47
Author: Mason Bogue <scythe ortsz com>
Date: Fri Mar 20 18:42:59 2020 -0400
vala: Drop --use-header compiler option and enable it by default
Import definitions from generated header files if available
Fixes https://gitlab.gnome.org/GNOME/vala/issues/713
ccode/valaccodefile.vala | 10 ++++------
codegen/valaccodebasemodule.vala | 12 +++++-------
codegen/valagtypemodule.vala | 8 ++++----
compiler/valacompiler.vala | 7 +------
vala/valacodecontext.vala | 2 --
5 files changed, 14 insertions(+), 25 deletions(-)
---
diff --git a/ccode/valaccodefile.vala b/ccode/valaccodefile.vala
index a82eac5c0..7145946b1 100644
--- a/ccode/valaccodefile.vala
+++ b/ccode/valaccodefile.vala
@@ -22,7 +22,7 @@
public class Vala.CCodeFile {
- public CCodeFileType cfile_type { get; set; }
+ public CCodeFileType file_type { get; private set; }
public weak SourceFile? file { get; private set; }
@@ -39,11 +39,9 @@ public class Vala.CCodeFile {
CCodeFragment constant_declaration = new CCodeFragment ();
CCodeFragment type_member_definition = new CCodeFragment ();
- public CCodeFile (SourceFile? source_file = null) {
+ public CCodeFile (CCodeFileType type = CCodeFileType.SOURCE, SourceFile? source_file = null) {
file = source_file;
- if (source_file != null) {
- cfile_type = CCodeFileType.SOURCE;
- }
+ file_type = type;
}
public bool add_declaration (string name) {
@@ -154,7 +152,7 @@ public class Vala.CCodeFile {
return false;
}
- if (cfile_type == CCodeFileType.SOURCE) {
+ if (file_type == CCodeFileType.SOURCE) {
writer.line_directives = line_directives;
comments.write (writer);
diff --git a/codegen/valaccodebasemodule.vala b/codegen/valaccodebasemodule.vala
index 5e1b6e5f1..f58985b9e 100644
--- a/codegen/valaccodebasemodule.vala
+++ b/codegen/valaccodebasemodule.vala
@@ -557,10 +557,8 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
gtk_widget_type = (Class) gtk_ns.scope.lookup ("Widget");
}
- header_file = new CCodeFile ();
- header_file.cfile_type = CCodeFileType.PUBLIC_HEADER;
- internal_header_file = new CCodeFile ();
- internal_header_file.cfile_type = CCodeFileType.INTERNAL_HEADER;
+ header_file = new CCodeFile (CCodeFileType.PUBLIC_HEADER);
+ internal_header_file = new CCodeFile (CCodeFileType.INTERNAL_HEADER);
/* we're only interested in non-pkg source files */
var source_files = context.get_source_files ();
@@ -672,8 +670,8 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
}
public bool add_symbol_declaration (CCodeFile decl_space, Symbol sym, string name) {
- bool in_generated_header = CodeContext.get ().use_header
- && (decl_space.cfile_type != CCodeFileType.PUBLIC_HEADER &&
!sym.is_internal_symbol ());
+ bool in_generated_header = context.header_filename != null
+ && (decl_space.file_type != CCodeFileType.PUBLIC_HEADER &&
!sym.is_internal_symbol ());
if (decl_space.add_declaration (name)) {
return true;
}
@@ -755,7 +753,7 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
}
public override void visit_source_file (SourceFile source_file) {
- cfile = new CCodeFile (source_file);
+ cfile = new CCodeFile (CCodeFileType.SOURCE, source_file);
user_marshal_set = new HashSet<string> (str_hash, str_equal);
diff --git a/codegen/valagtypemodule.vala b/codegen/valagtypemodule.vala
index f7433f205..4e8c91702 100644
--- a/codegen/valagtypemodule.vala
+++ b/codegen/valagtypemodule.vala
@@ -198,8 +198,8 @@ public class Vala.GTypeModule : GErrorModule {
// Custom unref-methods need to be emitted before G_DEFINE_AUTOPTR_CLEANUP_FUNC,
// so we guard against that special case and handle it in generate_method_declaration.
if (!(base_class.is_compact && is_reference_counting (base_class))
- && (!context.use_header || decl_space.cfile_type == CCodeFileType.PUBLIC_HEADER
- || (decl_space.cfile_type == CCodeFileType.INTERNAL_HEADER &&
base_class.is_internal_symbol()))) {
+ && (context.header_filename == null|| decl_space.file_type == CCodeFileType.PUBLIC_HEADER
+ || (decl_space.file_type == CCodeFileType.INTERNAL_HEADER &&
base_class.is_internal_symbol()))) {
string autoptr_cleanup_func;
if (is_reference_counting (base_class)) {
autoptr_cleanup_func = get_ccode_unref_function (base_class);
@@ -426,8 +426,8 @@ public class Vala.GTypeModule : GErrorModule {
// in addition to the non-ref-countable case in generate_class_declaration.
unowned Class? cl = m.parent_symbol as Class;
if (cl != null && cl.is_compact && get_ccode_unref_function (cl) == get_ccode_name (m)
- && (!context.use_header || decl_space.cfile_type == CCodeFileType.PUBLIC_HEADER
- || (decl_space.cfile_type == CCodeFileType.INTERNAL_HEADER &&
cl.is_internal_symbol()))) {
+ && (context.header_filename == null || decl_space.file_type ==
CCodeFileType.PUBLIC_HEADER
+ || (decl_space.file_type == CCodeFileType.INTERNAL_HEADER &&
cl.is_internal_symbol()))) {
decl_space.add_type_member_declaration (new CCodeIdentifier
("G_DEFINE_AUTOPTR_CLEANUP_FUNC (%s, %s)".printf (get_ccode_name (cl), get_ccode_name (m))));
decl_space.add_type_member_declaration (new CCodeNewline ());
}
diff --git a/compiler/valacompiler.vala b/compiler/valacompiler.vala
index 37d43008d..4cf66f3c5 100644
--- a/compiler/valacompiler.vala
+++ b/compiler/valacompiler.vala
@@ -55,7 +55,6 @@ class Vala.Compiler {
static bool ccode_only;
static bool abi_stability;
static string header_filename;
- static bool use_header;
static string internal_header_filename;
static string internal_vapi_filename;
static string fast_vapi_filename;
@@ -119,7 +118,7 @@ class Vala.Compiler {
{ "api-version", 0, 0, OptionArg.NONE, ref api_version, "Display API version number", null },
{ "ccode", 'C', 0, OptionArg.NONE, ref ccode_only, "Output C code", null },
{ "header", 'H', 0, OptionArg.FILENAME, ref header_filename, "Output C header file", "FILE" },
- { "use-header", 0, 0, OptionArg.NONE, ref use_header, "Use C header file", null },
+ { "use-header", 0, OptionFlags.OPTIONAL_ARG | OptionFlags.NO_ARG, OptionArg.CALLBACK, (void*)
option_deprecated, "Use C header file (DEPRECATED AND IGNORED)", null },
{ "includedir", 0, 0, OptionArg.FILENAME, ref includedir, "Directory used to include the C
header file", "DIRECTORY" },
{ "internal-header", 'h', 0, OptionArg.FILENAME, ref internal_header_filename, "Output
internal C header file", "FILE" },
{ "internal-vapi", 0, 0, OptionArg.FILENAME, ref internal_vapi_filename, "Output vapi with
internal api", "FILE" },
@@ -266,10 +265,6 @@ class Vala.Compiler {
context.abi_stability = abi_stability;
context.compile_only = compile_only;
context.header_filename = header_filename;
- if (header_filename == null && use_header) {
- Report.error (null, "--use-header may only be used in combination with --header");
- }
- context.use_header = use_header;
context.internal_header_filename = internal_header_filename;
context.symbols_filename = symbols_filename;
context.includedir = includedir;
diff --git a/vala/valacodecontext.vala b/vala/valacodecontext.vala
index da07b6f54..6ddcd8f5c 100644
--- a/vala/valacodecontext.vala
+++ b/vala/valacodecontext.vala
@@ -91,8 +91,6 @@ public class Vala.CodeContext {
*/
public string? internal_header_filename { get; set; }
- public bool use_header { get; set; }
-
/**
* Base directory used for header_filename in the VAPIs.
*/
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]