rimmed pushed a commit to branch master.

http://git.enlightenment.org/tools/eflete.git/commit/?id=b834d24757cdd3ca18eb0c70b2b951fd3b25b952

commit b834d24757cdd3ca18eb0c70b2b951fd3b25b952
Author: Vyacheslav Reutskiy <v.reuts...@samsung.com>
Date:   Wed Sep 21 17:47:51 2016 +0300

    project manager2: adaptate export release edj file
    
    Change-Id: I34c6abd13a571d19e35bef3d7e75ab4f22b99a2e
---
 src/bin/project_manager/project_manager2.c | 96 ++++++++++++++++++++++++++++--
 src/bin/project_manager/project_manager2.h |  3 +-
 2 files changed, 92 insertions(+), 7 deletions(-)

diff --git a/src/bin/project_manager/project_manager2.c 
b/src/bin/project_manager/project_manager2.c
index 94d56cc..f716c7e 100644
--- a/src/bin/project_manager/project_manager2.c
+++ b/src/bin/project_manager/project_manager2.c
@@ -19,7 +19,6 @@
 
 #define _GNU_SOURCE
 #include "project_manager2.h"
-#include "resource_manager2.h"
 #include <fcntl.h>
 
 #ifndef _WIN32
@@ -72,7 +71,7 @@ struct _Project_Process_Data
    /** The temporary directory. Should be stored here for a correct clean 
temporary files. */
    Eina_Tmpstr *tmp_dirname;
    /** The group, which source should be exported into edc. */
-   Group *group;
+   Group2 *group;
    /** Temporary path, for deliver works path between pipes and threads */
    Eina_Stringshare *tmp_path;
 
@@ -1038,7 +1037,7 @@ _group_export_finish_handler(void *data,
 
 void
 pm_group_source_code_export(Project *project,
-                            Group *group,
+                            Group2 *group,
                             const char *path,
                             PM_Project_Progress_Cb func_progress,
                             PM_Project_End_Cb func_end,
@@ -1059,7 +1058,7 @@ pm_group_source_code_export(Project *project,
    ppd->result = PM_PROJECT_LAST;
 
    snprintf(buf, sizeof(buf),
-            "eflete_exporter --edj %s --path %s -g %s -s", project->saved_edj, 
path, group->name);
+            "eflete_exporter --edj %s --path %s -g %s -s", project->saved_edj, 
path, group->common.name);
 
    ecore_exe_pipe_run(buf, FLAGS, NULL);
 
@@ -1108,6 +1107,10 @@ _develop_export_finish_handler(void *data,
    Ecore_Exe_Event_Del *edje_pick_exit = (Ecore_Exe_Event_Del *)event_info;
    char buf[PATH_MAX];
 
+   ecore_event_handler_del(ppd->del_handler);
+   ecore_event_handler_del(ppd->error_handler);
+   ecore_event_handler_del(ppd->data_handler);
+
    if (edje_pick_exit->exit_code != 0)
      {
         ppd->result = PM_PROJECT_ERROR;
@@ -1142,7 +1145,7 @@ pm_project_develop_export(Project *project,
    Project_Process_Data *ppd;
    Eina_Strbuf *cmd;
    Eina_List *l;
-   Group *group;
+   Group2 *group;
 
    assert(project != NULL);
    assert(path != NULL);
@@ -1170,7 +1173,7 @@ pm_project_develop_export(Project *project,
    eina_strbuf_append_printf(cmd, " -i %s", project->dev);
 
    EINA_LIST_FOREACH(groups, l, group)
-     eina_strbuf_append_printf(cmd, " -g %s", group->name);
+     eina_strbuf_append_printf(cmd, " -g %s", group->common.name);
 
    DBG("Run command for export: %s", eina_strbuf_string_get(cmd));
    ecore_exe_pipe_run(eina_strbuf_string_get(cmd), FLAGS, NULL);
@@ -1181,3 +1184,84 @@ pm_project_develop_export(Project *project,
 
    return;
 }
+
+static Eina_Bool
+_release_export_build_finish_handler(void *data,
+                                     int type __UNUSED__,
+                                     void *event_info __UNUSED__)
+{
+   Project_Process_Data *ppd = data;
+
+   ppd->result = PM_PROJECT_SUCCESS;
+   _end_send(ppd);
+   return ECORE_CALLBACK_DONE;
+}
+
+static Eina_Bool
+_release_export_finish_handler(void *data,
+                             int type __UNUSED__,
+                             void *event_info __UNUSED__)
+{
+   Project_Process_Data *ppd = data;
+   Eina_Strbuf *buf;
+   char folder[PATH_MAX];
+
+   ecore_event_handler_del(ppd->del_handler);
+   ecore_event_handler_del(ppd->error_handler);
+   ecore_event_handler_del(ppd->data_handler);
+
+   buf = eina_strbuf_new();
+   eina_strbuf_append_printf(buf, "edje_cc -v %s %s", ppd->edc, ppd->edj);
+   snprintf(folder, sizeof(folder), "%s/images", ppd->tmp_dirname);
+   if (ecore_file_exists(folder))
+     eina_strbuf_append_printf(buf, " -id %s", folder);
+   snprintf(folder, sizeof(folder), "%s/sounds", ppd->tmp_dirname);
+   if (ecore_file_exists(folder))
+     eina_strbuf_append_printf(buf, " -sd %s", folder);
+   snprintf(folder, sizeof(folder), "%s/fonts", ppd->tmp_dirname);
+   if (ecore_file_exists(folder))
+     eina_strbuf_append_printf(buf, " -fd %s", folder);
+   ecore_exe_pipe_run(eina_strbuf_string_get(buf), FLAGS, NULL);
+
+   ppd->data_handler = ecore_event_handler_add(ECORE_EXE_EVENT_DATA, 
_exe_output_handler, ppd);
+   ppd->error_handler = ecore_event_handler_add(ECORE_EXE_EVENT_ERROR, 
_exe_output_handler, ppd);
+   ppd->del_handler = ecore_event_handler_add(ECORE_EXE_EVENT_DEL, 
_release_export_build_finish_handler, ppd);
+
+   eina_strbuf_free(buf);
+   return ECORE_CALLBACK_DONE;
+}
+
+void
+pm_project_release_export(Project *project,
+                          const char *path,
+                          PM_Project_Progress_Cb func_progress,
+                          PM_Project_End_Cb func_end,
+                          const void *data)
+{
+   Project_Process_Data *ppd;
+   char buf[PATH_MAX];
+
+   assert(project != NULL);
+   assert(path != NULL);
+
+   ppd = mem_calloc(1, sizeof(Project_Process_Data));
+   ppd->path = eina_stringshare_add(path);
+   ppd->project = project;
+   ppd->func_progress = func_progress;
+   ppd->func_end = func_end;
+   ppd->edj = eina_stringshare_add(path);
+   ppd->data = (void *)data;
+   ppd->result = PM_PROJECT_LAST;
+
+   CRIT_ON_FAIL(editor_save_all(project->global_object));
+
+   eina_file_mkdtemp("eflete_export_XXXXXX", &ppd->tmp_dirname);
+   snprintf(buf, sizeof(buf),
+            "eflete_exporter --edj %s --path %s -s", ppd->project->saved_edj, 
ppd->tmp_dirname);
+   ppd->edc = eina_stringshare_printf("%s/generated.edc", ppd->tmp_dirname);
+   ecore_exe_pipe_run(buf, FLAGS, NULL);
+
+   ppd->data_handler = ecore_event_handler_add(ECORE_EXE_EVENT_DATA, 
_exe_output_handler, ppd);
+   ppd->error_handler = ecore_event_handler_add(ECORE_EXE_EVENT_ERROR, 
_exe_error_handler, ppd);
+   ppd->del_handler = ecore_event_handler_add(ECORE_EXE_EVENT_DEL, 
_release_export_finish_handler, ppd);
+}
diff --git a/src/bin/project_manager/project_manager2.h 
b/src/bin/project_manager/project_manager2.h
index 213e2b7..0b3d54e 100644
--- a/src/bin/project_manager/project_manager2.h
+++ b/src/bin/project_manager/project_manager2.h
@@ -35,6 +35,7 @@
 
 #include "eflete.h"
 #include "group_manager.h"
+#include "resource_manager2.h"
 
 /* don't forget to update on major changes */
 #define PROJECT_FILE_VERSION 5
@@ -348,7 +349,7 @@ pm_project_meta_data_set(Project *project,
  */
 void
 pm_group_source_code_export(Project *project,
-                            Group *group,
+                            Group2 *group,
                             const char *path,
                             PM_Project_Progress_Cb func_progress,
                             PM_Project_End_Cb func_end,

-- 


Reply via email to