eolian: strict validation for EFL (errors by default)
authorDaniel Kolesa <d.kolesa@osg.samsung.com>
Wed, 17 Feb 2016 13:00:41 +0000 (13:00 +0000)
committerDaniel Kolesa <d.kolesa@osg.samsung.com>
Wed, 17 Feb 2016 13:00:41 +0000 (13:00 +0000)
src/Makefile_Eolian_Helper.am
src/lib/eolian/database_validate.c

index 22b09d6..9159cf8 100644 (file)
@@ -15,21 +15,21 @@ SUFFIXES = .eo .eo.c .eo.h .eo.legacy.h .eot .eot.h
 %.eo.c: %.eo ${_EOLIAN_GEN_DEP}
        $(AM_V_EOL) \
        $(MKDIR_P) $(dir $@); \
-       $(EOLIAN_GEN) --legacy --silent-types $(EOLIAN_FLAGS) --gc -o $@ $<
+       EOLIAN_VALIDATE_STRICT=1 $(EOLIAN_GEN) --legacy $(EOLIAN_FLAGS) --gc -o $@ $<
 
 %.eo.h: %.eo ${_EOLIAN_GEN_DEP}
        $(AM_V_EOL) \
        $(MKDIR_P) $(dir $@); \
-       EOLIAN_VERBOSE_TYPES=1 $(EOLIAN_GEN) $(EOLIAN_FLAGS) --gh -o $@ $<
+       EOLIAN_VALIDATE_STRICT=1 $(EOLIAN_GEN) $(EOLIAN_FLAGS) --gh -o $@ $<
 
 %.eot.h: %.eot ${_EOLIAN_GEN_DEP}
        $(AM_V_EOL) \
        $(MKDIR_P) $(dir $@); \
-       EOLIAN_VERBOSE_TYPES=1 $(EOLIAN_GEN) $(EOLIAN_FLAGS) --gh -o $@ $<
+       EOLIAN_VALIDATE_STRICT=1 $(EOLIAN_GEN) $(EOLIAN_FLAGS) --gh -o $@ $<
 
 %.eo.legacy.h: %.eo ${_EOLIAN_GEN_DEP}
        $(AM_V_EOL) \
        $(MKDIR_P) $(dir $@); \
-       $(EOLIAN_GEN) --legacy --silent-types $(EOLIAN_FLAGS) --gh -o $@ $<
+       EOLIAN_VALIDATE_STRICT=1 $(EOLIAN_GEN) --legacy $(EOLIAN_FLAGS) --gh -o $@ $<
 
 CLEANFILES += $(BUILT_SOURCES)
index 381564d..2a44a3d 100644 (file)
@@ -174,9 +174,10 @@ _ef_map_cb(const Eina_Hash *hash EINA_UNUSED, const void *key EINA_UNUSED,
 static Eina_Bool
 _type_error(const Validator *vs, const Eolian_Type *tp, const char *msg)
 {
+   Eina_Bool weak = !getenv("EOLIAN_VALIDATE_STRICT");
    if (vs->silent_types)
-     return EINA_FALSE;
-   if (getenv("EOLIAN_VERBOSE_TYPES"))
+     return weak;
+   if (!weak)
      {
         fprintf(stderr, "eolian:%s:%d:%d: %s\n", tp->base.file, tp->base.line,
                 tp->base.column, msg);
@@ -184,7 +185,7 @@ _type_error(const Validator *vs, const Eolian_Type *tp, const char *msg)
      }
    eina_log_print(_eolian_log_dom, EINA_LOG_LEVEL_WARN, tp->base.file, "",
                   tp->base.line, "%s at column %d", msg, tp->base.column);
-   return EINA_FALSE;
+   return EINA_TRUE;
 }
 
 static Eina_Bool
@@ -212,8 +213,7 @@ _validate_type(const Validator *vs, const Eolian_Type *tp)
              {
                 char buf[256];
                 snprintf(buf, sizeof(buf), "undefined type %s", tp->full_name);
-                _type_error(vs, tp, buf);
-                return EINA_TRUE; /* for now only warn */
+                return _type_error(vs, tp, buf);
              }
            return _validate_type(vs, tpp);
         }
@@ -246,7 +246,7 @@ _validate_type(const Validator *vs, const Eolian_Type *tp)
                 char buf[256];
                 snprintf(buf, sizeof(buf), "undefined class %s "
                          "(likely wrong namespacing)", tp->full_name);
-                _type_error(vs, tp, buf);
+                return _type_error(vs, tp, buf);
              }
            return EINA_TRUE;
         }