From: Daniel Kolesa Date: Mon, 12 Oct 2015 10:35:59 +0000 (+0100) Subject: eolian generator: merge legacy and eo header gen entry points X-Git-Tag: v1.16.0-beta2~106 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=89acf82bff2368dd310397fd788aa9db0d872716;p=platform%2Fupstream%2Fefl.git eolian generator: merge legacy and eo header gen entry points --- diff --git a/src/bin/eolian/main.c b/src/bin/eolian/main.c index 76de468..61b2da6 100644 --- a/src/bin/eolian/main.c +++ b/src/bin/eolian/main.c @@ -110,13 +110,13 @@ _write_file(char *filename, const Eina_Strbuf *buffer, Eina_Bool append) } static Eina_Bool -_generate_eo_header_file(char *filename, const char *eo_filename) +_generate_header_file(char *filename, const char *eo_filename, Eina_Bool legacy) { Eina_Bool ret = EINA_FALSE; Eina_Strbuf *buffer = eina_strbuf_new(); - if (!types_header_generate(eo_filename, buffer, EINA_TRUE, EINA_FALSE)) + if (!types_header_generate(eo_filename, buffer, EINA_TRUE, legacy)) { fprintf(stderr, "eolian: could not generate types of '%s'\n", eo_filename); goto end; @@ -138,7 +138,9 @@ _generate_eo_header_file(char *filename, const char *eo_filename) const Eolian_Class *class = eolian_class_get_by_file(eo_filename); if (class) { - if (!eo_header_generate(class, buffer)) + Eina_Bool gret = legacy ? legacy_header_generate(class, buffer) + : eo_header_generate(class, buffer); + if (!gret) { fprintf(stderr, "eolian: could not generate header for '%s'\n", eolian_class_name_get(class)); @@ -146,9 +148,12 @@ _generate_eo_header_file(char *filename, const char *eo_filename) } } - buffer = _include_guard_enclose(_filename_get(filename), NULL, buffer); - if (_write_file(filename, buffer, EINA_FALSE)) - ret = EINA_TRUE; + if (class || !legacy) + { + buffer = _include_guard_enclose(_filename_get(filename), NULL, buffer); + if (_write_file(filename, buffer, EINA_FALSE)) + ret = EINA_TRUE; + } end: eina_strbuf_free(buffer); @@ -245,52 +250,6 @@ _generate_impl_c_file(char *filename, const char *eo_filename) return ret; } -// TODO join with header gen. -static Eina_Bool -_generate_legacy_header_file(char *filename, const char *eo_filename) -{ - Eina_Bool ret = EINA_FALSE; - - Eina_Strbuf *buffer = eina_strbuf_new(); - - if (!types_header_generate(eo_filename, buffer, EINA_TRUE, EINA_TRUE)) - { - fprintf(stderr, "eolian: could not generate types of '%s'\n", eo_filename); - goto end; - } - else - { - buffer = _include_guard_enclose(eo_filename, "TYPES", buffer); - } - - Eina_Strbuf *ctbuf = eina_strbuf_new(); - if (types_class_typedef_generate(eo_filename, ctbuf)) - { - ctbuf = _include_guard_enclose(eo_filename, "CLASS_TYPE", ctbuf); - eina_strbuf_append_char(ctbuf, '\n'); - eina_strbuf_prepend(buffer, eina_strbuf_string_get(ctbuf)); - } - eina_strbuf_free(ctbuf); - - const Eolian_Class *class = eolian_class_get_by_file(eo_filename); - if (class) - { - if (!legacy_header_generate(class, buffer)) - { - fprintf(stderr, "eolian: could not generate header for '%s'\n", - eolian_class_name_get(class)); - goto end; - } - - buffer = _include_guard_enclose(_filename_get(filename), NULL, buffer); - if (_write_file(filename, buffer, EINA_FALSE)) - ret = EINA_TRUE; - } -end: - eina_strbuf_free(buffer); - return ret; -} - enum { NO_WAY_GEN, @@ -429,28 +388,25 @@ int main(int argc, char **argv) case H_GEN: { INF("Generating header file %s\n", output_filename); - if (legacy_support) - ret = ( _generate_legacy_header_file(output_filename, eo_file_basename) ? 0 : 1 ); - else - ret = ( _generate_eo_header_file(output_filename, eo_file_basename) ? 0 : 1 ); + ret = !_generate_header_file(output_filename, eo_file_basename, legacy_support); break; } case H_STUB_GEN: { INF("Generating stubs header file %s\n", output_filename); - ret = _generate_stub_header_file(output_filename, eo_file_basename) ? 0 : 1; + ret = !_generate_stub_header_file(output_filename, eo_file_basename); break; } case C_GEN: { INF("Generating source file %s\n", output_filename); - ret = _generate_c_file(output_filename, eo_file_basename, !!legacy_support)?0:1; + ret = !_generate_c_file(output_filename, eo_file_basename, !!legacy_support); break; } case C_IMPL_GEN: { INF("Generating user source file %s\n", output_filename); - ret = _generate_impl_c_file(output_filename, eo_file_basename) ? 0 : 1; + ret = !_generate_impl_c_file(output_filename, eo_file_basename); break; } default: