From ab8d877150d00f29f51bb1cdb20613f82cfc071a Mon Sep 17 00:00:00 2001 From: Daniel Zaoui Date: Thu, 13 Feb 2014 17:12:19 +0200 Subject: [PATCH] Eolian/Generator: support legacy as option. For the moment, the option works for C files. Have to add support for H files. --- src/bin/eolian/legacy_generator.c | 8 ++++---- src/bin/eolian/legacy_generator.h | 3 ++- src/bin/eolian/main.c | 8 ++++++-- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/bin/eolian/legacy_generator.c b/src/bin/eolian/legacy_generator.c index 207772859b..099f8b4d16 100644 --- a/src/bin/eolian/legacy_generator.c +++ b/src/bin/eolian/legacy_generator.c @@ -397,7 +397,7 @@ legacy_header_append(const char *classname, int eo_version, Eina_Strbuf *header) } Eina_Bool -legacy_source_generate(const char *classname, int eo_version, Eina_Strbuf *buf) +legacy_source_generate(const char *classname, Eina_Bool legacy, int eo_version, Eina_Strbuf *buf) { const Eina_List *itr; @@ -424,12 +424,12 @@ legacy_source_generate(const char *classname, int eo_version, Eina_Strbuf *buf) if (prop_read) { eo1_bind_func_generate(classname, fn, GET, str_bodyf); - _eapi_func_generate(classname, fn, GET, str_bodyf); + if (legacy) _eapi_func_generate(classname, fn, GET, str_bodyf); } if (prop_write) { eo1_bind_func_generate(classname, fn, SET, str_bodyf); - _eapi_func_generate(classname, fn, SET, str_bodyf); + if (legacy) _eapi_func_generate(classname, fn, SET, str_bodyf); } } @@ -437,7 +437,7 @@ legacy_source_generate(const char *classname, int eo_version, Eina_Strbuf *buf) EINA_LIST_FOREACH(eolian_class_functions_list_get(classname, METHOD_FUNC), itr, fn) { eo1_bind_func_generate(classname, fn, UNRESOLVED, str_bodyf); - _eapi_func_generate(classname, fn, UNRESOLVED, str_bodyf); + if (legacy) _eapi_func_generate(classname, fn, UNRESOLVED, str_bodyf); } eina_strbuf_append(buf, eina_strbuf_string_get(str_bodyf)); diff --git a/src/bin/eolian/legacy_generator.h b/src/bin/eolian/legacy_generator.h index 5f22afa811..39445f30ad 100644 --- a/src/bin/eolian/legacy_generator.h +++ b/src/bin/eolian/legacy_generator.h @@ -41,13 +41,14 @@ Eina_Bool legacy_header_append(const char *classname, int eo_version, Eina_Strbu * code from scratch. * * @param[in] classname class name + * @param[in] legacy indicates if the legacy has to be generated * @param[in] eo_version Eo version to generate * @param[inout] buf buffer to fill * * @return EINA_TRUE on success, EINA_FALSE on error. * */ -Eina_Bool legacy_source_generate(const char *classname, int eo_version, Eina_Strbuf *buf); +Eina_Bool legacy_source_generate(const char *classname, Eina_Bool legacy, int eo_version, Eina_Strbuf *buf); #endif diff --git a/src/bin/eolian/main.c b/src/bin/eolian/main.c index 08d0bae989..ab74a3b246 100644 --- a/src/bin/eolian/main.c +++ b/src/bin/eolian/main.c @@ -10,6 +10,7 @@ #define EO_SUFFIX ".eo" static int eo_version = 0; +static Eina_Bool legacy_support = EINA_FALSE; static Eina_Bool _generate_h_file(char *filename, char *classname, Eina_Bool append) @@ -58,7 +59,7 @@ _generate_c_file(char *filename, char *classname, Eina_Bool append) Eina_Bool ret = EINA_FALSE; Eina_Strbuf *cfile = eina_strbuf_new(); - legacy_source_generate(classname, eo_version, cfile); + legacy_source_generate(classname, legacy_support, eo_version, cfile); FILE* fd = fopen(filename, (append) ? "a" : "w"); if (!fd) @@ -171,6 +172,7 @@ int main(int argc, char **argv) {"ah", required_argument, 0, 3}, {"al", required_argument, 0, 4}, {"gle", required_argument, 0, 5}, + {"legacy", no_argument, 0, 6}, {"include", required_argument, 0, 'I'}, {"class", required_argument, 0, 'c'}, {0, 0, 0, 0} @@ -185,6 +187,7 @@ int main(int argc, char **argv) case 3: h_filename = optarg; happend = EINA_TRUE; break; case 4: leg_filename = optarg; lappend = EINA_TRUE; break; case 5: eoleg_filename = optarg; break; + case 6: legacy_support = EINA_TRUE; break; case 'V': show = EINA_TRUE; break; case 'h': help = EINA_TRUE; break; case 'I': @@ -225,13 +228,14 @@ int main(int argc, char **argv) if (!files || help || !classname) { - printf("Usage: %s [-h/--help] [-V/--verbose] [-I/--include input_dir] [--gh|--gc|--ah] filename [-c/--class] classname \n", argv[0]); + printf("Usage: %s [-h/--help] [-V/--verbose] [-I/--include input_dir] [--legacy] [--gh|--gc|--ah] filename [-c/--class] classname \n", argv[0]); printf(" --eo1/--eo2 Set generator to eo1/eo2 mode. Must be specified\n"); printf(" --gh Generate c header file [.h] for eo class specified by classname\n"); printf(" --gc Generate c source file [.c] for eo class specified by classname\n"); printf(" --ah Append eo class definitions to an existing c header file [.h]\n"); printf(" --al Append legacy function definitions to an existing c header file [.h]\n"); printf(" --gle Generate eo and legacy file [.h]\n"); + printf(" --legacy Generate legacy\n"); return 0; }