Added edi_build command line application for headless operation
This commit is contained in:
parent
5eff36e8e8
commit
75d5ac790c
|
@ -10,6 +10,7 @@
|
||||||
*.gcda
|
*.gcda
|
||||||
|
|
||||||
/src/bin/edi
|
/src/bin/edi
|
||||||
|
/src/bin/edi_build
|
||||||
/src/tests/edi_tests
|
/src/tests/edi_tests
|
||||||
/data/desktop/edi.desktop
|
/data/desktop/edi.desktop
|
||||||
/doc/edi.1
|
/doc/edi.1
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
2014-04-27 ajwillia.ms (Andy Williams)
|
2014-04-27 ajwillia.ms (Andy Williams)
|
||||||
|
|
||||||
* Add simple build functions
|
* Add simple build functions
|
||||||
|
* Create an edi_build binary for command line building
|
||||||
|
|
||||||
2014-03-31 ajwillia.ms (Andy Williams)
|
2014-03-31 ajwillia.ms (Andy Williams)
|
||||||
|
|
||||||
|
|
3
NEWS
3
NEWS
|
@ -1,6 +1,9 @@
|
||||||
|
Changes since Edi project started:
|
||||||
|
----------------------------------
|
||||||
|
|
||||||
pre-1.0 phase 2 "Code aware editor"
|
pre-1.0 phase 2 "Code aware editor"
|
||||||
- Simple build functions
|
- Simple build functions
|
||||||
|
- Added a command line builder application
|
||||||
|
|
||||||
|
|
||||||
pre-1.0 phase 1 "Basic text editing"
|
pre-1.0 phase 1 "Basic text editing"
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
MAINTAINERCLEANFILES = Makefile.in
|
MAINTAINERCLEANFILES = Makefile.in
|
||||||
|
|
||||||
bin_PROGRAMS = edi
|
bin_PROGRAMS = edi edi_build
|
||||||
|
|
||||||
AM_CPPFLAGS = -DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \
|
AM_CPPFLAGS = -DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \
|
||||||
-I$(top_builddir)/src/bin/ \
|
-I$(top_builddir)/src/bin/ \
|
||||||
|
@ -18,6 +18,11 @@ edi_main.c
|
||||||
|
|
||||||
edi_LDADD = @EFL_LIBS@ $(top_builddir)/src/lib/libedi.la
|
edi_LDADD = @EFL_LIBS@ $(top_builddir)/src/lib/libedi.la
|
||||||
|
|
||||||
|
edi_build_SOURCES = \
|
||||||
|
edi_build_main.c
|
||||||
|
|
||||||
|
edi_build_LDADD = @EFL_LIBS@ $(top_builddir)/src/lib/libedi.la
|
||||||
|
|
||||||
localedir = $(datadir)/locale
|
localedir = $(datadir)/locale
|
||||||
DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@
|
DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,117 @@
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
# include "config.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* NOTE: Respecting header order is important for portability.
|
||||||
|
* Always put system first, then EFL, then your public header,
|
||||||
|
* and finally your private one. */
|
||||||
|
|
||||||
|
#include <Ecore_Getopt.h>
|
||||||
|
#include <Eio.h>
|
||||||
|
|
||||||
|
#include "gettext.h"
|
||||||
|
|
||||||
|
#include "Edi.h"
|
||||||
|
|
||||||
|
#include "edi_private.h"
|
||||||
|
|
||||||
|
#define COPYRIGHT "Copyright © 2014 Andy Williams <andy@andyilliams.me> and various contributors (see AUTHORS)."
|
||||||
|
|
||||||
|
static Eina_Bool
|
||||||
|
exe_data(void *d EINA_UNUSED, int t EINA_UNUSED, Ecore_Exe_Event_Data *ev)
|
||||||
|
{
|
||||||
|
Ecore_Exe_Event_Data_Line *el;
|
||||||
|
|
||||||
|
for (el = ev->lines; el && el->line; el++)
|
||||||
|
fprintf(stdout, "%s\n", el->line);
|
||||||
|
|
||||||
|
return ECORE_CALLBACK_RENEW;
|
||||||
|
}
|
||||||
|
|
||||||
|
static Eina_Bool
|
||||||
|
exe_del(void *d EINA_UNUSED, int t EINA_UNUSED, Ecore_Exe_Event_Data *ev)
|
||||||
|
{
|
||||||
|
ecore_main_loop_quit();
|
||||||
|
|
||||||
|
return ECORE_CALLBACK_DONE;
|
||||||
|
}
|
||||||
|
|
||||||
|
static const Ecore_Getopt optdesc = {
|
||||||
|
"edi_build",
|
||||||
|
"%prog [options]",
|
||||||
|
PACKAGE_VERSION,
|
||||||
|
COPYRIGHT,
|
||||||
|
"BSD with advertisement clause",
|
||||||
|
"The EFL IDE builder",
|
||||||
|
EINA_TRUE,
|
||||||
|
{
|
||||||
|
ECORE_GETOPT_LICENSE('L', "license"),
|
||||||
|
ECORE_GETOPT_COPYRIGHT('C', "copyright"),
|
||||||
|
ECORE_GETOPT_VERSION('V', "version"),
|
||||||
|
ECORE_GETOPT_HELP('h', "help"),
|
||||||
|
ECORE_GETOPT_SENTINEL
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
EAPI_MAIN int
|
||||||
|
main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
|
||||||
|
{
|
||||||
|
int args;
|
||||||
|
char path[PATH_MAX];
|
||||||
|
Eina_Bool quit_option = EINA_FALSE;
|
||||||
|
|
||||||
|
Ecore_Getopt_Value values[] = {
|
||||||
|
ECORE_GETOPT_VALUE_BOOL(quit_option),
|
||||||
|
ECORE_GETOPT_VALUE_BOOL(quit_option),
|
||||||
|
ECORE_GETOPT_VALUE_BOOL(quit_option),
|
||||||
|
ECORE_GETOPT_VALUE_BOOL(quit_option),
|
||||||
|
};
|
||||||
|
|
||||||
|
#if ENABLE_NLS
|
||||||
|
setlocale(LC_ALL, "");
|
||||||
|
bindtextdomain(PACKAGE, LOCALEDIR);
|
||||||
|
bind_textdomain_codeset(PACKAGE, "UTF-8");
|
||||||
|
textdomain(PACKAGE);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (!ecore_init())
|
||||||
|
goto exit;
|
||||||
|
edi_init();
|
||||||
|
|
||||||
|
args = ecore_getopt_parse(&optdesc, values, argc, argv);
|
||||||
|
if (args < 0)
|
||||||
|
{
|
||||||
|
EINA_LOG_CRIT("Could not parse arguments.");
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
else if (quit_option)
|
||||||
|
{
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
|
||||||
|
getcwd(path, PATH_MAX);
|
||||||
|
edi_project_set(path);
|
||||||
|
|
||||||
|
if (!edi_builder_can_build())
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Cowardly refusing to build unknown project type.\n");
|
||||||
|
ecore_shutdown();
|
||||||
|
goto exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
ecore_event_handler_add(ECORE_EXE_EVENT_DATA, exe_data, NULL);
|
||||||
|
ecore_event_handler_add(ECORE_EXE_EVENT_ERROR, exe_data, NULL);
|
||||||
|
ecore_event_handler_add(ECORE_EXE_EVENT_DEL, exe_del, NULL);
|
||||||
|
|
||||||
|
edi_builder_build();
|
||||||
|
ecore_main_loop_begin();
|
||||||
|
|
||||||
|
end:
|
||||||
|
edi_shutdown();
|
||||||
|
ecore_shutdown();
|
||||||
|
return EXIT_SUCCESS;
|
||||||
|
|
||||||
|
exit:
|
||||||
|
return EXIT_FAILURE;
|
||||||
|
}
|
||||||
|
|
|
@ -33,6 +33,8 @@
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include <edi_builder.h>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @file
|
* @file
|
||||||
* @brief These routines are used for Edi library interaction.
|
* @brief These routines are used for Edi library interaction.
|
||||||
|
|
Loading…
Reference in New Issue