eolian: new API: eolian_system_directory_scan, use it
This commit is contained in:
parent
e42f319d00
commit
5168297fdb
|
@ -17,7 +17,9 @@ lib_eolian_libeolian_la_SOURCES = \
|
|||
lib/eolian/eolian_database.c \
|
||||
lib/eolian/eolian_database.h
|
||||
|
||||
lib_eolian_libeolian_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @EOLIAN_CFLAGS@
|
||||
lib_eolian_libeolian_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @EOLIAN_CFLAGS@ \
|
||||
-DPACKAGE_DATA_DIR=\"$(datadir)/eolian\"
|
||||
|
||||
lib_eolian_libeolian_la_LIBADD = @EOLIAN_LIBS@
|
||||
lib_eolian_libeolian_la_DEPENDENCIES = @EOLIAN_INTERNAL_LIBS@
|
||||
lib_eolian_libeolian_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@
|
||||
|
|
|
@ -321,6 +321,9 @@ int main(int argc, char **argv)
|
|||
goto end;
|
||||
}
|
||||
|
||||
if (!getenv("EFL_RUN_IN_TREE"))
|
||||
eolian_system_directory_scan();
|
||||
|
||||
eolian_all_eot_files_parse();
|
||||
|
||||
const char *filename;
|
||||
|
|
|
@ -198,6 +198,10 @@ database_load(options_type const& opts)
|
|||
<< "Couldn't load eolian from '" << src << "'.";
|
||||
}
|
||||
}
|
||||
if (!getenv("EFL_RUN_IN_TREE"))
|
||||
{
|
||||
eolian_system_directory_scan();
|
||||
}
|
||||
if (!::eolian_all_eot_files_parse())
|
||||
{
|
||||
EINA_CXX_DOM_LOG_ERR(eolian_cxx::domain)
|
||||
|
|
|
@ -168,10 +168,24 @@ EAPI int eolian_shutdown(void);
|
|||
* @param[in] dir the directory to scan
|
||||
* @return EINA_TRUE on success, EINA_FALSE otherwise.
|
||||
*
|
||||
* @see eolian_system_directory_scan
|
||||
*
|
||||
* @ingroup Eolian
|
||||
*/
|
||||
EAPI Eina_Bool eolian_directory_scan(const char *dir);
|
||||
|
||||
/*
|
||||
* @brief Scan the system directory (recursively) and search for .eo and
|
||||
* .eot files.
|
||||
*
|
||||
* @return EINA_TRUE on success, EINA_FALSE otherwise.
|
||||
*
|
||||
* @see eolian_directory_scan
|
||||
*
|
||||
* @ingroup Eolian
|
||||
*/
|
||||
EAPI Eina_Bool eolian_system_directory_scan();
|
||||
|
||||
/*
|
||||
* @brief Force parsing of all the .eo files located in the directories
|
||||
* given in eolian_directory_scan..
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
static int _eolian_init_counter = 0;
|
||||
int _eolian_log_dom = -1;
|
||||
Eina_Prefix *_eolian_prefix = NULL;
|
||||
|
||||
EAPI int eolian_init(void)
|
||||
{
|
||||
|
@ -22,6 +23,15 @@ EAPI int eolian_init(void)
|
|||
EINA_LOG_STATE_INIT);
|
||||
|
||||
INF("Init");
|
||||
|
||||
_eolian_prefix = eina_prefix_new(NULL, eolian_init, "EOLIAN", "eolian",
|
||||
NULL, "", "", PACKAGE_DATA_DIR, "");
|
||||
if (!_eolian_prefix)
|
||||
{
|
||||
ERR("Could not initialize the Eolian prefix.");
|
||||
return EINA_FALSE;
|
||||
}
|
||||
|
||||
database_init();
|
||||
eo_lexer_init();
|
||||
return ++_eolian_init_counter;
|
||||
|
@ -45,6 +55,8 @@ EAPI int eolian_shutdown(void)
|
|||
|
||||
eo_lexer_shutdown();
|
||||
database_shutdown();
|
||||
eina_prefix_free(_eolian_prefix);
|
||||
_eolian_prefix = NULL;
|
||||
|
||||
eina_log_domain_unregister(_eolian_log_dom);
|
||||
_eolian_log_dom = -1;
|
||||
|
|
|
@ -1582,6 +1582,18 @@ eolian_directory_scan(const char *dir)
|
|||
return EINA_TRUE;
|
||||
}
|
||||
|
||||
EAPI Eina_Bool
|
||||
eolian_system_directory_scan()
|
||||
{
|
||||
Eina_Bool ret;
|
||||
Eina_Strbuf *buf = eina_strbuf_new();
|
||||
eina_strbuf_append(buf, eina_prefix_data_get(_eolian_prefix));
|
||||
eina_strbuf_append(buf, "/include");
|
||||
ret = eolian_directory_scan(eina_strbuf_string_get(buf));
|
||||
eina_strbuf_free(buf);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static char *
|
||||
_eolian_class_to_filename(const char *filename)
|
||||
{
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
#include <Eolian.h>
|
||||
|
||||
extern int _eolian_log_dom;
|
||||
extern Eina_Prefix *_eolian_prefix;
|
||||
|
||||
#ifdef CRI
|
||||
#undef CRI
|
||||
|
|
Loading…
Reference in New Issue