cedric pushed a commit to branch master.

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

commit 4d41f95106bc00e9e59eadca6ecac516a576bd2a
Author: Cedric Bail <ced...@osg.samsung.com>
Date:   Thu Nov 9 14:33:15 2017 -0800

    elementary: make elm_init and elm_shutdown optional in EFL_MAIN.
---
 src/lib/elementary/efl_general.h | 20 ++++++++++++++++----
 src/lib/elementary/elm_general.h |  2 ++
 2 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/src/lib/elementary/efl_general.h b/src/lib/elementary/efl_general.h
index 9d7171b05f..4fd4a26ad7 100644
--- a/src/lib/elementary/efl_general.h
+++ b/src/lib/elementary/efl_general.h
@@ -24,6 +24,18 @@
 # define _EFL_BUILD_ID NULL
 #endif
 
+#define __EFL_MAIN_CONSTRUCTOR                  \
+  __EFL_UI(elm_init(argc, argv);)
+
+#define __EFL_MAIN_DESTRUCTOR                   \
+  __EFL_UI(elm_shutdown();)
+
+#ifdef __EFL_UI_IS_REQUIRED
+# define __EFL_UI(...) __VA_ARGS__
+#else
+# define __EFL_UI(...)
+#endif
+
 #define _EFL_APP_VERSION_SET()                                          \
   do {                                                                  \
      if (efl_build_version_set)                                         \
@@ -40,10 +52,10 @@
      ecore_init();                                                      \
      efl_event_callback_add(ecore_main_loop_get(), EFL_LOOP_EVENT_ARGUMENTS, 
efl_main, NULL); \
      ecore_init_ex(argc, argv);                                         \
-     elm_init(argc, argv);                                              \
+     __EFL_MAIN_CONSTRUCTOR;                                            \
      ret__ = efl_loop_begin(ecore_main_loop_get());                     \
      real__ = efl_loop_exit_code_process(ret__);                        \
-     elm_shutdown();                                                    \
+     __EFL_MAIN_DESTRUCTOR;                                             \
      ecore_shutdown_ex();                                               \
      ecore_shutdown();                                                  \
      return real__;                                                     \
@@ -64,10 +76,10 @@
      ecore_init();                                                      \
      efl_event_callback_array_add(ecore_main_loop_get(), _efl_main_ex(), 
NULL); \
      ecore_init_ex(argc, argv);                                         \
-     elm_init(argc, argv);                                              \
+     __EFL_MAIN_CONSTRUCTOR;                                            \
      ret__ = efl_loop_begin(ecore_main_loop_get());                     \
      real__ = efl_loop_exit_code_process(ret__);                        \
-     elm_shutdown();                                                    \
+     __EFL_MAIN_DESTRUCTOR;                                             \
      ecore_shutdown_ex();                                               \
      ecore_shutdown();                                                  \
      return real__;                                                     \
diff --git a/src/lib/elementary/elm_general.h b/src/lib/elementary/elm_general.h
index 5645bf471f..be657e1660 100644
--- a/src/lib/elementary/elm_general.h
+++ b/src/lib/elementary/elm_general.h
@@ -96,6 +96,8 @@ extern EAPI double _elm_startup_time;
 #define ELM_MAIN() int main(int argc, char **argv) { int ret__; 
_elm_startup_time = ecore_time_unix_get(); ret__ = 
elm_quicklaunch_fallback(argc, argv); elm_shutdown(); return ret__; }
 #endif
 
+#define __EFL_UI_IS_REQUIRED
+
 #include "Efl_Core.h"
 #include "efl_general.h"
 

-- 


Reply via email to