jaehyun pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=d1dd3c30b91fd1015a157690f5678fc0520bd23c

commit d1dd3c30b91fd1015a157690f5678fc0520bd23c
Author: Yeongjong Lee <yj34....@samsung.com>
Date:   Mon Sep 30 13:52:45 2019 +0900

    eolian_mono: Respect beta for enum
    
    Summary: this prevent generating beta enum with `-Dmono-beta=false`.
    
    Test Plan: meson setup -Dbindings=mono,cxx -Dmono-beta=false
    
    Reviewers: lauromoura, Jaehyun_Cho
    
    Reviewed By: Jaehyun_Cho
    
    Subscribers: cedric, #reviewers, #committers
    
    Tags: #efl
    
    Differential Revision: https://phab.enlightenment.org/D10245
---
 src/bin/eolian_mono/eolian/mono/enum_definition.hh | 3 +++
 src/lib/eolian_cxx/grammar/klass_def.hpp           | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/bin/eolian_mono/eolian/mono/enum_definition.hh 
b/src/bin/eolian_mono/eolian/mono/enum_definition.hh
index c5ab79ae66..56560afcf2 100644
--- a/src/bin/eolian_mono/eolian/mono/enum_definition.hh
+++ b/src/bin/eolian_mono/eolian/mono/enum_definition.hh
@@ -17,6 +17,9 @@ struct enum_definition_generator
   template <typename OutputIterator, typename Context>
   bool generate(OutputIterator sink, attributes::enum_def const& enum_, 
Context const& context) const
   {
+     if(enum_.is_beta)
+       return true;
+
      if(!name_helpers::open_namespaces(sink, enum_.namespaces, context))
        return false;
 
diff --git a/src/lib/eolian_cxx/grammar/klass_def.hpp 
b/src/lib/eolian_cxx/grammar/klass_def.hpp
index 81f40d3ba5..d0de5db39b 100644
--- a/src/lib/eolian_cxx/grammar/klass_def.hpp
+++ b/src/lib/eolian_cxx/grammar/klass_def.hpp
@@ -1617,6 +1617,7 @@ struct enum_def
   std::vector<std::string> namespaces;
   std::vector<enum_value_def> fields;
   documentation_def documentation;
+  bool is_beta;
 
   enum_def(Eolian_Typedecl const* enum_obj, Eolian_Unit const* unit)
   {
@@ -1634,6 +1635,7 @@ struct enum_def
           enum_value_def field_def(&*field_iterator, unit);
           this->fields.push_back(field_def);
        }
+     is_beta = eolian_object_is_beta(EOLIAN_OBJECT(enum_obj));
 
      documentation = ::eolian_typedecl_documentation_get(enum_obj);
   }

-- 


Reply via email to