allow ecore to not load system modules.

this won't go to changelog/news as it's mainly internal, I can't see
people wanting to use it except rare cases as edje tools.
This commit is contained in:
Gustavo Sverzut Barbieri 2013-11-14 13:27:19 -02:00
parent a55a8ed3fb
commit 8e362c7ad4
9 changed files with 41 additions and 1 deletions

View File

@ -116,6 +116,8 @@ main(int argc, char **argv)
setlocale(LC_NUMERIC, "C");
ecore_app_no_system_modules();
if (!eina_init())
return -1;

View File

@ -1098,6 +1098,8 @@ main(int argc, char *argv[])
setlocale(LC_NUMERIC, "C");
ecore_app_no_system_modules();
eina_init();
ecore_init();
ecore_evas_init();

View File

@ -113,6 +113,8 @@ main(int argc, char **argv)
setlocale(LC_NUMERIC, "C");
ecore_app_no_system_modules();
if (!eina_init())
return -1;

View File

@ -142,6 +142,9 @@ main(int argc, char **argv)
int i;
setlocale(LC_NUMERIC, "C");
ecore_app_no_system_modules();
if (!eina_init())
exit(-1);
_edje_cc_log_dom = eina_log_domain_register

View File

@ -602,6 +602,8 @@ main(int argc, char **argv)
setlocale(LC_NUMERIC, "C");
ecore_app_no_system_modules();
ecore_init();
eina_init();
edje_init();

View File

@ -1536,6 +1536,8 @@ main(int argc, char **argv)
setlocale(LC_NUMERIC, "C");
ecore_app_no_system_modules();
ecore_init();
ecore_evas_init();
eina_init();

View File

@ -1207,6 +1207,8 @@ main(int argc, char **argv)
void *n;
int k, bytes;
ecore_app_no_system_modules();
eina_init();
eet_init();
ecore_init();

View File

@ -1740,6 +1740,22 @@ EAPI void ecore_app_args_set(int argc, const char **argv);
EAPI void ecore_app_args_get(int *argc, char ***argv);
EAPI void ecore_app_restart(void);
/**
* @brief Do not load system modules for this application.
*
* Ecore will now load platform-specific system modules such as
* power-management, time and locate monitors.
*
* Whenever this function is called @b before ecore_init(), ecore
* won't load such modules.
*
* This may be useful to some command-line utilities, hardly will be
* useful for end-user applications.
*
* @since 1.8
*/
EAPI void ecore_app_no_system_modules(void);
/**
* @}
*/

View File

@ -52,6 +52,8 @@ static FILE *_ecore_memory_statistic_file = NULL;
#endif
#endif
static Eina_Bool _no_system_modules = EINA_FALSE;
Eo *_ecore_parent = NULL;
static const char *_ecore_magic_string_get(Ecore_Magic m);
@ -194,6 +196,12 @@ ecore_system_modules_unload(void)
}
}
EAPI void
ecore_app_no_system_modules(void)
{
_no_system_modules = EINA_TRUE;
}
/**
* @addtogroup Ecore_Init_Group
*
@ -320,7 +328,8 @@ ecore_init(void)
}
#endif
ecore_system_modules_load();
if (!_no_system_modules)
ecore_system_modules_load();
eina_log_timing(_ecore_log_dom,
EINA_LOG_STATE_STOP,