Merge branch 'master' into devs/hermet/lottie

This commit is contained in:
Hermet Park 2019-05-09 19:31:41 +09:00
commit 3be39cef25
27 changed files with 227 additions and 199 deletions

View File

@ -298,6 +298,7 @@ if test "x${have_win32}" = "xyes" ; then
# autotools macro and CXX is always set to g++ even if
# it's not found. So we are using an internal variable
# that does the work for now, may get broken in the future.
AC_DEFINE([_POSIX_C_SOURCE], [200809L], [Define the POSIX version])
if test "x${ac_ct_CXX}" = "x" -a "x${CXX}" = "xg++"; then
AC_MSG_ERROR([efl requires a C++ compiler got ${ac_ct_CXX} and ${CXX}.])
fi

View File

@ -21,6 +21,7 @@ group { "efl/navigation_layout";
relative: 0.0 1.0;
}
rel2.to_x: "base";
align: 0.5 0.0;
}
}
}

View File

@ -102,6 +102,7 @@ foreach lang : ['c', 'objc', 'cpp']
add_global_arguments('-DEFL_BUILD=1', language: lang)
add_global_arguments('-DELM_INTERNAL_API_ARGESFSDFEFC=1', language: lang)
if sys_windows == true
add_global_arguments('-D_POSIX_C_SOURCE=200809L', language: lang)
if (get_option('windows-version') == 'vista')
add_global_arguments('-DWINVER=0x060', language: lang)
add_global_arguments('-D_WIN32_WINNT=0x0600', language: lang)

View File

@ -140,15 +140,7 @@ lib/evas/canvas/evas_canvas3d_node.eo.cs \
lib/evas/canvas/evas_canvas3d_object.eo.cs \
lib/evas/canvas/evas_canvas3d_primitive.eo.cs \
lib/evas/canvas/evas_canvas3d_scene.eo.cs \
lib/evas/canvas/evas_canvas3d_texture.eo.cs \
lib/evas/canvas/efl_canvas_vg_object.eo.cs \
lib/evas/canvas/efl_vg.eo.cs \
lib/evas/canvas/efl_vg_container.eo.cs \
lib/evas/canvas/efl_vg_gradient.eo.cs \
lib/evas/canvas/efl_vg_gradient_radial.eo.cs \
lib/evas/canvas/efl_vg_gradient_linear.eo.cs \
lib/evas/canvas/efl_vg_root_node.eo.cs \
lib/evas/canvas/efl_vg_shape.eo.cs
lib/evas/canvas/evas_canvas3d_texture.eo.cs
efl_eolian_blacklisted_files = \
lib/efl/interfaces/efl_io_buffer.eo.cs \

View File

@ -17,6 +17,10 @@
# include <alloca.h>
#endif
#ifdef _WIN32
# include <direct.h> /* getcwd */
#endif
#ifdef HAVE_ENVIRON
extern char **environ;
#endif

View File

@ -282,7 +282,7 @@ inline std::string property_managed_name(attributes::property_def const& propert
inline std::string managed_part_name(attributes::part_def const& part)
{
std::vector<std::string> names = utils::split(part.name, '_');
return utils::to_pascal_case(names);
return utils::to_pascal_case(names) + "Part";
}
// Class name translation (interface/concrete/inherit/etc)

View File

@ -145,9 +145,11 @@ _blend_mask_add(int count, const SW_FT_Span *spans, void *user_data)
RGBA_Comp_Func_Solid comp_func = efl_draw_func_solid_span_get(sd->op, color);
uint32_t *mbuffer = mask->pixels.u32;
int tsize = sd->raster_buffer->generic->w;
uint32_t *ttarget = alloca(sizeof(uint32_t) * tsize);
while (count--)
{
uint32_t *ttarget = alloca(sizeof(uint32_t) * spans->len);
memset(ttarget, 0x00, sizeof(uint32_t) * spans->len);
uint32_t *mtarget = mbuffer + ((mask->generic->w * spans->y) + spans->x);
comp_func(ttarget, spans->len, color, spans->coverage);
@ -234,9 +236,11 @@ _blend_mask_diff(int count, const SW_FT_Span *spans, void *user_data)
RGBA_Comp_Func_Solid comp_func = efl_draw_func_solid_span_get(sd->op, color);
uint32_t *mbuffer = mask->pixels.u32;
int tsize = sd->raster_buffer->generic->w;
uint32_t *ttarget = alloca(sizeof(uint32_t) * tsize);
while (count--)
{
uint32_t *ttarget = alloca(sizeof(uint32_t) * spans->len);
memset(ttarget, 0x00, sizeof(uint32_t) * spans->len);
uint32_t *mtarget = mbuffer + ((mask->generic->w * spans->y) + spans->x);
comp_func(ttarget, spans->len, color, spans->coverage);
@ -293,6 +297,120 @@ _blend_gradient(int count, const SW_FT_Span *spans, void *user_data)
}
}
static void
_blend_gradient_alpha(int count, const SW_FT_Span *spans, void *user_data)
{
RGBA_Comp_Func comp_func;
Span_Data *data = (Span_Data *)(user_data);
src_fetch fetchfunc = NULL;
uint32_t *buffer;
const int pix_stride = data->raster_buffer->stride / 4;
uint32_t gradientbuffer[BLEND_GRADIENT_BUFFER_SIZE];
// FIXME: Get the proper composition function using ,color, ECTOR_OP etc.
if (data->type == LinearGradient) fetchfunc = &fetch_linear_gradient;
if (data->type == RadialGradient) fetchfunc = &fetch_radial_gradient;
if (!fetchfunc)
return;
Ector_Software_Buffer_Base_Data *mask = data->mask;
uint32_t *mbuffer = mask->pixels.u32;
//Temp buffer for intermediate processing
uint32_t *tbuffer = malloc(sizeof(uint32_t) * data->raster_buffer->generic->w);
comp_func = efl_draw_func_span_get(data->op, data->mul_col, data->gradient->alpha);
// move to the offset location
buffer = data->raster_buffer->pixels.u32 + ((pix_stride * data->offy) + data->offx);
while (count--)
{
uint32_t *target = buffer + ((data->raster_buffer->generic->w * spans->y) + spans->x);
uint32_t *mtarget = mbuffer + ((mask->generic->w * spans->y) + spans->x);
uint32_t *temp = tbuffer;
int length = spans->len;
memset(temp, 0x00, sizeof(uint32_t) * spans->len);
while (length)
{
int l = MIN(length, BLEND_GRADIENT_BUFFER_SIZE);
fetchfunc(gradientbuffer, data, spans->y, spans->x, l);
comp_func(temp, gradientbuffer, l, data->mul_col, spans->coverage);
for (int i = 0; i < l; i++)
{
*temp = draw_mul_256(((*mtarget)>>24), *temp);
int alpha = 255 - ((*temp) >> 24);
*target = *temp + draw_mul_256(alpha, *target);
++temp;
++mtarget;
++target;
}
length -= l;
}
++spans;
}
free(tbuffer);
}
static void
_blend_gradient_alpha_inv(int count, const SW_FT_Span *spans, void *user_data)
{
RGBA_Comp_Func comp_func;
Span_Data *data = (Span_Data *)(user_data);
src_fetch fetchfunc = NULL;
uint32_t *buffer;
const int pix_stride = data->raster_buffer->stride / 4;
uint32_t gradientbuffer[BLEND_GRADIENT_BUFFER_SIZE];
// FIXME: Get the proper composition function using ,color, ECTOR_OP etc.
if (data->type == LinearGradient) fetchfunc = &fetch_linear_gradient;
if (data->type == RadialGradient) fetchfunc = &fetch_radial_gradient;
if (!fetchfunc)
return;
Ector_Software_Buffer_Base_Data *mask = data->mask;
uint32_t *mbuffer = mask->pixels.u32;
//Temp buffer for intermediate processing
uint32_t *tbuffer = malloc(sizeof(uint32_t) * data->raster_buffer->generic->w);
comp_func = efl_draw_func_span_get(data->op, data->mul_col, data->gradient->alpha);
// move to the offset location
buffer = data->raster_buffer->pixels.u32 + ((pix_stride * data->offy) + data->offx);
while (count--)
{
uint32_t *target = buffer + ((data->raster_buffer->generic->w * spans->y) + spans->x);
uint32_t *mtarget = mbuffer + ((mask->generic->w * spans->y) + spans->x);
uint32_t *temp = tbuffer;
int length = spans->len;
memset(temp, 0x00, sizeof(uint32_t) * spans->len);
while (length)
{
int l = MIN(length, BLEND_GRADIENT_BUFFER_SIZE);
fetchfunc(gradientbuffer, data, spans->y, spans->x, l);
comp_func(temp, gradientbuffer, l, data->mul_col, spans->coverage);
for (int i = 0; i < l; i++)
{
if (*mtarget)
*temp = draw_mul_256((255 - ((*mtarget)>>24)), *temp);
int alpha = 255 - ((*temp) >> 24);
*target = *temp + draw_mul_256(alpha, *target);
++temp;
++mtarget;
++target;
}
length -= l;
}
++spans;
}
free(tbuffer);
}
/*!
\internal
spans must be sorted on y
@ -485,46 +603,49 @@ static void
_adjust_span_fill_methods(Span_Data *spdata)
{
//Blending Function
switch(spdata->type)
if (spdata->mask)
{
case None:
spdata->unclipped_blend = NULL;
break;
case Solid:
switch (spdata->mask_op)
{
if (spdata->mask)
{
switch (spdata->mask_op)
{
default:
case EFL_CANVAS_VG_NODE_BLEND_TYPE_ALPHA:
spdata->unclipped_blend = &_blend_alpha;
break;
case EFL_CANVAS_VG_NODE_BLEND_TYPE_ALPHA_INV:
spdata->unclipped_blend = &_blend_alpha_inv;
break;
case EFL_CANVAS_VG_NODE_BLEND_TYPE_MASK_ADD:
spdata->unclipped_blend = &_blend_mask_add;
break;
case EFL_CANVAS_VG_NODE_BLEND_TYPE_MASK_SUBSTRACT:
spdata->unclipped_blend = &_blend_mask_sub;
break;
case EFL_CANVAS_VG_NODE_BLEND_TYPE_MASK_INTERSECT:
spdata->unclipped_blend = &_blend_mask_ins;
break;
case EFL_CANVAS_VG_NODE_BLEND_TYPE_MASK_DIFFERENCE:
spdata->unclipped_blend = &_blend_mask_diff;
break;
}
}
else
spdata->unclipped_blend = &_blend_argb;
}
break;
case LinearGradient:
case RadialGradient:
default:
case EFL_CANVAS_VG_NODE_BLEND_TYPE_ALPHA:
if (spdata->type == Solid)
spdata->unclipped_blend = &_blend_alpha;
else if (spdata->type == LinearGradient || spdata->type == RadialGradient)
spdata->unclipped_blend = &_blend_gradient_alpha;
else //None
spdata->unclipped_blend = NULL;
break;
case EFL_CANVAS_VG_NODE_BLEND_TYPE_ALPHA_INV:
if (spdata->type == Solid)
spdata->unclipped_blend = &_blend_alpha_inv;
else if (spdata->type == LinearGradient || spdata->type == RadialGradient)
spdata->unclipped_blend = &_blend_gradient_alpha_inv;
else //None
spdata->unclipped_blend = NULL;
break;
case EFL_CANVAS_VG_NODE_BLEND_TYPE_MASK_ADD:
spdata->unclipped_blend = &_blend_mask_add;
break;
case EFL_CANVAS_VG_NODE_BLEND_TYPE_MASK_SUBSTRACT:
spdata->unclipped_blend = &_blend_mask_sub;
break;
case EFL_CANVAS_VG_NODE_BLEND_TYPE_MASK_INTERSECT:
spdata->unclipped_blend = &_blend_mask_ins;
break;
case EFL_CANVAS_VG_NODE_BLEND_TYPE_MASK_DIFFERENCE:
spdata->unclipped_blend = &_blend_mask_diff;
break;
}
}
else
{
if (spdata->type == Solid)
spdata->unclipped_blend = &_blend_argb;
else if (spdata->type == LinearGradient || spdata->type == RadialGradient)
spdata->unclipped_blend = &_blend_gradient;
break;
else //None
spdata->unclipped_blend = NULL;
}
//FIXME: Mask and mask case is not use clipping.

View File

@ -6,6 +6,7 @@
#include <ctype.h>
#ifdef _WIN32
# include <direct.h> /* getcwd */
# include <winsock2.h>
#endif

View File

@ -117,39 +117,32 @@ _eina_file_win32_is_dir(const char *dir)
return EINA_TRUE;
}
static char *
_eina_file_win32_dir_new(const char *dir)
{
char *new_dir;
size_t length;
length = strlen(dir);
new_dir = (char *)malloc(sizeof(char) * length + 5);
if (!new_dir)
return NULL;
memcpy(new_dir, dir, length);
memcpy(new_dir + length, "\\*.*", 5);
return new_dir;
}
static HANDLE
_eina_file_win32_first_file(const char *dir, WIN32_FIND_DATA *fd)
{
HANDLE h;
char buf[4096];
HANDLE h;
size_t l = strlen(dir);
#ifdef UNICODE
wchar_t *wdir = NULL;
#endif
wdir = evil_char_to_wchar(dir);
l = strlen(dir);
if ((l + 5) > sizeof(buf))
return INVALID_HANDLE_VALUE;
memcpy(buf, dir, l);
memcpy(buf + l, "\\*.*", 5);
#ifdef UNICODE
wdir = evil_char_to_wchar(buf);
if (!wdir)
return INVALID_HANDLE_VALUE;
h = FindFirstFile(wdir, fd);
h = FindFirstFileEx(wdir, FindExInfoBasic, fd, FindExSearchNameMatch, NULL, 0);
free(wdir);
#else
h = FindFirstFile(dir, fd);
h = FindFirstFileEx(buf, FindExInfoBasic, fd, FindExSearchNameMatch, NULL, 0);
#endif
if (!h)
@ -469,7 +462,6 @@ eina_file_dir_list(const char *dir,
{
WIN32_FIND_DATA file;
HANDLE h;
char *new_dir;
EINA_SAFETY_ON_NULL_RETURN_VAL(cb, EINA_FALSE);
EINA_SAFETY_ON_NULL_RETURN_VAL(dir, EINA_FALSE);
@ -478,11 +470,7 @@ eina_file_dir_list(const char *dir,
if (!_eina_file_win32_is_dir(dir))
return EINA_FALSE;
new_dir = _eina_file_win32_dir_new(dir);
if (!new_dir)
return EINA_FALSE;
h = _eina_file_win32_first_file(new_dir, &file);
h = _eina_file_win32_first_file(dir, &file);
if (h == INVALID_HANDLE_VALUE)
return EINA_FALSE;
@ -496,7 +484,9 @@ eina_file_dir_list(const char *dir,
# else
filename = file.cFileName;
# endif /* ! UNICODE */
if (!strcmp(filename, ".") || !strcmp(filename, ".."))
if ((filename[0] == '.') &&
((filename[1] == '\0') ||
((filename[1] == '.') && (filename[2] == '\0'))))
continue;
cb(filename, dir, data);
@ -563,7 +553,6 @@ EAPI Eina_Iterator *
eina_file_ls(const char *dir)
{
Eina_File_Iterator *it;
char *new_dir;
size_t length;
EINA_SAFETY_ON_NULL_RETURN_VAL(dir, NULL);
@ -582,12 +571,7 @@ eina_file_ls(const char *dir)
EINA_MAGIC_SET(&it->iterator, EINA_MAGIC_ITERATOR);
new_dir = _eina_file_win32_dir_new(dir);
if (!new_dir)
goto free_it;
it->handle = _eina_file_win32_first_file(new_dir, &it->data);
free(new_dir);
it->handle = _eina_file_win32_first_file(dir, &it->data);
if ((it->handle == INVALID_HANDLE_VALUE) && (GetLastError() != ERROR_NO_MORE_FILES))
goto free_it;
@ -614,7 +598,6 @@ EAPI Eina_Iterator *
eina_file_direct_ls(const char *dir)
{
Eina_File_Direct_Iterator *it;
char *new_dir;
size_t length;
EINA_SAFETY_ON_NULL_RETURN_VAL(dir, NULL);
@ -633,12 +616,7 @@ eina_file_direct_ls(const char *dir)
EINA_MAGIC_SET(&it->iterator, EINA_MAGIC_ITERATOR);
new_dir = _eina_file_win32_dir_new(dir);
if (!new_dir)
goto free_it;
it->handle = _eina_file_win32_first_file(new_dir, &it->data);
free(new_dir);
it->handle = _eina_file_win32_first_file(dir, &it->data);
if ((it->handle == INVALID_HANDLE_VALUE) && (GetLastError() != ERROR_NO_MORE_FILES))
goto free_it;

View File

@ -42,6 +42,7 @@
#endif
#ifdef _WIN32
# include <direct.h> /* getcwd */
# include <Evil.h>
#endif

View File

@ -1231,6 +1231,7 @@ _cut_cb(Eo *obj)
_selection_store(EFL_UI_SELECTION_TYPE_CLIPBOARD, obj);
efl_text_interactive_selection_cursors_get(obj, &start, &end);
efl_canvas_text_range_delete(obj, start, end);
_efl_ui_text_select_none(obj, sd);
}
static void

View File

@ -690,10 +690,7 @@ _efl_ui_textpath_circle_set(Eo *obj, Efl_Ui_Textpath_Data *pd, double x, double
pd->circle.start_angle == start_angle &&
pd->direction == direction &&
_map_point_calc(pd) > 0)
{
ERR("Same circle");
return;
}
pd->circle.x = x;
pd->circle.y = y;
pd->circle.radius = radius;

View File

@ -11,6 +11,7 @@
#endif
#ifdef _WIN32
# include <direct.h> /* getcwd */
# include <Evil.h>
#endif

View File

@ -44,7 +44,7 @@ int fcntl(int fd, int cmd, ...)
HANDLE h;
DWORD flag;
h = _is_socket(fd) ? (HANDLE)fd : (HANDLE)_get_osfhandle(fd);
h = _is_socket(fd) ? (HANDLE)(uintptr_t)fd : (HANDLE)_get_osfhandle(fd);
if (h == INVALID_HANDLE_VALUE)
return -1;
@ -64,7 +64,7 @@ int fcntl(int fd, int cmd, ...)
HANDLE h;
long flag;
h = _is_socket(fd) ? (HANDLE)fd : (HANDLE)_get_osfhandle(fd);
h = _is_socket(fd) ? (HANDLE)(uintptr_t)fd : (HANDLE)_get_osfhandle(fd);
if (h == INVALID_HANDLE_VALUE)
return -1;

View File

@ -45,34 +45,10 @@
#endif
#define mkdir(dirname, mode) evil_mkdir(dirname, mode)
/*
* evil_time.h
*/
/**
* @def localtime_r(t, r)
*
* Wrapper around evil_localtime_r().
*/
#ifdef localtime_r
# undef localtime_r
#endif
#define localtime_r(t, r) evil_localtime_r(t, r)
/*
* evil_unistd.h
*/
/**
* @def getcwd(b,s)
*
* Wrapper around evil_getcwd().
*/
#ifdef getcwd
# undef getcwd
#endif
#define getcwd(b,s) evil_getcwd((b),(s))
/**
* @def pipe(fds)
*

View File

@ -12,16 +12,6 @@
#include "evil_macro_wrapper.h"
#include "evil_private.h"
struct tm *
evil_localtime_r(const time_t *timep, struct tm *result)
{
__time64_t t = *timep;
_localtime64_s(result, &t);
return result;
}
/*
* strptime
* based on http://cvsweb.netbsd.org/bsdweb.cgi/src/lib/libc/time/strptime.c?rev=HEAD

View File

@ -2,6 +2,9 @@
#define __EVIL_TIME_H__
#include <time.h>
/**
* @file evil_time.h
* @brief The file that provides functions ported from Unix in time.h.
@ -14,26 +17,6 @@
*/
/**
* @brief Convert the calendar time to broken-time representation in a
* user supplied data.
*
* @param timep The calender time.
* @param result The broken-down time representation.
* @return The broken-down time representation.
*
* This function converts the calendar time @p timep to a broken-time
* representation. The result is stored in the buffer @p result
* supplied by the user. If @p timep or @p result are @c NULL, or if
* an error occurred, this function returns @c NULL and the values in
* @p result might be undefined. Otherwise it returns @p result.
*
* Conformity: Non applicable.
*
* Supported OS: Windows XP.
*/
EAPI struct tm *evil_localtime_r(const time_t *timep, struct tm *result);
/**
* @brief Convert a string representation of time to a time tm structure .
*

View File

@ -62,17 +62,6 @@ evil_time_get(void)
return (double)_evil_time_second + (double)(count.QuadPart - _evil_time_count)/ (double)_evil_time_freq;
}
/*
* File related functions
*
*/
char *
evil_getcwd(char *buffer, size_t size)
{
return _getcwd(buffer, (int)size);
}
/*
* Sockets and pipe related functions

View File

@ -36,27 +36,6 @@
*/
EAPI double evil_time_get(void);
/*
* file related functions
*
*/
/**
* @brief Get the current directory.
*
* @param buffer Buffer to store the current directory.
* @param size Size of the buffer.
* @return The current directory.
*
* Use the _getcwd function in MSVCRT.
*
* Conformity: Almost POSIX.1 (no errno set)
*
* Supported OS: Windows XP.
*/
EAPI char *evil_getcwd(char *buffer, size_t size);
/*
* Sockets and pipe related functions
*

View File

@ -1,7 +1,7 @@
engine_src = files(['ecore_evas_win32.c'])
config_h.set('BUILD_ECORE_EVAS_SOFTWARE_DDRAW', '1');
config_h.set('BUILD_ECORE_EVAS_SOFTWARE_GDI', '1');
config_h.set('BUILD_ECORE_EVAS_SOFTWARE_DDRAW', '1')
config_h.set('BUILD_ECORE_EVAS_SOFTWARE_GDI', '1')
engine_deps = [engine_software_ddraw, engine_software_gdi]

View File

@ -5,6 +5,10 @@
#include <unistd.h>
#include <fcntl.h>
#ifdef _WIN32
# include <direct.h> /* getcwd */
#endif
#include <Eina.h>
#include <Evas.h>
#include <Ecore.h>

View File

@ -30,8 +30,8 @@ public static class TestParts
private static void do_part_test(Dummy.PartHolder t)
{
var p1 = t.PartOne;
var p2 = t.PartTwo;
var p1 = t.OnePart;
var p2 = t.TwoPart;
Test.Assert(p1 is Dummy.TestObject);
Test.AssertEquals("part_one", p1.GetName());
Test.Assert(p2 is Dummy.TestObject);

View File

@ -3,8 +3,8 @@ import eina_types;
class @beta Dummy.Part_Holder extends Dummy.Test_Object implements Efl.Part {
parts {
part_one: Dummy.Test_Object; [[ Part number one. ]]
part_two: Dummy.Test_Object; [[ Part number two. ]]
one: Dummy.Test_Object; [[ Part number one. ]]
two: Dummy.Test_Object; [[ Part number two. ]]
}
implements {
Efl.Part.part_get;

View File

@ -92,8 +92,8 @@ typedef struct Dummy_Child_Data
typedef struct Dummy_Part_Holder_Data
{
Eo *part_one;
Eo *part_two;
Eo *one;
Eo *two;
} Dummy_Part_Holder_Data;
typedef struct Dummy_Inherit_Helper_Data
@ -4057,8 +4057,8 @@ _dummy_part_holder_efl_object_constructor(Eo *obj, Dummy_Part_Holder_Data *pd)
// To avoid an infinite loop calling the same constructor
if (!efl_parent_get(obj))
{
pd->part_one = efl_add(DUMMY_TEST_OBJECT_CLASS, obj, efl_name_set(efl_added, "part_one"));
pd->part_two = efl_add(DUMMY_TEST_OBJECT_CLASS, obj, efl_name_set(efl_added, "part_two"));
pd->one = efl_add(DUMMY_TEST_OBJECT_CLASS, obj, efl_name_set(efl_added, "part_one"));
pd->two = efl_add(DUMMY_TEST_OBJECT_CLASS, obj, efl_name_set(efl_added, "part_two"));
}
return obj;
@ -4066,10 +4066,10 @@ _dummy_part_holder_efl_object_constructor(Eo *obj, Dummy_Part_Holder_Data *pd)
Efl_Object *_dummy_part_holder_efl_part_part_get(EINA_UNUSED const Eo *obj, Dummy_Part_Holder_Data *pd, const char *name)
{
if (!strcmp(name, "part_one"))
return pd->part_one;
else if (!strcmp(name, "part_two"))
return pd->part_two;
if (!strcmp(name, "one"))
return pd->one;
else if (!strcmp(name, "two"))
return pd->two;
else
return NULL;
}

View File

@ -8,6 +8,10 @@
#include <unistd.h>
#include <limits.h>
#ifdef _WIN32
# include <direct.h> /* getcwd */
#endif
#include <Efreet.h>
#include "ef_test.h"

View File

@ -1455,7 +1455,6 @@ EFL_START_TEST(utc_eldbus_message_iter_del_p)
eldbus_message_iter_del(iter);
}
eldbus_message_unref(msg);
eldbus_connection_unref(conn_client);
eldbus_service_interface_unregister(iface);
eldbus_connection_unref(conn_server);

View File

@ -19,10 +19,15 @@ eldbus_suite_src = [
'eldbus_suite.h'
]
executable('eldbus_suite',
eldbus_suite = executable('eldbus_suite',
eldbus_suite_src,
dependencies: [eldbus, ecore, check],
c_args : [
'-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
'-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"']
)
test('eldbus-suite', eldbus_suite,
env : test_env,
timeout : 60
)