[EGIT] [core/efl] master 05/08: ecore: Rename EAPI macro to ECORE_API in Ecore library

2021-05-23 Thread Felipe Magno de Almeida
raster pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=74204bccd724fe9dee428056d4710f37bbc2cffb

commit 74204bccd724fe9dee428056d4710f37bbc2cffb
Author: Felipe Magno de Almeida 
Date:   Sun May 23 20:08:05 2021 +0100

ecore: Rename EAPI macro to ECORE_API in Ecore library

Summary:
=  The Rationale =

EAPI was designed to be able to pass
`__attribute__ ((visibility ("default")))` for symbols with
GCC, which would mean that even if -fvisibility=hidden was used
when compiling the library, the needed symbols would get exported.

MSVC __almost__ works like GCC (or mingw) in which you can
declare everything as export and it will just work (slower, but
it will work). But there's a caveat: global variables will not
work the same way for MSVC, but works for mingw and GCC.

For global variables (as opposed to functions), MSVC requires
correct DSO visibility for MSVC: instead of declaring a symbol as
export for everything, you need to declare it as import when
importing from another DSO and export when defining it locally.

With current EAPI definitions, we get the following example
working in mingw and MSVC (observe it doesn't define any global
variables as exported symbols).

Example 1:
dll1:
```
EAPI void foo(void);

EAPI void bar()
{
  foo();
}
```
dll2:
```
EAPI void foo()
{
  printf ("foo\n");
}
```

This works fine with API defined as __declspec(dllexport) in both
cases and for gcc defining as
`__atttribute__((visibility("default")))`.

However, the following:
Example 2:

dll1:

```
EAPI extern int foo;
EAPI void foobar(void);

EAPI void bar()
{
  foo = 5;
  foobar();
}
```

dll2:

```
EAPI int foo = 0;
EAPI void foobar()
{
  printf ("foo %d\n", foo);
}
```

This will work on mingw but will not work for MSVC. And that's why
EAPI is the only solution that worked for MSVC.

Co-authored-by: João Paulo Taylor Ienczak Zanette 
Co-authored-by: Ricardo Campos 
Co-authored-by: Lucas Cavalcante de Sousa 

Reviewers: vtorri, raster

Reviewed By: raster

Subscribers: raster, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D12271
---
 src/lib/ecore/Ecore.h|  32 +---
 src/lib/ecore/Ecore_Common.h | 274 +++
 src/lib/ecore/Ecore_Eo.h |  12 +-
 src/lib/ecore/Ecore_Getopt.h |  46 +-
 src/lib/ecore/Ecore_Legacy.h |  56 +++
 src/lib/ecore/Efl_Core.h |  30 +---
 src/lib/ecore/ecore.c|  42 ++---
 src/lib/ecore/ecore_anim.c   |  28 ++--
 src/lib/ecore/ecore_api.h|  32 
 src/lib/ecore/ecore_app.c|   6 +-
 src/lib/ecore/ecore_events.c |  26 +--
 src/lib/ecore/ecore_exe.c|  60 +++
 src/lib/ecore/ecore_exe_eo.c |   8 +-
 src/lib/ecore/ecore_exe_eo.h |  10 +-
 src/lib/ecore/ecore_exe_private.h|   8 +-
 src/lib/ecore/ecore_getopt.c |  16 +-
 src/lib/ecore/ecore_glib.c   |   4 +-
 src/lib/ecore/ecore_idle_enterer.c   |   6 +-
 src/lib/ecore/ecore_idle_exiter.c|   4 +-
 src/lib/ecore/ecore_idler.c  |   4 +-
 src/lib/ecore/ecore_internal.h   |  33 +---
 src/lib/ecore/ecore_job.c|   4 +-
 src/lib/ecore/ecore_main.c   |  44 ++---
 src/lib/ecore/ecore_pipe.c   |  22 +--
 src/lib/ecore/ecore_poller.c |  12 +-
 src/lib/ecore/ecore_private.h|  42 ++---
 src/lib/ecore/ecore_thread.c |  50 +++---
 src/lib/ecore/ecore_throttle.c   |   4 +-
 src/lib/ecore/ecore_time.c   |   8 +-
 src/lib/ecore/ecore_timer.c  |  18 +-
 src/lib/ecore/efl_loop.c |  14 +-
 src/lib/ecore/efl_loop_timer_eo.legacy.c |  12 +-
 src/lib/ecore/efl_loop_timer_eo.legacy.h |  12 +-
 src/lib/ecore/meson.build|   5 +-
 src/tests/ecore/ecore_suite.h|   3 +
 src/tests/ecore/efl_app_test_cml.c   |   3 +
 src/tests/ecore/meson.build  |   2 +
 37 files changed, 452 insertions(+), 540 deletions(-)

diff --git a/src/lib/ecore/Ecore.h b/src/lib/ecore/Ecore.h
index e87ccc6093..bafb57e400 100644
--- a/src/lib/ecore/Ecore.h
+++ b/src/lib/ecore/Ecore.h
@@ -276,32 +276,7 @@
 #include 
 #include 
 #include 
-
-#ifdef EAPI
-# undef EAPI
-#endif
-
-#ifdef _WIN32
-# ifdef EFL_BUILD
-#  ifdef DLL_EXPORT
-#   define EAPI __declspec(dllexport)
-#  else
-#   define EAPI
-#  endif
-# else
-#  define EAPI __declspec(dllimport)
-# endif
-#else
-# ifdef __GNUC

[EGIT] [core/efl] master 04/08: eldbus: Rename EAPI macro to ELDBUS_API in Eldbus library

2021-05-23 Thread Felipe Magno de Almeida
raster pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=1304d9571775ef740ac6b8978ea4a2025a52c99a

commit 1304d9571775ef740ac6b8978ea4a2025a52c99a
Author: Felipe Magno de Almeida 
Date:   Sun May 23 20:07:51 2021 +0100

eldbus: Rename EAPI macro to ELDBUS_API in Eldbus library

Summary:
=  The Rationale =

EAPI was designed to be able to pass
`__attribute__ ((visibility ("default")))` for symbols with
GCC, which would mean that even if -fvisibility=hidden was used
when compiling the library, the needed symbols would get exported.

MSVC __almost__ works like GCC (or mingw) in which you can
declare everything as export and it will just work (slower, but
it will work). But there's a caveat: global variables will not
work the same way for MSVC, but works for mingw and GCC.

For global variables (as opposed to functions), MSVC requires
correct DSO visibility for MSVC: instead of declaring a symbol as
export for everything, you need to declare it as import when
importing from another DSO and export when defining it locally.

With current EAPI definitions, we get the following example
working in mingw and MSVC (observe it doesn't define any global
variables as exported symbols).

Example 1:
dll1:
```
EAPI void foo(void);

EAPI void bar()
{
  foo();
}
```
dll2:
```
EAPI void foo()
{
  printf ("foo\n");
}
```

This works fine with API defined as __declspec(dllexport) in both
cases and for gcc defining as
`__atttribute__((visibility("default")))`.

However, the following:
Example 2:

dll1:

```
EAPI extern int foo;
EAPI void foobar(void);

EAPI void bar()
{
  foo = 5;
  foobar();
}
```

dll2:

```
EAPI int foo = 0;
EAPI void foobar()
{
  printf ("foo %d\n", foo);
}
```

This will work on mingw but will not work for MSVC. And that's why
EAPI is the only solution that worked for MSVC.

Co-authored-by: João Paulo Taylor Ienczak Zanette 
Co-authored-by: Ricardo Campos 
Co-authored-by: Lucas Cavalcante de Sousa 

Reviewers: vtorri, raster

Subscribers: raster, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D12270
---
 src/lib/eldbus/Eldbus.h | 35 ++
 src/lib/eldbus/eldbus_api.h | 32 +
 src/lib/eldbus/eldbus_connection.h  | 30 ++--
 src/lib/eldbus/eldbus_core.c| 36 +++---
 src/lib/eldbus/eldbus_freedesktop.c | 22 -
 src/lib/eldbus/eldbus_freedesktop.h | 48 +--
 src/lib/eldbus/eldbus_introspection.c   | 10 ++--
 src/lib/eldbus/eldbus_introspection.h   | 12 +++--
 src/lib/eldbus/eldbus_message.c | 64 -
 src/lib/eldbus/eldbus_message.h | 64 -
 src/lib/eldbus/eldbus_message_eina_value.h  |  6 +--
 src/lib/eldbus/eldbus_message_from_eina_value.c |  2 +-
 src/lib/eldbus/eldbus_message_helper.c  |  2 +-
 src/lib/eldbus/eldbus_message_helper.h  |  2 +-
 src/lib/eldbus/eldbus_message_to_eina_value.c   |  4 +-
 src/lib/eldbus/eldbus_object.c  | 32 ++---
 src/lib/eldbus/eldbus_object.h  | 26 +-
 src/lib/eldbus/eldbus_pending.c | 22 -
 src/lib/eldbus/eldbus_pending.h | 20 
 src/lib/eldbus/eldbus_proxy.c   | 52 ++--
 src/lib/eldbus/eldbus_proxy.h   | 36 +++---
 src/lib/eldbus/eldbus_service.c | 36 +++---
 src/lib/eldbus/eldbus_service.h | 36 +++---
 src/lib/eldbus/eldbus_signal_handler.c  | 28 +--
 src/lib/eldbus/eldbus_signal_handler.h  | 28 +--
 src/lib/eldbus/meson.build  |  5 +-
 26 files changed, 350 insertions(+), 340 deletions(-)

diff --git a/src/lib/eldbus/Eldbus.h b/src/lib/eldbus/Eldbus.h
index d307c384ed..4f0dc8e741 100644
--- a/src/lib/eldbus/Eldbus.h
+++ b/src/lib/eldbus/Eldbus.h
@@ -83,31 +83,7 @@
 #ifdef EFL_BETA_API_SUPPORT
 #include 
 #endif
-#ifdef EAPI
-# undef EAPI
-#endif
-
-#ifdef _WIN32
-# ifdef EFL_BUILD
-#  ifdef DLL_EXPORT
-#   define EAPI __declspec(dllexport)
-#  else
-#   define EAPI
-#  endif
-# else
-#  define EAPI __declspec(dllimport)
-# endif
-#else
-# ifdef __GNUC__
-#  if __GNUC__ >= 4
-#   define EAPI __attribute__ ((visibility("default")))
-#  else
-#   define EAPI
-#  endif
-# else
-#  define EAPI
-# endif
-#endif
+#include 
 
 #ifdef __cplusplus
 extern "C" {
@@ -144,20 +120,20 @@ typ

[EGIT] [core/efl] master 06/08: edje: Add weak symbol

2021-05-23 Thread Felipe Magno de Almeida
raster pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=6c969f6b7d59e64e8bdf09a5e535de9561d77535

commit 6c969f6b7d59e64e8bdf09a5e535de9561d77535
Author: Felipe Magno de Almeida 
Date:   Sun May 23 20:08:18 2021 +0100

edje: Add weak symbol

Summary:
The symbols will be needed when we change how Eolian generates
import/export symbols in Eio

Reviewers: vtorri, raster

Subscribers: raster, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D12272
---
 src/lib/edje/Edje.h   | 4 
 src/lib/edje/Efl_Layout.h | 4 
 2 files changed, 8 insertions(+)

diff --git a/src/lib/edje/Edje.h b/src/lib/edje/Edje.h
index 65ff5342e4..44907ea29b 100644
--- a/src/lib/edje/Edje.h
+++ b/src/lib/edje/Edje.h
@@ -230,15 +230,19 @@ param in edje programs
 # else
 #  define EAPI __declspec(dllimport)
 # endif
+# define EAPI_WEAK
 #else
 # ifdef __GNUC__
 #  if __GNUC__ >= 4
 #   define EAPI __attribute__ ((visibility("default")))
+#   define EAPI_WEAK __attribute__ ((weak))
 #  else
 #   define EAPI
+#   define EAPI_WEAK
 #  endif
 # else
 #  define EAPI
+#  define EAPI_WEAK
 # endif
 #endif
 
diff --git a/src/lib/edje/Efl_Layout.h b/src/lib/edje/Efl_Layout.h
index 3fed1f381f..6bc6696b69 100644
--- a/src/lib/edje/Efl_Layout.h
+++ b/src/lib/edje/Efl_Layout.h
@@ -25,15 +25,19 @@
 # else
 #  define EAPI __declspec(dllimport)
 # endif
+# define EAPI_WEAK
 #else
 # ifdef __GNUC__
 #  if __GNUC__ >= 4
 #   define EAPI __attribute__ ((visibility("default")))
+#   define EAPI_WEAK __attribute__ ((weak))
 #  else
 #   define EAPI
+#   define EAPI_WEAK
 #  endif
 # else
 #  define EAPI
+#  define EAPI_WEAK
 # endif
 #endif
 

-- 




[EGIT] [core/efl] master 07/08: elementary: Add EOAPI definition in Elementary to allow removal in other libraries

2021-05-23 Thread Felipe Magno de Almeida
raster pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=c02b796fdb0960411b24576f654a03f0e765a842

commit c02b796fdb0960411b24576f654a03f0e765a842
Author: Felipe Magno de Almeida 
Date:   Sun May 23 20:08:33 2021 +0100

elementary: Add EOAPI definition in Elementary to allow removal in other 
libraries

Summary:
Patch from a series of patches to rename EAPI symbols to specific
library DSOs.

=  The Rationale =

EAPI was designed to be able to pass
`__attribute__ ((visibility ("default")))` for symbols with
GCC, which would mean that even if -fvisibility=hidden was used
when compiling the library, the needed symbols would get exported.

MSVC __almost__ works like GCC (or mingw) in which you can
declare everything as export and it will just work (slower, but
it will work). But there's a caveat: global variables will not
work the same way for MSVC, but works for mingw and GCC.

For global variables (as opposed to functions), MSVC requires
correct DSO visibility for MSVC: instead of declaring a symbol as
export for everything, you need to declare it as import when
importing from another DSO and export when defining it locally.

With current EAPI definitions, we get the following example
working in mingw and MSVC (observe it doesn't define any global
variables as exported symbols).

Example 1:
dll1:
```
EAPI void foo(void);

EAPI void bar()
{
  foo();
}
```
dll2:
```
EAPI void foo()
{
  printf ("foo\n");
}
```

This works fine with API defined as __declspec(dllexport) in both
cases and for gcc defining as
`__atttribute__((visibility("default")))`.

However, the following:
Example 2:

dll1:

```
EAPI extern int foo;
EAPI void foobar(void);

EAPI void bar()
{
  foo = 5;
  foobar();
}
```

dll2:

```
EAPI int foo = 0;
EAPI void foobar()
{
  printf ("foo %d\n", foo);
}
```

This will work on mingw but will not work for MSVC. And that's why
EAPI is the only solution that worked for MSVC.

Co-authored-by: João Paulo Taylor Ienczak Zanette 
Co-authored-by: Ricardo Campos 
Co-authored-by: Lucas Cavalcante de Sousa 

Reviewers: vtorri, raster

Reviewed By: raster

Subscribers: raster, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D12273
---
 src/lib/elementary/Elementary.h | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/lib/elementary/Elementary.h b/src/lib/elementary/Elementary.h
index a64406de43..6d0a33a643 100644
--- a/src/lib/elementary/Elementary.h
+++ b/src/lib/elementary/Elementary.h
@@ -88,6 +88,9 @@
 #ifdef EAPI_WEAK
 # undef EAPI_WEAK
 #endif
+#ifdef EOAPI
+# undef EOAPI
+#endif
 
 #ifdef _WIN32
 # ifdef EFL_BUILD
@@ -116,7 +119,7 @@
 #endif
 
 #define EWAPI EAPI EAPI_WEAK
-
+#define EOAPI EAPI
 
 /* allow usage from c++ */
 #ifdef __cplusplus

-- 




[EGIT] [core/efl] master 03/08: efl: Rename EAPI macro to EFL_API in Efl sub-library

2021-05-23 Thread Felipe Magno de Almeida
raster pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=7c85be9674eaa0362b88f01c61107aa6e7c383a2

commit 7c85be9674eaa0362b88f01c61107aa6e7c383a2
Author: Felipe Magno de Almeida 
Date:   Sun May 23 20:07:10 2021 +0100

efl: Rename EAPI macro to EFL_API in Efl sub-library

Summary:
Patch from a series of patches to rename EAPI symbols to specific
library DSOs.

=  The Rationale =

EAPI was designed to be able to pass
`__attribute__ ((visibility ("default")))` for symbols with
GCC, which would mean that even if -fvisibility=hidden was used
when compiling the library, the needed symbols would get exported.

MSVC __almost__ works like GCC (or mingw) in which you can
declare everything as export and it will just work (slower, but
it will work). But there's a caveat: global variables will not
work the same way for MSVC, but works for mingw and GCC.

For global variables (as opposed to functions), MSVC requires
correct DSO visibility for MSVC: instead of declaring a symbol as
export for everything, you need to declare it as import when
importing from another DSO and export when defining it locally.

With current EAPI definitions, we get the following example
working in mingw and MSVC (observe it doesn't define any global
variables as exported symbols).

Example 1:
dll1:
```
EAPI void foo(void);

EAPI void bar()
{
  foo();
}
```
dll2:
```
EAPI void foo()
{
  printf ("foo\n");
}
```

This works fine with API defined as __declspec(dllexport) in both
cases and for gcc defining as
`__atttribute__((visibility("default")))`.

However, the following:
Example 2:

dll1:

```
EAPI extern int foo;
EAPI void foobar(void);

EAPI void bar()
{
  foo = 5;
  foobar();
}
```

dll2:

```
EAPI int foo = 0;
EAPI void foobar()
{
  printf ("foo %d\n", foo);
}
```

This will work on mingw but will not work for MSVC. And that's why
EAPI is the only solution that worked for MSVC.

Co-authored-by: João Paulo Taylor Ienczak Zanette 
Co-authored-by: Ricardo Campos 
Co-authored-by: Lucas Cavalcante de Sousa 

Reviewers: vtorri, raster

Subscribers: raster, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D12274
---
 src/lib/efl/Efl.h| 70 ++--
 src/lib/efl/Efl_MVVM_Common.h| 30 ++--
 src/lib/efl/efl_api.h| 32 +
 src/lib/efl/interfaces/efl_file.c|  8 ++--
 src/lib/efl/interfaces/efl_file.h|  8 ++--
 src/lib/efl/interfaces/efl_interfaces_main.c |  4 +-
 src/lib/efl/interfaces/efl_mvvm_common.c | 32 ++---
 src/lib/efl/interfaces/efl_observer.c|  2 +-
 src/lib/efl/interfaces/meson.build   |  3 ++
 src/lib/efl/meson.build  |  5 +-
 10 files changed, 95 insertions(+), 99 deletions(-)

diff --git a/src/lib/efl/Efl.h b/src/lib/efl/Efl.h
index 480249fae5..8d52ad20e2 100644
--- a/src/lib/efl/Efl.h
+++ b/src/lib/efl/Efl.h
@@ -7,44 +7,7 @@ extern "C" {
 
 #include 
 
-#ifdef EAPI
-# undef EAPI
-#endif
-#ifdef EWAPI
-# undef EWAPI
-#endif
-#ifdef EOAPI
-# undef EOAPI
-#endif
-
-#ifdef _WIN32
-# ifdef EFL_BUILD
-#  ifdef DLL_EXPORT
-#   define EAPI __declspec(dllexport)
-#  else
-#   define EAPI
-#  endif
-# else
-#  define EAPI __declspec(dllimport)
-# endif
-# define EAPI_WEAK
-#else
-# ifdef __GNUC__
-#  if __GNUC__ >= 4
-#   define EAPI __attribute__ ((visibility("default")))
-#   define EAPI_WEAK __attribute__ ((weak))
-#  else
-#   define EAPI
-#   define EAPI_WEAK
-#  endif
-# else
-#  define EAPI
-#  define EAPI_WEAK
-# endif
-#endif
-
-#define EWAPI EAPI EAPI_WEAK
-#define EOAPI EAPI EAPI_WEAK
+#include 
 
 #define EFL_VERSION_1_18 1
 #define EFL_VERSION_1_19 1
@@ -83,39 +46,39 @@ typedef struct _Efl_Text_Attribute_Handle 
Efl_Text_Attribute_Handle;
 
 #ifdef EFL_BETA_API_SUPPORT
 /** No error on load */
-extern EWAPI Eina_Error EFL_GFX_IMAGE_LOAD_ERROR_NONE;
+EFL_API EFL_API_WEAK extern Eina_Error EFL_GFX_IMAGE_LOAD_ERROR_NONE;
 
 /** A non-specific error occurred */
-extern EWAPI Eina_Error EFL_GFX_IMAGE_LOAD_ERROR_GENERIC;
+EFL_API EFL_API_WEAK extern Eina_Error EFL_GFX_IMAGE_LOAD_ERROR_GENERIC;
 
 /** File (or file path) does not exist */
-extern EWAPI Eina_Error EFL_GFX_IMAGE_LOAD_ERROR_DOES_NOT_EXIST;
+EFL_API EFL_API_WEAK extern Eina_Error EFL_GFX_IMAGE_LOAD_ERROR_DOES_NOT_EXIST;
 
 /** Permission denied to an existing file (or path) */
-extern EWAPI Eina_Error EFL_GFX_IMAGE_LOAD_ERROR_PERMISSION_DENIED;
+EFL_API EFL_API_WEAK extern Eina_Error 
EFL_GFX_IMA

[EGIT] [core/efl] master 01/01: modules: Rename EAPI macro to MODAPI for modules

2021-04-17 Thread Felipe Magno de Almeida
felipealmeida pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=a331384eede6dd79610e2edcb232692055344769

commit a331384eede6dd79610e2edcb232692055344769
Author: Felipe Magno de Almeida 
Date:   Sat Apr 17 16:07:55 2021 -0300

modules: Rename EAPI macro to MODAPI for modules

Summary:
Patch from a series of patches to rename EAPI symbols to specific
library DSOs.

=  The Rationale =

EAPI was designed to be able to pass
`__attribute__ ((visibility ("default")))` for symbols with
GCC, which would mean that even if -fvisibility=hidden was used
when compiling the library, the needed symbols would get exported.

MSVC __almost__ works like GCC (or mingw) in which you can
declare everything as export and it will just work (slower, but
it will work). But there's a caveat: global variables will not
work the same way for MSVC, but works for mingw and GCC.

For global variables (as opposed to functions), MSVC requires
correct DSO visibility for MSVC: instead of declaring a symbol as
export for everything, you need to declare it as import when
importing from another DSO and export when defining it locally.

With current EAPI definitions, we get the following example
working in mingw and MSVC (observe it doesn't define any global
variables as exported symbols).

Example 1:
dll1:
```
EAPI void foo(void);

EAPI void bar()
{
  foo();
}
```
dll2:
```
EAPI void foo()
{
  printf ("foo\n");
}
```

This works fine with API defined as __declspec(dllexport) in both
cases and for gcc defining as
`__atttribute__((visibility("default")))`.

However, the following:
Example 2:

dll1:

```
EAPI extern int foo;
EAPI void foobar(void);

EAPI void bar()
{
  foo = 5;
  foobar();
}
```

dll2:

```
EAPI int foo = 0;
EAPI void foobar()
{
  printf ("foo %d\n", foo);
}
```

This will work on mingw but will not work for MSVC. And that's why
EAPI is the only solution that worked for MSVC.

Co-authored-by: João Paulo Taylor Ienczak Zanette 
Co-authored-by: Ricardo Campos 
Co-authored-by: Lucas Cavalcante de Sousa 

Reviewers: vtorri, jptiz, woohyun, lucas, SPAM-smith78899

Reviewed By: vtorri, SPAM-smith78899

Subscribers: SPAM-smith78899, raster, SPAM-cabanacatalogs, cedric, 
#reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D12228
---
 src/lib/elementary/elm_module_helper.h | 43 +++---
 .../ecore_evas/engines/cocoa/ecore_evas_cocoa.c| 24 +++---
 .../ecore_evas/engines/drm/ecore_evas_drm.c| 26 +++---
 .../ecore_evas/engines/extn/ecore_evas_extn.c  | 30 +++
 src/modules/ecore_evas/engines/fb/ecore_evas_fb.c  | 24 +++---
 .../ecore_evas/engines/sdl/ecore_evas_sdl.c| 29 +++
 .../engines/wayland/ecore_evas_wayland_common.c|  4 +-
 .../engines/wayland/ecore_evas_wayland_egl.c   | 24 +++---
 .../engines/wayland/ecore_evas_wayland_shm.c   | 24 +++---
 .../ecore_evas/engines/win32/ecore_evas_win32.c| 26 +++---
 src/modules/ecore_evas/engines/x/ecore_evas_x.c| 34 
 .../ecore_evas/vnc_server/ecore_evas_vnc_server.c  | 26 +++---
 src/modules/elementary/access_output/mod.c | 16 ++--
 src/modules/elementary/prefs/prefs_iface.c |  4 +-
 src/modules/elementary/test_entry/mod.c| 10 +--
 src/modules/elementary/test_map/mod.c  | 28 +++---
 src/modules/elementary/web/none/elm_web_none.c | 14 +--
 src/modules/elementary/web/none/elm_web_none_eo.h  |  2 +-
 .../evas/engines/gl_common/evas_gl_common.h| 99 ++
 .../evas/engines/gl_common/evas_gl_context.c   | 26 +++---
 src/modules/evas/engines/gl_common/evas_gl_core.c  | 10 +--
 src/modules/evas/engines/gl_common/evas_gl_core.h  | 33 +++-
 src/modules/evas/engines/gl_common/evas_gl_image.c | 14 +--
 .../evas/engines/gl_common/evas_gl_preload.c   | 12 +--
 .../evas/engines/gl_common/evas_gl_shader.c|  2 +-
 .../evas/engines/gl_generic/evas_ector_gl.h| 21 +
 src/modules/evas/engines/gl_generic/meson.build|  1 +
 .../engines/software_generic/evas_ector_software.h | 26 ++
 .../engines/software_generic/evas_native_common.h  | 31 +++
 .../engines/software_generic/evas_native_tbm.c |  8 +-
 .../evas/image_loaders/eet/evas_image_load_eet.c   |  2 +-
 .../evas/image_savers/eet/evas_image_save_eet.c|  2 +-
 32 files changed, 293 insertions(+), 382 deletions(-)

diff --git a/src/lib/elementary/elm_module_helper.h 
b/src/lib/elementary/elm_module_helper.h
index eba3237266..5c2f49ebdd 100644
--- a/src/lib/elementary/elm_module_helper.h
+++ b/src/lib/eleme

[EGIT] [core/efl] master 01/01: emotion: emotion EAPI macro to EMOTION_API in Emotion library

2021-01-11 Thread Felipe Magno de Almeida
raster pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=c118886043ffe2e4d95bcc0e0c2780c79237ca5c

commit c118886043ffe2e4d95bcc0e0c2780c79237ca5c
Author: Felipe Magno de Almeida 
Date:   Mon Jan 11 10:31:30 2021 +

emotion: emotion EAPI macro to EMOTION_API in Emotion library

Summary:
Patch from a series of patches to rename EAPI symbols to specific
library DSOs.

=  The Rationale =

EAPI was designed to be able to pass
`__attribute__ ((visibility ("default")))` for symbols with
GCC, which would mean that even if -fvisibility=hidden was used
when compiling the library, the needed symbols would get exported.

MSVC __almost__ works like GCC (or mingw) in which you can
declare everything as export and it will just work (slower, but
it will work). But there's a caveat: global variables will not
work the same way for MSVC, but works for mingw and GCC.

For global variables (as opposed to functions), MSVC requires
correct DSO visibility for MSVC: instead of declaring a symbol as
export for everything, you need to declare it as import when
importing from another DSO and export when defining it locally.

With current EAPI definitions, we get the following example
working in mingw and MSVC (observe it doesn't define any global
variables as exported symbols).

Example 1:
dll1:
```
EAPI void foo(void);

EAPI void bar()
{
  foo();
}
```
dll2:
```
EAPI void foo()
{
  printf ("foo\n");
}
```

This works fine with API defined as __declspec(dllexport) in both
cases and for gcc defining as
`__atttribute__((visibility("default")))`.

However, the following:
Example 2:

dll1:

```
EAPI extern int foo;
EAPI void foobar(void);

EAPI void bar()
{
  foo = 5;
  foobar();
}
```

dll2:

```
EAPI int foo = 0;
EAPI void foobar()
{
  printf ("foo %d\n", foo);
}
```

This will work on mingw but will not work for MSVC. And that's why
EAPI is the only solution that worked for MSVC.

Co-authored-by: João Paulo Taylor Ienczak Zanette 
Co-authored-by: Ricardo Campos 
Co-authored-by: Lucas Cavalcante de Sousa 

Reviewers: vtorri, woohyun, jptiz, lucas

Reviewed By: vtorri, lucas

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D12227
---
 src/lib/emotion/Emotion.h| 193 ---
 src/lib/emotion/efl_canvas_video.eo  |   8 +-
 src/lib/emotion/efl_canvas_video_eo.legacy.c |   4 +-
 src/lib/emotion/efl_canvas_video_eo.legacy.h |   4 +-
 src/lib/emotion/emotion_api.h|  32 +
 src/lib/emotion/emotion_main.c   |  18 +--
 src/lib/emotion/emotion_modules.c|   4 +-
 src/lib/emotion/emotion_modules.h|  89 +---
 src/lib/emotion/emotion_smart.c  | 178 
 src/lib/emotion/emotion_webcam.c |  14 +-
 src/lib/emotion/meson.build  |   4 +-
 11 files changed, 264 insertions(+), 284 deletions(-)

diff --git a/src/lib/emotion/Emotion.h b/src/lib/emotion/Emotion.h
index 5f68c09fa7..b4495c12f2 100644
--- a/src/lib/emotion/Emotion.h
+++ b/src/lib/emotion/Emotion.h
@@ -93,31 +93,7 @@
 #include 
 #include 
 
-#ifdef EAPI
-# undef EAPI
-#endif
-
-#ifdef _WIN32
-# ifdef EFL_BUILD
-#  ifdef DLL_EXPORT
-#   define EAPI __declspec(dllexport)
-#  else
-#   define EAPI
-#  endif
-# else
-#  define EAPI __declspec(dllimport)
-# endif
-#else
-# ifdef __GNUC__
-#  if __GNUC__ >= 4
-#   define EAPI __attribute__ ((visibility("default")))
-#  else
-#   define EAPI
-#  endif
-# else
-#  define EAPI
-# endif
-#endif
+#include 
 
 #ifdef __cplusplus
 extern "C" {
@@ -282,7 +258,7 @@ typedef struct _Emotion_Version
  int revision; /** < git revision (0 if a proper release or the git 
revision number Emotion is built from) */
   } Emotion_Version;
 
-EAPI extern Emotion_Version *emotion_version;
+EMOTION_API extern Emotion_Version *emotion_version;
 
 /* api calls available */
 
@@ -371,14 +347,14 @@ EAPI extern Emotion_Version *emotion_version;
  * Initialise needed libraries like eina ecore eet
  * Initialise needed modules like webcam
  */
-EAPI Eina_Bool emotion_init(void);
+EMOTION_API Eina_Bool emotion_init(void);
 
 /**
  * @brief Shutdown Emotion library
  *
  * Proper shutdown of all loaded modules and initialised libraries.
  */
-EAPI Eina_Bool emotion_shutdown(void);
+EMOTION_API Eina_Bool emotion_shutdown(void);
 
 /**
  * @brief Add an emotion object to the canvas.
@@ -405,7 +381,7 @@ EAPI Eina_Bool emotion_shutdown(void);
  *
  * @ingroup Emotion_Init
  */
-

[EGIT] [core/efl] master 01/01: ector: Rename EAPI macro to ECTOR_API in Ector library

2021-01-01 Thread Felipe Magno de Almeida
felipealmeida pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=6f23a9daa18c4536ee8a530411cd249bd5e5f239

commit 6f23a9daa18c4536ee8a530411cd249bd5e5f239
Author: Felipe Magno de Almeida 
Date:   Fri Jan 1 17:31:37 2021 -0300

ector: Rename EAPI macro to ECTOR_API in Ector library

Summary:
Patch from a series of patches to rename EAPI symbols to specific
library DSOs.

=  The Rationale =

EAPI was designed to be able to pass
`__attribute__ ((visibility ("default")))` for symbols with
GCC, which would mean that even if -fvisibility=hidden was used
when compiling the library, the needed symbols would get exported.

MSVC __almost__ works like GCC (or mingw) in which you can
declare everything as export and it will just work (slower, but
it will work). But there's a caveat: global variables will not
work the same way for MSVC, but works for mingw and GCC.

For global variables (as opposed to functions), MSVC requires
correct DSO visibility for MSVC: instead of declaring a symbol as
export for everything, you need to declare it as import when
importing from another DSO and export when defining it locally.

With current EAPI definitions, we get the following example
working in mingw and MSVC (observe it doesn't define any global
variables as exported symbols).

Example 1:
dll1:
```
EAPI void foo(void);

EAPI void bar()
{
  foo();
}
```
dll2:
```
EAPI void foo()
{
  printf ("foo\n");
}
```

This works fine with API defined as __declspec(dllexport) in both
cases and for gcc defining as
`__atttribute__((visibility("default")))`.

However, the following:
Example 2:

dll1:

```
EAPI extern int foo;
EAPI void foobar(void);

EAPI void bar()
{
  foo = 5;
  foobar();
}
```

dll2:

```
EAPI int foo = 0;
EAPI void foobar()
{
  printf ("foo %d\n", foo);
}
```

This will work on mingw but will not work for MSVC. And that's why
EAPI is the only solution that worked for MSVC.

Co-authored-by: João Paulo Taylor Ienczak Zanette 
Co-authored-by: Ricardo Campos 
Co-authored-by: Lucas Cavalcante de Sousa 

Reviewers: vtorri, woohyun, jptiz, lucas

Reviewed By: vtorri

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D12226
---
 src/lib/ector/Ector.h   | 34 -
 src/lib/ector/ector_api.h   | 32 +++
 src/lib/ector/ector_main.c  |  6 +++---
 src/lib/ector/gl/Ector_GL.h | 29 +---
 src/lib/ector/gl/meson.build|  1 +
 src/lib/ector/meson.build   |  4 +++-
 src/lib/ector/software/Ector_Software.h | 29 +---
 src/lib/ector/software/meson.build  |  1 +
 8 files changed, 46 insertions(+), 90 deletions(-)

diff --git a/src/lib/ector/Ector.h b/src/lib/ector/Ector.h
index 9a7a7d3706..ba93fbddae 100644
--- a/src/lib/ector/Ector.h
+++ b/src/lib/ector/Ector.h
@@ -6,31 +6,8 @@
 #ifdef EFL_BETA_API_SUPPORT
 #include 
 #endif
-#ifdef EAPI
-# undef EAPI
-#endif
 
-#ifdef _WIN32
-# ifdef EFL_BUILD
-#  ifdef DLL_EXPORT
-#   define EAPI __declspec(dllexport)
-#  else
-#   define EAPI
-#  endif
-# else
-#  define EAPI __declspec(dllimport)
-# endif
-#else
-# ifdef __GNUC__
-#  if __GNUC__ >= 4
-#   define EAPI __attribute__ ((visibility("default")))
-#  else
-#   define EAPI
-#  endif
-# else
-#  define EAPI
-# endif
-#endif
+#include 
 
 #ifdef __cplusplus
 extern "C" {
@@ -133,7 +110,7 @@ typedef enum _Ector_Update_Type
  *
  * @see ector_shutfown()
  */
-EAPI int ector_init(void);
+ECTOR_API int ector_init(void);
 
 /**
  * @brief Shutdown the ector subsystem
@@ -141,7 +118,7 @@ EAPI int ector_init(void);
  *
  * @see ector_init()
  */
-EAPI int ector_shutdown(void);
+ECTOR_API int ector_shutdown(void);
 
 /**
  * @brief Registers OpenGL API calls with the internal Ector_GL_API.
@@ -156,7 +133,7 @@ EAPI int ector_shutdown(void);
  *
  * @see dlsym()
  */
-EAPI Eina_Bool ector_glsym_set(void *(*glsym)(void *lib, const char *name), 
void *lib);
+ECTOR_API Eina_Bool ector_glsym_set(void *(*glsym)(void *lib, const char 
*name), void *lib);
 
 /* Avoid redefinition of types */
 #define _ECTOR_SURFACE_EO_CLASS_TYPE
@@ -177,7 +154,4 @@ EAPI Eina_Bool ector_glsym_set(void *(*glsym)(void *lib, 
const char *name), void
 }
 #endif
 
-#undef EAPI
-#define EAPI
-
 #endif
diff --git a/src/lib/ector/ector_api.h b/src/lib/ector/ector_api.h
new file mode 100644
index 00..f0549582d0
--- /dev/null
+++ b/src/lib/ector/ector_api.h
@@ -0,0 +1,32 @@
+#ifndef _EFL_EC

[EGIT] [core/efl] master 01/01: ecore_con: Rename EAPI macro to ECORE_CON_API in Ecore Con library

2020-12-28 Thread Felipe Magno de Almeida
felipealmeida pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=86493e160a095e38ea564ffb260edae0b1e766ae

commit 86493e160a095e38ea564ffb260edae0b1e766ae
Author: Felipe Magno de Almeida 
Date:   Mon Dec 28 13:45:46 2020 -0300

ecore_con: Rename EAPI macro to ECORE_CON_API in Ecore Con library

Summary:
Patch from a series of patches to rename EAPI symbols to specific
library DSOs.

EAPI was designed to be able to pass
`__attribute__ ((visibility ("default")))` for symbols with
GCC, which would mean that even if -fvisibility=hidden was used
when compiling the library, the needed symbols would get exported.

MSVC __almost__ works like GCC (or mingw) in which you can
declare everything as export and it will just work (slower, but
it will work). But there's a caveat: global variables will not
work the same way for MSVC, but works for mingw and GCC.

For global variables (as opposed to functions), MSVC requires
correct DSO visibility for MSVC: instead of declaring a symbol as
export for everything, you need to declare it as import when
importing from another DSO and export when defining it locally.

With current EAPI definitions, we get the following example
working in mingw and MSVC (observe it doesn't define any global
variables as exported symbols).

Example 1:
dll1:
```
EAPI void foo(void);

EAPI void bar()
{
  foo();
}
```
dll2:
```
EAPI void foo()
{
  printf ("foo\n");
}
```

This works fine with API defined as __declspec(dllexport) in both
cases and for gcc defining as
`__atttribute__((visibility("default")))`.

However, the following:
Example 2:

dll1:

```
EAPI extern int foo;
EAPI void foobar(void);

EAPI void bar()
{
  foo = 5;
  foobar();
}
```

dll2:

```
EAPI int foo = 0;
EAPI void foobar()
{
  printf ("foo %d\n", foo);
}
```

This will work on mingw but will not work for MSVC. And that's why
EAPI is the only solution that worked for MSVC.

Co-authored-by: João Paulo Taylor Ienczak Zanette 
Co-authored-by: Ricardo Campos 
Co-authored-by: Lucas Cavalcante de Sousa 

Reviewers: vtorri, woohyun, jptiz, lucas

Reviewed By: vtorri

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D12225
---
 src/lib/ecore_con/Ecore_Con.h| 261 ++-
 src/lib/ecore_con/Ecore_Con_Eet.h|  71 ++
 src/lib/ecore_con/Efl_Net.h  | 139 +---
 src/lib/ecore_con/ecore_con.c|   6 +-
 src/lib/ecore_con/ecore_con_api.h|  32 +++
 src/lib/ecore_con/ecore_con_eet.c|  42 ++--
 src/lib/ecore_con/ecore_con_eet_base_eo.c|  18 +-
 src/lib/ecore_con/ecore_con_eet_base_eo.h|  20 +-
 src/lib/ecore_con/ecore_con_eet_base_eo.legacy.c |   2 +-
 src/lib/ecore_con/ecore_con_eet_base_eo.legacy.h |   2 +-
 src/lib/ecore_con/ecore_con_eet_client_obj_eo.h  |   2 +-
 src/lib/ecore_con/ecore_con_eet_server_obj_eo.h  |   2 +-
 src/lib/ecore_con/ecore_con_legacy.c | 108 +-
 src/lib/ecore_con/ecore_con_local.c  |   2 +-
 src/lib/ecore_con/ecore_con_local_win32.c|   2 +-
 src/lib/ecore_con/ecore_con_socks.c  |  28 +--
 src/lib/ecore_con/ecore_con_url.c|  82 +++
 src/lib/ecore_con/ecore_con_url_curl.c   | 102 -
 src/lib/ecore_con/meson.build|   7 +-
 19 files changed, 441 insertions(+), 487 deletions(-)

diff --git a/src/lib/ecore_con/Ecore_Con.h b/src/lib/ecore_con/Ecore_Con.h
index 6155796200..2945b06a8f 100644
--- a/src/lib/ecore_con/Ecore_Con.h
+++ b/src/lib/ecore_con/Ecore_Con.h
@@ -15,31 +15,7 @@
 #include "Efl_Net.h"
 #endif
 
-#ifdef EAPI
-# undef EAPI
-#endif
-
-#ifdef _WIN32
-# ifdef EFL_BUILD
-#  ifdef DLL_EXPORT
-#   define EAPI __declspec(dllexport)
-#  else
-#   define EAPI
-#  endif
-# else
-#  define EAPI __declspec(dllimport)
-# endif
-#else
-# ifdef __GNUC__
-#  if __GNUC__ >= 4
-#   define EAPI __attribute__ ((visibility("default")))
-#  else
-#   define EAPI
-#  endif
-# else
-#  define EAPI
-# endif
-#endif
+#include 
 
 /**
  * @defgroup Ecore_Con_Group Ecore_Con - Connection functions
@@ -633,51 +609,51 @@ struct _Ecore_Con_Event_Url_Progress
 };
 
 /** A client has connected to the server. */
-EAPI extern int ECORE_CON_EVENT_CLIENT_ADD;
+ECORE_CON_API extern int ECORE_CON_EVENT_CLIENT_ADD;
 /** A client has disconnected from the server. */
-EAPI extern int ECORE_CON_EVENT_CLIENT_DEL;
+ECORE_CON_API extern int ECORE_CON_EVENT_CLIENT_DEL;
 /** A cl

[EGIT] [core/efl] master 01/01: ecore_audio: Rename EAPI macro to ECORE_AUDIO_API in Ecore Audio library

2020-12-15 Thread Felipe Magno de Almeida
felipealmeida pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=75f07e41c0242123f9e4e5dcbc303ad46ea0849b

commit 75f07e41c0242123f9e4e5dcbc303ad46ea0849b
Author: Felipe Magno de Almeida 
Date:   Tue Dec 15 11:31:27 2020 -0300

ecore_audio: Rename EAPI macro to ECORE_AUDIO_API in Ecore Audio library

Summary:
Patch from a series of patches to rename EAPI symbols to specific
library DSOs.

=  The Rationale =

This patch is from a series of patches to rename EAPI symbols to
specific library DSOs.

EAPI was designed to be able to pass
`__attribute__ ((visibility ("default")))` for symbols with
GCC, which would mean that even if -fvisibility=hidden was used
when compiling the library, the needed symbols would get exported.

MSVC __almost__ works like GCC (or mingw) in which you can
declare everything as export and it will just work (slower, but
it will work). But there's a caveat: global variables will not
work the same way for MSVC, but works for mingw and GCC.

For global variables (as opposed to functions), MSVC requires
correct DSO visibility for MSVC: instead of declaring a symbol as
export for everything, you need to declare it as import when
importing from another DSO and export when defining it locally.

With current EAPI definitions, we get the following example
working in mingw and MSVC (observe it doesn't define any global
variables as exported symbols).

Example 1:
dll1:
```
EAPI void foo(void);

EAPI void bar()
{
  foo();
}
```
dll2:
```
EAPI void foo()
{
  printf ("foo\n");
}
```

This works fine with API defined as __declspec(dllexport) in both
cases and for gcc defining as
`__atttribute__((visibility("default")))`.

However, the following:
Example 2:

dll1:

```
EAPI extern int foo;
EAPI void foobar(void);

EAPI void bar()
{
  foo = 5;
  foobar();
}
```

dll2:

```
EAPI int foo = 0;
EAPI void foobar()
{
  printf ("foo %d\n", foo);
}
```

This will work on mingw but will not work for MSVC. And that's why
LIBAPI is the only solution that works for MSVC.

Co-authored-by: João Paulo Taylor Ienczak Zanette 
Co-authored-by: Lucas Cavalcante de Sousa 
Co-authored-by: Ricardo Campos 

Reviewers: vtorri, woohyun, lucas, jptiz

Reviewed By: vtorri, lucas

Subscribers: vtorri, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D12212
---
 src/lib/ecore_audio/Ecore_Audio.h | 43 +++
 src/lib/ecore_audio/ecore_audio.c |  8 
 src/lib/ecore_audio/meson.build   |  3 ++-
 3 files changed, 27 insertions(+), 27 deletions(-)

diff --git a/src/lib/ecore_audio/Ecore_Audio.h 
b/src/lib/ecore_audio/Ecore_Audio.h
index 717c36c3fd..35b59d3c6e 100644
--- a/src/lib/ecore_audio/Ecore_Audio.h
+++ b/src/lib/ecore_audio/Ecore_Audio.h
@@ -4,30 +4,32 @@
 #include 
 #include 
 
-#ifdef EAPI
-#undef EAPI
+#ifdef ECORE_AUDIO_API
+#error ECORE_AUDIO_API should not be already defined
 #endif
 
 #ifdef _WIN32
-# ifdef EFL_BUILD
-#  ifdef DLL_EXPORT
-#   define EAPI __declspec(dllexport)
+# ifndef ECORE_AUDIO_STATIC
+#  ifdef ECORE_AUDIO_BUILD
+#   define ECORE_AUDIO_API __declspec(dllexport)
 #  else
-#   define EAPI
+#   define ECORE_AUDIO_API __declspec(dllimport)
 #  endif
 # else
-#  define EAPI __declspec(dllimport)
+#  define ECORE_AUDIO_API
 # endif
-#else
-# ifdef __GNUC__
-#  if __GNUC__ >= 4
-#   define EAPI __attribute__ ((visibility("default")))
-#  else
-#   define EAPI
-#  endif
+# define ECORE_AUDIO_API_WEAK
+#elif __GNUC__
+# if __GNUC__ >= 4
+#  define ECORE_AUDIO_API __attribute__ ((visibility("default")))
+#  define ECORE_AUDIO_API_WEAK __attribute__ ((weak))
 # else
-#  define EAPI
+#  define ECORE_AUDIO_API
+#  define ECORE_AUDIO_API_WEAK
 # endif
+#else
+# define ECORE_AUDIO_API
+# define ECORE_AUDIO_API_WEAK
 #endif
 
 /**
@@ -176,7 +178,7 @@ typedef struct _Ecore_Audio_Vio Ecore_Audio_Vio;
  * When Ecore_Audio is not used anymore, call ecore_audio_shutdown()
  * to shut down the Ecore_Audio library.
  */
-EAPI int ecore_audio_init(void);
+ECORE_AUDIO_API int ecore_audio_init(void);
 
 /**
  * @brief Shuts down the Ecore_Audio library.
@@ -190,7 +192,7 @@ EAPI int ecore_audio_init(void);
  * been called the same number of times than ecore_audio_init(). In that case
  * it shuts down all the services it uses.
  */
-EAPI int ecore_audio_shutdown(void);
+ECORE_AUDIO_API int ecore_audio_shutdown(void);
 
 //Legacy compatibility code
 
@@ -200,14 +202,14 @@ EAPI int

[EGIT] [core/efl] master 01/01: evil: Fix fcntl for F_SETLK and F_SETLKW wrong length calculation

2020-12-14 Thread Felipe Magno de Almeida
felipealmeida pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=8d2c652104d02d5ee4d54b654ce56f8c3cdffb53

commit 8d2c652104d02d5ee4d54b654ce56f8c3cdffb53
Author: Felipe Magno de Almeida 
Date:   Mon Dec 14 11:48:29 2020 -0300

evil: Fix fcntl for F_SETLK and F_SETLKW wrong length calculation

Summary:
If length and start are both 0, size is wrongfully negative. Besides,
using length as a delimitator in a range means that [0, length) is a
half-closed interval, so we don't need to subtract by 1.

Reviewers: vtorri, woohyun, lucas, jptiz

Reviewed By: vtorri, lucas

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D12208
---
 src/lib/evil/evil_fcntl.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib/evil/evil_fcntl.c b/src/lib/evil/evil_fcntl.c
index 14d10b111c..6c556a6cd7 100644
--- a/src/lib/evil/evil_fcntl.c
+++ b/src/lib/evil/evil_fcntl.c
@@ -114,7 +114,7 @@ fcntl(int fd, int cmd, ...)
  if (length != -1L)
res = 0;
   }
-fl->l_len = length - fl->l_start - 1;
+fl->l_len = length - fl->l_start;
 
 pos = _lseek(fd, fl->l_start, fl->l_whence);
 if (pos != -1L)

-- 




[EGIT] [core/efl] master 01/01: eio: Rename EAPI macro to EIO_API in Eio library

2020-12-14 Thread Felipe Magno de Almeida
felipealmeida pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=4e5b01f8a03d3b01f54c3a67898f9ca67f050481

commit 4e5b01f8a03d3b01f54c3a67898f9ca67f050481
Author: Felipe Magno de Almeida 
Date:   Mon Dec 14 11:43:38 2020 -0300

eio: Rename EAPI macro to EIO_API in Eio library

Summary:
Patch from a series of patches to rename EAPI symbols to specific
library DSOs.

=  The Rationale =

This patch is from a series of patches to rename EAPI symbols to
specific library DSOs.

EAPI was designed to be able to pass
`__attribute__ ((visibility ("default")))` for symbols with
GCC, which would mean that even if -fvisibility=hidden was used
when compiling the library, the needed symbols would get exported.

MSVC __almost__ works like GCC (or mingw) in which you can
declare everything as export and it will just work (slower, but
it will work). But there's a caveat: global variables will not
work the same way for MSVC, but works for mingw and GCC.

For global variables (as opposed to functions), MSVC requires
correct DSO visibility for MSVC: instead of declaring a symbol as
export for everything, you need to declare it as import when
importing from another DSO and export when defining it locally.

With current EAPI definitions, we get the following example
working in mingw and MSVC (observe it doesn't define any global
variables as exported symbols).

Example 1:
dll1:
```
EAPI void foo(void);

EAPI void bar()
{
  foo();
}
```
dll2:
```
EAPI void foo()
{
  printf ("foo\n");
}
```

This works fine with API defined as __declspec(dllexport) in both
cases and for gcc defining as
`__atttribute__((visibility("default")))`.

However, the following:
Example 2:

dll1:

```
EAPI extern int foo;
EAPI void foobar(void);

EAPI void bar()
{
  foo = 5;
  foobar();
}
```

dll2:

```
EAPI int foo = 0;
EAPI void foobar()
{
  printf ("foo %d\n", foo);
}
```

This will work on mingw but will not work for MSVC. And that's why
LIBAPI is the only solution that works for MSVC.

Co-authored-by: João Paulo Taylor Ienczak Zanette 
Co-authored-by: Lucas Cavalcante de Sousa 
Co-authored-by: Ricardo Campos 

Reviewers: vtorri, woohyun, lucas, jptiz

Reviewed By: vtorri, lucas

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D12210
---
 src/lib/eio/Eio.h   |  46 -
 src/lib/eio/Eio_Legacy.h| 130 
 src/lib/eio/eio_dir.c   |  10 +-
 src/lib/eio/eio_eet.c   |  20 ++--
 src/lib/eio/eio_file.c  |  22 ++--
 src/lib/eio/eio_main.c  |  10 +-
 src/lib/eio/eio_map.c   |   8 +-
 src/lib/eio/eio_monitor.c   |  34 +++
 src/lib/eio/eio_monitor_poll.c  |   4 +-
 src/lib/eio/eio_single.c|  12 +--
 src/lib/eio/eio_xattr.c |  18 ++--
 src/lib/eio/meson.build |   3 +-
 src/lib/elementary/elc_fileselector.c   |   2 +-
 src/lib/elementary/elc_fileselector_button.c|   2 +-
 src/lib/elementary/elc_fileselector_entry.c |   2 +-
 src/lib/elementary/elm_interface_fileselector.c |   2 +-
 16 files changed, 158 insertions(+), 167 deletions(-)

diff --git a/src/lib/eio/Eio.h b/src/lib/eio/Eio.h
index f72529e6e0..3e90cdaf94 100644
--- a/src/lib/eio/Eio.h
+++ b/src/lib/eio/Eio.h
@@ -32,41 +32,34 @@
 #include 
 #include 
 
-#ifdef EAPI
-# undef EAPI
-#endif
-
-#ifdef EAPI_WEAK
-# undef EAPI_WEAK
+#ifdef EIO_API
+#error EIO_API should not be already defined
 #endif
 
 #ifdef _WIN32
-# ifdef EFL_BUILD
-#  ifdef DLL_EXPORT
-#   define EAPI __declspec(dllexport)
+# ifndef EIO_STATIC
+#  ifdef EIO_BUILD
+#   define EIO_API __declspec(dllexport)
 #  else
-#   define EAPI
+#   define EIO_API __declspec(dllimport)
 #  endif
 # else
-#  define EAPI __declspec(dllimport)
+#  define EIO_API
 # endif
-# define EAPI_WEAK
-#else
-# ifdef __GNUC__
-#  if __GNUC__ >= 4
-#   define EAPI __attribute__ ((visibility("default")))
-#   define EAPI_WEAK __attribute__ ((weak))
-#  else
-#   define EAPI
-#   define EAPI_WEAK
-#  endif
+# define EIO_API_WEAK
+#elif defined(__GNUC__)
+# if __GNUC__ >= 4
+#  define EIO_API __attribute__ ((visibility("default")))
+#  define EIO_API_WEAK __attribute__ ((weak))
 # else
-#  define EAPI
-#  define EAPI_WEAK
+#  define EIO_API
+#  define EIO_API_WEAK
 # endif
+#else
+# define EIO_API
+# define EIO_API_WE

[EGIT] [core/efl] master 01/01: eo: Rename EAPI macro to EO_API in Eo library

2020-12-09 Thread Felipe Magno de Almeida
felipealmeida pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=138e9e5294bcc5994853c826da013f0220042c5c

commit 138e9e5294bcc5994853c826da013f0220042c5c
Author: Felipe Magno de Almeida 
Date:   Wed Dec 9 13:50:29 2020 -0300

eo: Rename EAPI macro to EO_API in Eo library

Summary:
Patch from a series of patches to rename EAPI symbols to specific
library DSOs.

=  The Rationale =

This patch is from a series of patches to rename EAPI symbols to
specific library DSOs.

EAPI was designed to be able to pass
`__attribute__ ((visibility ("default")))` for symbols with
GCC, which would mean that even if -fvisibility=hidden was used
when compiling the library, the needed symbols would get exported.

MSVC __almost__ works like GCC (or mingw) in which you can
declare everything as export and it will just work (slower, but
it will work). But there's a caveat: global variables will not
work the same way for MSVC, but works for mingw and GCC.

For global variables (as opposed to functions), MSVC requires
correct DSO visibility for MSVC: instead of declaring a symbol as
export for everything, you need to declare it as import when
importing from another DSO and export when defining it locally.

With current EAPI definitions, we get the following example
working in mingw and MSVC (observe it doesn't define any global
variables as exported symbols).

Example 1:
dll1:
```
EAPI void foo(void);

EAPI void bar()
{
  foo();
}
```
dll2:
```
EAPI void foo()
{
  printf ("foo\n");
}
```

This works fine with API defined as __declspec(dllexport) in both
cases and for gcc defining as
`__atttribute__((visibility("default")))`.

However, the following:
Example 2:

dll1:

```
EAPI extern int foo;
EAPI void foobar(void);

EAPI void bar()
{
  foo = 5;
  foobar();
}
```

dll2:

```
EAPI int foo = 0;
EAPI void foobar()
{
  printf ("foo %d\n", foo);
}
```

This will work on mingw but will not work for MSVC. And that's why
LIBAPI is the only solution that works for MSVC.

Co-authored-by: João Paulo Taylor Ienczak Zanette 
Co-authored-by: Lucas Cavalcante de Sousa 
Co-authored-by: Ricardo Campos 

Reviewers: jptiz, lucas, vtorri, woohyun

Reviewed By: jptiz, lucas, vtorri

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D12203
---
 src/lib/eo/Eo.h| 209 ++---
 src/lib/eo/eo.c| 120 ++--
 src/lib/eo/eo_add_fallback.c   |   2 +-
 src/lib/eo/eo_base_class.c |  58 +++---
 src/lib/eo/eo_internal.h   |  37 +---
 src/lib/eo/meson.build |   6 +-
 src/tests/eo/access/access_inherit.c   |   2 +-
 src/tests/eo/access/access_inherit.h   |   2 +-
 src/tests/eo/access/access_simple.c|   4 +-
 src/tests/eo/access/access_simple.h|   2 +-
 .../composite_objects/composite_objects_simple.c   | 134 ++---
 .../composite_objects/composite_objects_simple.h   | 132 ++---
 src/tests/eo/constructors/constructors_mixin.c |   2 +-
 src/tests/eo/constructors/constructors_mixin.h |   2 +-
 src/tests/eo/constructors/constructors_simple.h|   8 +-
 .../function_overrides_inherit2.c  |   4 +-
 .../function_overrides_inherit2.h  |   4 +-
 .../function_overrides/function_overrides_simple.c |   8 +-
 .../function_overrides/function_overrides_simple.h |   8 +-
 src/tests/eo/interface/interface_interface.h   |   2 +-
 src/tests/eo/interface/interface_interface2.h  |   2 +-
 src/tests/eo/interface/interface_simple.h  |   8 +-
 src/tests/eo/mixin/mixin_mixin.c   |   2 +-
 src/tests/eo/mixin/mixin_mixin.h   |   2 +-
 src/tests/eo/mixin/mixin_simple.h  |   8 +-
 src/tests/eo/signals/signals_simple.c  |   6 +-
 src/tests/eo/signals/signals_simple.h  |   2 +-
 src/tests/eo/suite/eo_test_call_errors.c   |   2 +-
 src/tests/eo/suite/eo_test_class_simple.c  |   4 +-
 src/tests/eo/suite/eo_test_class_simple.h  |  16 +-
 src/tests/eo/suite/eo_test_domain.c|   2 +-
 src/tests/eo/suite/eo_test_domain.h|   6 +-
 src/tests/eo/suite/eo_test_event.c |  14 +-
 src/tests/eo/suite/eo_test_general.c   |   2 +-
 .../eo_test_reflection_complex_class_structure.c   |   8 +-
 .../eo_test_reflection_complex_class_structur

[EGIT] [core/efl] master 01/01: eldbus: Add Eldbus.h include entry point header to eldbus_instrospection.h

2020-12-06 Thread Felipe Magno de Almeida
felipealmeida pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=1aef7c697ab538e73c90617fb872bcf595ccf7c1

commit 1aef7c697ab538e73c90617fb872bcf595ccf7c1
Author: Felipe Magno de Almeida 
Date:   Sun Dec 6 12:33:45 2020 -0300

eldbus: Add Eldbus.h include  entry point header to eldbus_instrospection.h

Summary:
Add #include Eldbus.h so we can have EAPI definition for
eldbus_instrospection.h header

Reviewers: jptiz, lucas, vtorri, woohyun

Reviewed By: vtorri

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D12202
---
 src/lib/eldbus/eldbus_introspection.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/lib/eldbus/eldbus_introspection.c 
b/src/lib/eldbus/eldbus_introspection.c
index 1e294a9224..1deb706d9c 100644
--- a/src/lib/eldbus/eldbus_introspection.c
+++ b/src/lib/eldbus/eldbus_introspection.c
@@ -1,3 +1,4 @@
+#include 
 #include "eldbus_introspection.h"
 
 typedef struct _Eldbus_Introspection_Element_Parse_Table 
Eldbus_Introspection_Element_Parse_Table;

-- 




[EGIT] [core/efl] master 01/01: eio: Add weak symbol

2020-12-06 Thread Felipe Magno de Almeida
felipealmeida pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=b01cc905ea5d417030831096b2e81b8a4e823d44

commit b01cc905ea5d417030831096b2e81b8a4e823d44
Author: Felipe Magno de Almeida 
Date:   Sun Dec 6 12:26:13 2020 -0300

eio: Add weak symbol

Summary:
Add definition for EAPI_WEAK because this macro will be needed when we
change how Eolian generates import/export symbols for the Eio library.

=  The Rationale =

This patch is from a series of patches to rename EAPI symbols to
specific library DSOs.

EAPI was designed to be able to pass
`__attribute__ ((visibility ("default")))` for symbols with
GCC, which would mean that even if -fvisibility=hidden was used
when compiling the library, the needed symbols would get exported.

MSVC __almost__ works like GCC (or mingw) in which you can
declare everything as export and it will just work (slower, but
it will work). But there's a caveat: global variables will not
work the same way for MSVC, but works for mingw and GCC.

For global variables (as opposed to functions), MSVC requires
correct DSO visibility for MSVC: instead of declaring a symbol as
export for everything, you need to declare it as import when
importing from another DSO and export when defining it locally.

With current EAPI definitions, we get the following example
working in mingw and MSVC (observe it doesn't define any global
variables as exported symbols).

Example 1:
dll1:
```
EAPI void foo(void);

EAPI void bar()
{
  foo();
}
```
dll2:
```
EAPI void foo()
{
  printf ("foo\n");
}
```

This works fine with API defined as __declspec(dllexport) in both
cases and for gcc defining as
`__atttribute__((visibility("default")))`.

However, the following:
Example 2:

dll1:

```
EAPI extern int foo;
EAPI void foobar(void);

EAPI void bar()
{
  foo = 5;
  foobar();
}
```

dll2:

```
EAPI int foo = 0;
EAPI void foobar()
{
  printf ("foo %d\n", foo);
}
```

This will work on mingw but will not work for MSVC. And that's why
LIBAPI is the only solution that works for MSVC.

Co-authored-by: João Paulo Taylor Ienczak Zanette 
Co-authored-by: Lucas Cavalcante de Sousa 
Co-authored-by: Ricardo Campos 

Reviewers: jptiz, lucas, vtorri, woohyun

Reviewed By: vtorri

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D12201
---
 src/lib/eio/Eio.h | 8 
 1 file changed, 8 insertions(+)

diff --git a/src/lib/eio/Eio.h b/src/lib/eio/Eio.h
index fb0fc64813..f72529e6e0 100644
--- a/src/lib/eio/Eio.h
+++ b/src/lib/eio/Eio.h
@@ -36,6 +36,10 @@
 # undef EAPI
 #endif
 
+#ifdef EAPI_WEAK
+# undef EAPI_WEAK
+#endif
+
 #ifdef _WIN32
 # ifdef EFL_BUILD
 #  ifdef DLL_EXPORT
@@ -46,15 +50,19 @@
 # else
 #  define EAPI __declspec(dllimport)
 # endif
+# define EAPI_WEAK
 #else
 # ifdef __GNUC__
 #  if __GNUC__ >= 4
 #   define EAPI __attribute__ ((visibility("default")))
+#   define EAPI_WEAK __attribute__ ((weak))
 #  else
 #   define EAPI
+#   define EAPI_WEAK
 #  endif
 # else
 #  define EAPI
+#  define EAPI_WEAK
 # endif
 #endif
 

-- 




[EGIT] [core/efl] master 01/01: benchmark: Remove unnecessary import and export macros from benchmark executables

2020-12-06 Thread Felipe Magno de Almeida
felipealmeida pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=3523f106b827ab7696c71a933673623ad2bc85f0

commit 3523f106b827ab7696c71a933673623ad2bc85f0
Author: Felipe Magno de Almeida 
Date:   Sun Dec 6 12:23:39 2020 -0300

benchmark: Remove unnecessary import and export macros from benchmark 
executables

Summary:
Benchmark executables do not need to export and import symbols because
they are not loaded by other executables. Removing is important because
EAPI will be removed in some later commit and would break benchmark
executables.

=  The Rationale =

This patch is from a series of patches to rename EAPI symbols to
specific library DSOs.

EAPI was designed to be able to pass
`__attribute__ ((visibility ("default")))` for symbols with
GCC, which would mean that even if -fvisibility=hidden was used
when compiling the library, the needed symbols would get exported.

MSVC __almost__ works like GCC (or mingw) in which you can
declare everything as export and it will just work (slower, but
it will work). But there's a caveat: global variables will not
work the same way for MSVC, but works for mingw and GCC.

For global variables (as opposed to functions), MSVC requires
correct DSO visibility for MSVC: instead of declaring a symbol as
export for everything, you need to declare it as import when
importing from another DSO and export when defining it locally.

With current EAPI definitions, we get the following example
working in mingw and MSVC (observe it doesn't define any global
variables as exported symbols).

Example 1:
dll1:
```
EAPI void foo(void);

EAPI void bar()
{
  foo();
}
```
dll2:
```
EAPI void foo()
{
  printf ("foo\n");
}
```

This works fine with API defined as __declspec(dllexport) in both
cases and for gcc defining as
`__atttribute__((visibility("default")))`.

However, the following:
Example 2:

dll1:

```
EAPI extern int foo;
EAPI void foobar(void);

EAPI void bar()
{
  foo = 5;
  foobar();
}
```

dll2:

```
EAPI int foo = 0;
EAPI void foobar()
{
  printf ("foo %d\n", foo);
}
```

This will work on mingw but will not work for MSVC. And that's why
LIBAPI is the only solution that works for MSVC.

Co-authored-by: João Paulo Taylor Ienczak Zanette 
Co-authored-by: Lucas Cavalcante de Sousa 
Co-authored-by: Ricardo Campos 

Reviewers: vtorri, woohyun, jptiz, lucas

Reviewed By: vtorri

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D12200
---
 src/benchmarks/eo/class_simple.c | 8 
 src/benchmarks/eo/class_simple.h | 8 
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/src/benchmarks/eo/class_simple.c b/src/benchmarks/eo/class_simple.c
index 63378d6033..aa3cec94a5 100644
--- a/src/benchmarks/eo/class_simple.c
+++ b/src/benchmarks/eo/class_simple.c
@@ -7,8 +7,8 @@
 
 #define MY_CLASS SIMPLE_CLASS
 
-EOAPI const Efl_Event_Description _SIMPLE_FOO = EFL_EVENT_DESCRIPTION("foo");
-EOAPI const Efl_Event_Description _SIMPLE_BAR = EFL_EVENT_DESCRIPTION("bar");
+const Efl_Event_Description _SIMPLE_FOO = EFL_EVENT_DESCRIPTION("foo");
+const Efl_Event_Description _SIMPLE_BAR = EFL_EVENT_DESCRIPTION("bar");
 
 static void
 _other_call(Eo *obj EINA_UNUSED, void *class_data EINA_UNUSED, Eo *other, int 
times)
@@ -19,7 +19,7 @@ _other_call(Eo *obj EINA_UNUSED, void *class_data 
EINA_UNUSED, Eo *other, int ti
  }
 }
 
-EAPI EFL_VOID_FUNC_BODYV(simple_other_call, EFL_FUNC_CALL(other, times), Eo 
*other, int times);
+EFL_VOID_FUNC_BODYV(simple_other_call, EFL_FUNC_CALL(other, times), Eo *other, 
int times);
 
 static void
 _a_set(Eo *obj EINA_UNUSED, void *class_data, int a)
@@ -28,7 +28,7 @@ _a_set(Eo *obj EINA_UNUSED, void *class_data, int a)
pd->a = a;
 }
 
-EAPI EFL_VOID_FUNC_BODYV(simple_a_set, EFL_FUNC_CALL(a), int a);
+EFL_VOID_FUNC_BODYV(simple_a_set, EFL_FUNC_CALL(a), int a);
 
 static Eina_Bool
 _class_initializer(Efl_Class *klass)
diff --git a/src/benchmarks/eo/class_simple.h b/src/benchmarks/eo/class_simple.h
index 8445116963..56c92c0aba 100644
--- a/src/benchmarks/eo/class_simple.h
+++ b/src/benchmarks/eo/class_simple.h
@@ -6,16 +6,16 @@ typedef struct
int a;
 } Simple_Public_Data;
 
-EAPI void simple_a_set(Eo *self, int a);
+void simple_a_set(Eo *self, int a);
 /* Calls simple_other_call(other, obj) and then simple_other_call(obj, other)
  * for 'times' times in order to grow the call stack on other objects. */
-EAPI void simple_other_call(Eo*self, Eo *other, int times);
+void simple_other_cal

[EGIT] [core/efl] master 01/01: eolian: Add -e parameter to pass export symbol to eolian generator

2020-12-04 Thread Felipe Magno de Almeida
felipealmeida pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=8d18009419d5ea09f15d9fa27499fcf36123c057

commit 8d18009419d5ea09f15d9fa27499fcf36123c057
Author: Felipe Magno de Almeida 
Date:   Fri Dec 4 10:27:52 2020 -0300

eolian: Add -e parameter to pass export symbol to eolian generator

Summary:
Eolian generator must have a parameter so it can generate the correct
symbol export/import macro for the API generated.

This makes it possible to define the symbols as being local to a
single DSO without the need to guard the generated headers or
generated source files with #define and #undef preprocessor
statements.

=  The Rationale =

This patch is from a series of patches to rename EAPI symbols to
specific library DSOs.

EAPI was designed to be able to pass
`__attribute__ ((visibility ("default")))` for symbols with
GCC, which would mean that even if -fvisibility=hidden was used
when compiling the library, the needed symbols would get exported.

MSVC __almost__ works like GCC (or mingw) in which you can
declare everything as export and it will just work (slower, but
it will work). But there's a caveat: global variables will not
work the same way for MSVC, but works for mingw and GCC.

For global variables (as opposed to functions), MSVC requires
correct DSO visibility for MSVC: instead of declaring a symbol as
export for everything, you need to declare it as import when
importing from another DSO and export when defining it locally.

With current EAPI definitions, we get the following example
working in mingw and MSVC (observe it doesn't define any global
variables as exported symbols).

Example 1:
dll1:
```
EAPI void foo(void);

EAPI void bar()
{
  foo();
}
```
dll2:
```
EAPI void foo()
{
  printf ("foo\n");
}
```

This works fine with API defined as __declspec(dllexport) in both
cases and for gcc defining as
`__atttribute__((visibility("default")))`.

However, the following:
Example 2:

dll1:

```
EAPI extern int foo;
EAPI void foobar(void);

EAPI void bar()
{
  foo = 5;
  foobar();
}
```

dll2:

```
EAPI int foo = 0;
EAPI void foobar()
{
  printf ("foo %d\n", foo);
}
```

This will work on mingw but will not work for MSVC. And that's why
LIBAPI is the only solution that works for MSVC.

Co-authored-by: João Paulo Taylor Ienczak Zanette 
Co-authored-by: Lucas Cavalcante de Sousa 
Co-authored-by: Ricardo Campos 

Reviewers: q66, vtorri, woohyun, jptiz, lucas

Reviewed By: vtorri, lucas

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D12197
---
 src/bin/eolian/headers.c | 12 
 src/bin/eolian/main.c| 11 ++-
 src/bin/eolian/sources.c | 10 +++---
 src/bin/eolian/types.c   |  8 ++--
 src/tests/eolian/data/class_simple_ref.c |  6 +++---
 src/tests/eolian/data/class_simple_ref_eo.h  |  8 
 src/tests/eolian/data/docs_ref.h | 14 +++---
 src/tests/eolian/data/function_as_argument_ref.c |  4 ++--
 src/tests/eolian/data/function_as_argument_ref.h |  6 +++---
 src/tests/eolian/data/override_ref.c | 16 
 src/tests/eolian/data/owning_ref.c   |  4 ++--
 src/tests/eolian/data/struct_ref.h   |  6 +++---
 src/tests/eolian/data/typedef_ref.h  |  4 ++--
 src/tests/eolian/eolian_generated_future.c   |  3 +++
 src/tests/eolian/meson.build |  3 ++-
 15 files changed, 70 insertions(+), 45 deletions(-)

diff --git a/src/bin/eolian/headers.c b/src/bin/eolian/headers.c
index 6292fb4259..ebca0c9b75 100644
--- a/src/bin/eolian/headers.c
+++ b/src/bin/eolian/headers.c
@@ -1,6 +1,8 @@
 #include "main.h"
 #include "docs.h"
 
+extern char* _eolian_api_symbol;
+
 static const char *
 _get_add_star(Eolian_Function_Type ftype, Eolian_Parameter_Direction pdir)
 {
@@ -118,7 +120,7 @@ _gen_func(const Eolian_State *state, const Eolian_Function 
*fid,
 eina_strbuf_append_char(buf, '\n');
 eina_strbuf_free(dbuf);
  }
-   eina_strbuf_append(buf, "EOAPI ");
+   eina_strbuf_append_printf(buf, "%s %s_WEAK ", _eolian_api_symbol, 
_eolian_api_symbol);
if (rtp)
  {
 if (!rtps)
@@ -225,7 +227,8 @@ eo_gen_header_gen(const Eolian_State *state, const 
Eolian_Class *cl,
eina_strbuf_append_printf(buf, "#define %s %s()\n\n", mname, gname);
eina_stringshare_del(mname);
 

[EGIT] [core/efl] master 01/01: eolian: Rename EAPI macro to EOLIAN_API in Eolian library

2020-11-25 Thread Felipe Magno de Almeida
felipealmeida pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=f08f0548da7fda905e9288343424df4ddd6221d5

commit f08f0548da7fda905e9288343424df4ddd6221d5
Author: Felipe Magno de Almeida 
Date:   Wed Nov 25 11:39:05 2020 -0300

eolian: Rename EAPI macro to EOLIAN_API in Eolian library

Summary:
Patch from a series of patches to rename EAPI symbols to specific
library DSOs.

EAPI was designed to be able to pass
`__attribute__ ((visibility ("default")))` for symbols with
GCC, which would mean that even if -fvisibility=hidden was used
when compiling the library, the needed symbols would get exported.

MSVC __almost__ works like GCC (or mingw) in which you can
declare everything as export and it will just work (slower, but
it will work). But there's a caveat: global variables will not
work the same way for MSVC, but works for mingw and GCC.

For global variables (as opposed to functions), MSVC requires
correct DSO visibility for MSVC: instead of declaring a symbol as
export for everything, you need to declare it as import when
importing from another DSO and export when defining it locally.

With current EAPI definitions, we get the following example
working in mingw and MSVC (observe it doesn't define any global
variables as exported symbols).

Example 1:
dll1:
```
EAPI void foo(void);

EAPI void bar()
{
  foo();
}
```
dll2:
```
EAPI void foo()
{
  printf ("foo\n");
}
```

This works fine with API defined as __declspec(dllexport) in both
cases and for gcc defining as
`__atttribute__((visibility("default")))`.

However, the following:
Example 2:

dll1:

```
EAPI extern int foo;
EAPI void foobar(void);

EAPI void bar()
{
  foo = 5;
  foobar();
}
```

dll2:

```
EAPI int foo = 0;
EAPI void foobar()
{
  printf ("foo %d\n", foo);
}
```

This will work on mingw but will not work for MSVC. And that's why
EAPI is the only solution that worked for MSVC.

Co-authored-by: João Paulo Taylor Ienczak Zanette 
Co-authored-by: Ricardo Campos 
Co-authored-by: Lucas Cavalcante de Sousa 

Reviewers: vtorri, woohyun, jptiz, lucas

Reviewed By: vtorri

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D12196
---
 src/lib/eolian/Eolian.h  | 399 +++
 src/lib/eolian/Eolian_Aux.h  |  41 +--
 src/lib/eolian/database_class_api.c  |  38 +--
 src/lib/eolian/database_constructor_api.c|   6 +-
 src/lib/eolian/database_event_api.c  |  16 +-
 src/lib/eolian/database_expr_api.c   |  24 +-
 src/lib/eolian/database_function_api.c   |  36 +-
 src/lib/eolian/database_function_parameter_api.c |  16 +-
 src/lib/eolian/database_implement_api.c  |  18 +-
 src/lib/eolian/database_part_api.c   |   4 +-
 src/lib/eolian/database_type_api.c   |  66 ++--
 src/lib/eolian/database_var_api.c|   8 +-
 src/lib/eolian/eo_parser.h   |   3 +-
 src/lib/eolian/eolian.c  |   6 +-
 src/lib/eolian/eolian_api.h  |  34 ++
 src/lib/eolian/eolian_aux.c  |  12 +-
 src/lib/eolian/eolian_database.c | 132 
 src/lib/eolian/eolian_priv.h |   1 +
 src/lib/eolian/meson.build   |   2 +-
 19 files changed, 421 insertions(+), 441 deletions(-)

diff --git a/src/lib/eolian/Eolian.h b/src/lib/eolian/Eolian.h
index be2845630a..d6099a6433 100644
--- a/src/lib/eolian/Eolian.h
+++ b/src/lib/eolian/Eolian.h
@@ -1,31 +1,7 @@
 #ifndef EOLIAN_H
 #define EOLIAN_H
 
-#ifdef EAPI
-# undef EAPI
-#endif
-
-#ifdef _WIN32
-# ifdef EFL_BUILD
-#  ifdef DLL_EXPORT
-#   define EAPI __declspec(dllexport)
-#  else
-#   define EAPI
-#  endif
-# else
-#  define EAPI __declspec(dllimport)
-# endif
-#else
-# ifdef __GNUC__
-#  if __GNUC__ >= 4
-#   define EAPI __attribute__ ((visibility("default")))
-#  else
-#   define EAPI
-#  endif
-# else
-#  define EAPI
-# endif
-#endif
+#include "eolian_api.h"
 
 #ifdef __cplusplus
 extern "C" {
@@ -477,14 +453,14 @@ typedef struct _Eolian_Doc_Token
  *
  * @ingroup Eolian
  */
-EAPI int eolian_init(void);
+EOLIAN_API int eolian_init(void);
 
 /*
  * @brief Shutdown Eolian.
  *
  * @ingroup Eolian
  */
-EAPI int eolian_shutdown(void);
+EOLIAN_API int eolian_shutdown(void);
 
 /*
  * @brief Get the Eolian file format version.
@@ -493,7 +469,7 @@ EAPI int eolian_shutdown(void);
  * retrieval of the version at runtime, so it can be used b

[EGIT] [core/efl] master 01/01: evil: Rename EAPI macro to EVIL_API in Evil library

2020-11-12 Thread Felipe Magno de Almeida
felipealmeida pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=8f9255e2c16efed25a26ad39eaa37b07cf670c38

commit 8f9255e2c16efed25a26ad39eaa37b07cf670c38
Author: Felipe Magno de Almeida 
Date:   Thu Nov 12 13:47:38 2020 -0300

evil: Rename EAPI macro to EVIL_API in Evil library

Summary:
Patch from a series of patches to rename EAPI symbols to specific
library DSOs.

EAPI was designed to be able to pass
```__attribute__ ((visibility ("default")))``` for symbols with
GCC, which would mean that even if -fvisibility=hidden was used
when compiling the library, the needed symbols would get exported.

MSVC __almost__ works like GCC (or mingw) in which you can
declare everything as export and it will just work (slower, but
it will work). But there's a caveat: global variables will not
work the same way for MSVC, but works for mingw and GCC.

For global variables (as opposed to functions), MSVC requires
correct DSO visibility for MSVC: instead of declaring a symbol as
export for everything, you need to declare it as import when
importing from another DSO and export when defining it locally.

With current EAPI definitions, we get the following example
working in mingw and MSVC (observe it doesn't define any global
variables as exported symbols).
```

Example 1:
dll1:
```
EAPI void foo(void);

EAPI void bar()
{
  foo();
}
```
dll2:
```
EAPI void foo()
{
  printf ("foo\n");
}
```

This works fine with API defined as __declspec(dllexport) in both
cases and for gcc defining as
```__atttribute__((visibility("default")))```

However, the following:
Example 2:

dll1:

```
EAPI extern int foo;
EAPI void foobar(void);

EAPI void bar()
{
  foo = 5;
  foobar();
}
```

dll2:

```
EAPI int foo = 0;
EAPI void foobar()
{
  printf ("foo %d\n", foo);
}
```

This will work on mingw but will not work for MSVC. And that's why
EAPI is the only solution that worked for MSVC.

Co-authored-by: João Paulo Taylor Ienczak Zanette 
Co-authored-by: Ricardo Campos 
Co-authored-by: Lucas Cavalcante de Sousa 

Reviewers: raster, vtorri, jptiz, lucas, woohyun

Reviewed By: vtorri, jptiz

Subscribers: ProhtMeyhet, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D12182
---
 src/lib/evil/evil_dlfcn.c| 10 +-
 src/lib/evil/evil_dlfcn.h| 11 ++-
 src/lib/evil/evil_fcntl.c|  3 ++-
 src/lib/evil/evil_fcntl.h|  2 +-
 src/lib/evil/evil_langinfo.c |  2 +-
 src/lib/evil/evil_langinfo.h |  2 +-
 src/lib/evil/evil_locale.c   | 19 +++
 src/lib/evil/evil_locale.h   |  2 +-
 src/lib/evil/evil_main.h |  4 ++--
 src/lib/evil/evil_mman.c |  6 +++---
 src/lib/evil/evil_mman.h |  6 +++---
 src/lib/evil/evil_private.h  | 41 +++--
 src/lib/evil/evil_stdio.c|  4 ++--
 src/lib/evil/evil_stdio.h|  4 ++--
 src/lib/evil/evil_stdlib.c   |  6 +++---
 src/lib/evil/evil_stdlib.h   |  7 ---
 src/lib/evil/evil_string.c   |  4 ++--
 src/lib/evil/evil_string.h   |  4 ++--
 src/lib/evil/evil_time.c |  2 +-
 src/lib/evil/evil_time.h |  4 ++--
 src/lib/evil/evil_unistd.c   |  8 
 src/lib/evil/evil_unistd.h   |  9 +
 src/lib/evil/evil_util.c | 14 +++---
 src/lib/evil/evil_util.h | 14 +++---
 src/lib/evil/meson.build |  2 +-
 25 files changed, 101 insertions(+), 89 deletions(-)

diff --git a/src/lib/evil/evil_dlfcn.c b/src/lib/evil/evil_dlfcn.c
index ef161cc782..a6ee3e1c9c 100644
--- a/src/lib/evil/evil_dlfcn.c
+++ b/src/lib/evil/evil_dlfcn.c
@@ -39,7 +39,7 @@ _dl_get_last_error(char *desc)
_dl_err_viewed = 0;
 }
 
-void *
+EVIL_API void *
 dlopen(const char* path, int mode EVIL_UNUSED)
 {
HMODULE module = NULL;
@@ -95,7 +95,7 @@ dlopen(const char* path, int mode EVIL_UNUSED)
return module;
 }
 
-int
+EVIL_API int
 dlclose(void* handle)
 {
if (FreeLibrary(handle))
@@ -107,7 +107,7 @@ dlclose(void* handle)
  }
 }
 
-void *
+EVIL_API void *
 dlsym(void *handle, const char *symbol)
 {
FARPROC fp = NULL;
@@ -157,7 +157,7 @@ dlsym(void *handle, const char *symbol)
return fp;
 }
 
-char *
+EVIL_API char *
 dlerror (void)
 {
if (!_dl_err_viewed)
@@ -184,7 +184,7 @@ _dladdr_comp(const void *p1, const void *p2)
return ( *(int *)p1 - *(int *)p2);
 }
 
-int
+EVIL_API int
 dladdr (const void *addr, Dl_info *info)
 {
TCHAR tpath[PATH_MAX];
diff --git a/src/lib/evil/evil_dlfcn.h b/src/lib/evil/evil_dlfcn.h
index c55ce2562e..3b274e0aa6 100644
--- a/src/lib/evil/evil_dlfcn.h
+++ b/src/lib/evil/evil_dlfcn.h
@@ -2,6 +2,7 @@

[EGIT] [core/efl] master 01/01: evil: undef setlocale to avoid recursion

2020-10-27 Thread Felipe Magno de Almeida
felipealmeida pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=e9ee9cc3a0c414ec2a14a0817e89c4a46c8f93f0

commit e9ee9cc3a0c414ec2a14a0817e89c4a46c8f93f0
Author: Felipe Magno de Almeida 
Date:   Tue Oct 27 11:04:52 2020 -0300

evil: undef setlocale to avoid recursion

Summary:
evil_setlocale implementation must not call itself, so it must #undef
setlocale to avoid replacing with evil_setlocale.

Reviewers: vtorri, jptiz, lucas

Reviewed By: vtorri, jptiz

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D12184
---
 src/lib/evil/evil_locale.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/lib/evil/evil_locale.c b/src/lib/evil/evil_locale.c
index 15610da6a6..c932b27a69 100644
--- a/src/lib/evil/evil_locale.c
+++ b/src/lib/evil/evil_locale.c
@@ -35,6 +35,8 @@
  */
 static char _evil_locale_buf[18];
 
+#undef setlocale
+
 char *evil_setlocale(int category, const char *locale)
 {
char buf[9];

-- 




[EGIT] [website/www-content] master 01/01: Wiki page Compiling_the_native_Windows_EFL changed with summary [] by Felipe Magno de Almeida

2020-09-10 Thread Felipe Magno de Almeida
WWW-www.enlightenment.org pushed a commit to branch master.

http://git.enlightenment.org/website/www-content.git/commit/?id=9845ade2327a236de7766569c54d217ec859d7ed

commit 9845ade2327a236de7766569c54d217ec859d7ed
Author: Felipe Magno de Almeida 
Date:   Wed Sep 9 23:00:38 2020 -0700

Wiki page Compiling_the_native_Windows_EFL changed with summary [] by 
Felipe Magno de Almeida
---
 pages/Compiling_the_native_Windows_EFL.txt | 6 --
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/pages/Compiling_the_native_Windows_EFL.txt 
b/pages/Compiling_the_native_Windows_EFL.txt
index 681e533e0..bb059b683 100644
--- a/pages/Compiling_the_native_Windows_EFL.txt
+++ b/pages/Compiling_the_native_Windows_EFL.txt
@@ -90,7 +90,9 @@ Vcpkg is not strictly necessary, since you could install each 
of the dependencie
 
 To manage dependencies with vcpkg:
 
-4.1. Follow the **Vcpkg Installation Guide** in 
[[https://github.com/microsoft/vcpkg|Vcpkg's Github Repository]].
+4.1. Follow the **Vcpkg Installation Guide** in 
[[https://github.com/microsoft/vcpkg|Vcpkg's Github Repository]]. You should 
checkout a tag before bootstrapping like this:
+
+c:\vcpkg-path> git checkout 2020.07
 
 4.2. Install the following dependencies for x64 windows:
 
@@ -103,7 +105,7 @@ To manage dependencies with vcpkg:
  - Zlib.
 
  
-c:\path-to-vcpkg> vcpkg install openssl:x64-windows freetype:x64-windows 
check:x64-windows libpng:x64-windows zlib:x64-windows libjpeg-turbo:x64-windows 
curl:x64-windows
+c:\vcpkg-path> vcpkg install openssl:x64-windows freetype:x64-windows 
check:x64-windows libpng:x64-windows zlib:x64-windows libjpeg-turbo:x64-windows 
curl:x64-windows
  
 
  This way vcpkg will download, setup and install all of those dependencies.

-- 




[EGIT] [website/www-content] master 01/01: Wiki page Compiling_the_native_Windows_EFL changed with summary [] by Felipe Magno de Almeida

2020-09-09 Thread Felipe Magno de Almeida
WWW-www.enlightenment.org pushed a commit to branch master.

http://git.enlightenment.org/website/www-content.git/commit/?id=538fa4d2002004235dba6f9d62a749dc84dc48af

commit 538fa4d2002004235dba6f9d62a749dc84dc48af
Author: Felipe Magno de Almeida 
Date:   Wed Sep 9 22:53:48 2020 -0700

Wiki page Compiling_the_native_Windows_EFL changed with summary [] by 
Felipe Magno de Almeida
---
 pages/Compiling_the_native_Windows_EFL.txt | 4 
 1 file changed, 4 insertions(+)

diff --git a/pages/Compiling_the_native_Windows_EFL.txt 
b/pages/Compiling_the_native_Windows_EFL.txt
index 07eda410e..681e533e0 100644
--- a/pages/Compiling_the_native_Windows_EFL.txt
+++ b/pages/Compiling_the_native_Windows_EFL.txt
@@ -139,3 +139,7 @@ Then we can configure and build and install
 c:\efl-path> configure.bat --prefix=C:\efl
 c:\efl-path> build.bat
 c:\efl-path> install.bat
+
+c:\efl-path> cd efl-prefix-path
+c:\efl-prefix-path> cd bin
+c:\efl-prefix-path\bin> .\elementary_test.exe
\ No newline at end of file

-- 




[EGIT] [website/www-content] master 01/01: Wiki page Compiling_the_native_Windows_EFL changed with summary [] by Felipe Magno de Almeida

2020-09-09 Thread Felipe Magno de Almeida
WWW-www.enlightenment.org pushed a commit to branch master.

http://git.enlightenment.org/website/www-content.git/commit/?id=65e824be3c94a4ae0d74031fd3fe35800d3a3957

commit 65e824be3c94a4ae0d74031fd3fe35800d3a3957
Author: Felipe Magno de Almeida 
Date:   Wed Sep 9 22:35:55 2020 -0700

Wiki page Compiling_the_native_Windows_EFL changed with summary [] by 
Felipe Magno de Almeida
---
 pages/Compiling_the_native_Windows_EFL.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pages/Compiling_the_native_Windows_EFL.txt 
b/pages/Compiling_the_native_Windows_EFL.txt
index 287f7ec02..07eda410e 100644
--- a/pages/Compiling_the_native_Windows_EFL.txt
+++ b/pages/Compiling_the_native_Windows_EFL.txt
@@ -125,7 +125,7 @@ The cmake found by meson still has to find the 
dependencies, but vcpkg's install
 Create an environment ''env.bat'' file in EFL's root (e.g. 
''C:/Users/Someone/efl/env.bat'') before calling ''configure.bat'', containing 
for example (considering vcpkg is installed in ''C:\Users\Someone\vcpkg''):
 
 
-c:\efl-path> echo "set 
vcpkg_toolchain_file=C:\vcpkg-path\scripts\buildsystems\vcpkg.cmake" > env.bat
+c:\efl-path> echo set 
vcpkg_toolchain_file=C:\vcpkg-path\scripts\buildsystems\vcpkg.cmake > env.bat
 
 
 This file is run everytime by ''configure.bat'' as a special way to set local 
custom environment variables.

-- 




[EGIT] [website/www-content] master 01/01: Wiki page Compiling_the_native_Windows_EFL changed with summary [] by Felipe Magno de Almeida

2020-09-09 Thread Felipe Magno de Almeida
WWW-www.enlightenment.org pushed a commit to branch master.

http://git.enlightenment.org/website/www-content.git/commit/?id=75f00fadc4f89540c59b7f7aa5fde591cdda95d9

commit 75f00fadc4f89540c59b7f7aa5fde591cdda95d9
Author: Felipe Magno de Almeida 
Date:   Wed Sep 9 22:33:53 2020 -0700

Wiki page Compiling_the_native_Windows_EFL changed with summary [] by 
Felipe Magno de Almeida
---
 pages/Compiling_the_native_Windows_EFL.txt | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/pages/Compiling_the_native_Windows_EFL.txt 
b/pages/Compiling_the_native_Windows_EFL.txt
index 7745d6adf..287f7ec02 100644
--- a/pages/Compiling_the_native_Windows_EFL.txt
+++ b/pages/Compiling_the_native_Windows_EFL.txt
@@ -15,7 +15,6 @@ Except for topic 6 (Environment variables) that can be 
consulted during the proc
 - Meson
 - LLVM
 - Vcpkg
-- Environment variables
 - Compiling the EFL
 
 
@@ -133,7 +132,7 @@ This file is run everytime by ''configure.bat'' as a 
special way to set local cu
 
 It is necessary to add the vcpkg-installed dependencies to PATH environment 
variable so EFL binaries built and used in efl's build can find its 
dependencies.
 
-c:\efl-path> set 
"PATH=%PATH%;C:\path-to-vcpkg\installed\x64-windows\bin"
+c:\efl-path> set 
"PATH=%PATH%;C:\path-to-vcpkg\installed\x64-windows\debug\bin;C:\path-to-vcpkg\installed\x64-windows\bin"
 
 Then we can configure and build and install
 

-- 




[EGIT] [website/www-content] master 01/01: Wiki page Compiling_the_native_Windows_EFL changed with summary [] by Felipe Magno de Almeida

2020-09-09 Thread Felipe Magno de Almeida
WWW-www.enlightenment.org pushed a commit to branch master.

http://git.enlightenment.org/website/www-content.git/commit/?id=6968eb5684d16b2126965f7d46ad1a8013520ef3

commit 6968eb5684d16b2126965f7d46ad1a8013520ef3
Author: Felipe Magno de Almeida 
Date:   Wed Sep 9 21:48:17 2020 -0700

Wiki page Compiling_the_native_Windows_EFL changed with summary [] by 
Felipe Magno de Almeida
---
 pages/Compiling_the_native_Windows_EFL.txt | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/pages/Compiling_the_native_Windows_EFL.txt 
b/pages/Compiling_the_native_Windows_EFL.txt
index 18487f9f6..7745d6adf 100644
--- a/pages/Compiling_the_native_Windows_EFL.txt
+++ b/pages/Compiling_the_native_Windows_EFL.txt
@@ -95,6 +95,7 @@ To manage dependencies with vcpkg:
 
 4.2. Install the following dependencies for x64 windows:
 
+ - Curl;
  - OpenSSL;
  - Freetype;
  - Check;
@@ -103,7 +104,7 @@ To manage dependencies with vcpkg:
  - Zlib.
 
  
-c:\path-to-vcpkg> vcpkg install openssl:x64-windows freetype:x64-windows 
check:x64-windows libpng:x64-windows zlib:x64-windows libjpeg-turbo:x64-windows
+c:\path-to-vcpkg> vcpkg install openssl:x64-windows freetype:x64-windows 
check:x64-windows libpng:x64-windows zlib:x64-windows libjpeg-turbo:x64-windows 
curl:x64-windows
  
 
  This way vcpkg will download, setup and install all of those dependencies.

-- 




[EGIT] [website/www-content] master 01/01: Wiki page Compiling_the_native_Windows_EFL changed with summary [] by Felipe Magno de Almeida

2020-09-09 Thread Felipe Magno de Almeida
WWW-www.enlightenment.org pushed a commit to branch master.

http://git.enlightenment.org/website/www-content.git/commit/?id=10803d5bd464cbb72db95b1e1a600a2bd2ceb175

commit 10803d5bd464cbb72db95b1e1a600a2bd2ceb175
Author: Felipe Magno de Almeida 
Date:   Wed Sep 9 21:45:30 2020 -0700

Wiki page Compiling_the_native_Windows_EFL changed with summary [] by 
Felipe Magno de Almeida
---
 pages/Compiling_the_native_Windows_EFL.txt | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/pages/Compiling_the_native_Windows_EFL.txt 
b/pages/Compiling_the_native_Windows_EFL.txt
index 93b3ca44e..18487f9f6 100644
--- a/pages/Compiling_the_native_Windows_EFL.txt
+++ b/pages/Compiling_the_native_Windows_EFL.txt
@@ -99,10 +99,11 @@ To manage dependencies with vcpkg:
  - Freetype;
  - Check;
  - Libpng;
+ - Libjpeg-turbo;
  - Zlib.
 
  
-c:\path-to-vcpkg> vcpkg install openssl:x64-windows freetype:x64-windows 
check:x64-windows libpng:x64-windows zlib:x64-windows
+c:\path-to-vcpkg> vcpkg install openssl:x64-windows freetype:x64-windows 
check:x64-windows libpng:x64-windows zlib:x64-windows libjpeg-turbo:x64-windows
  
 
  This way vcpkg will download, setup and install all of those dependencies.

-- 




[EGIT] [website/www-content] master 01/01: Wiki page Compiling_the_native_Windows_EFL changed with summary [] by Felipe Magno de Almeida

2020-09-09 Thread Felipe Magno de Almeida
WWW-www.enlightenment.org pushed a commit to branch master.

http://git.enlightenment.org/website/www-content.git/commit/?id=a5724d669fc69bb34834b06fbf0c3d31c3dc0481

commit a5724d669fc69bb34834b06fbf0c3d31c3dc0481
Author: Felipe Magno de Almeida 
Date:   Wed Sep 9 20:37:17 2020 -0700

Wiki page Compiling_the_native_Windows_EFL changed with summary [] by 
Felipe Magno de Almeida
---
 pages/Compiling_the_native_Windows_EFL.txt | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pages/Compiling_the_native_Windows_EFL.txt 
b/pages/Compiling_the_native_Windows_EFL.txt
index 578f9a4a9..93b3ca44e 100644
--- a/pages/Compiling_the_native_Windows_EFL.txt
+++ b/pages/Compiling_the_native_Windows_EFL.txt
@@ -121,10 +121,10 @@ The cmake found by meson still has to find the 
dependencies, but vcpkg's install
 ''configure.bat'' uses the ''vcpkg_toolchain_file'' environment variable to 
pass the toolset as parameter to CMake from Meson.
 
 
-Create an environment ''env.bat'' file in EFL's root (e.g. 
''C:/Users/Someone/efl/env.bat'') before calling ''configure.bat'', containing 
for example (considering vcpkg is installed in ''C:/Users/Someone/vcpkg''):
+Create an environment ''env.bat'' file in EFL's root (e.g. 
''C:/Users/Someone/efl/env.bat'') before calling ''configure.bat'', containing 
for example (considering vcpkg is installed in ''C:\Users\Someone\vcpkg''):
 
 
-c:\efl-path> echo "set 
vcpkg_toolchain_file=C:/Users/Someone/vcpkg/scripts/buildsystems/vcpkg.cmake" > 
env.bat
+c:\efl-path> echo "set 
vcpkg_toolchain_file=C:\vcpkg-path\scripts\buildsystems\vcpkg.cmake" > env.bat
 
 
 This file is run everytime by ''configure.bat'' as a special way to set local 
custom environment variables.

-- 




[EGIT] [website/www-content] master 01/01: Wiki page Compiling_the_native_Windows_EFL changed with summary [] by Felipe Magno de Almeida

2020-09-09 Thread Felipe Magno de Almeida
WWW-www.enlightenment.org pushed a commit to branch master.

http://git.enlightenment.org/website/www-content.git/commit/?id=fe8db9f225b9b9ec0392dca2fa2686c2dc3501b7

commit fe8db9f225b9b9ec0392dca2fa2686c2dc3501b7
Author: Felipe Magno de Almeida 
Date:   Wed Sep 9 20:34:36 2020 -0700

Wiki page Compiling_the_native_Windows_EFL changed with summary [] by 
Felipe Magno de Almeida
---
 pages/Compiling_the_native_Windows_EFL.txt | 8 +++-
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/pages/Compiling_the_native_Windows_EFL.txt 
b/pages/Compiling_the_native_Windows_EFL.txt
index cce756f27..578f9a4a9 100644
--- a/pages/Compiling_the_native_Windows_EFL.txt
+++ b/pages/Compiling_the_native_Windows_EFL.txt
@@ -93,7 +93,7 @@ To manage dependencies with vcpkg:
 
 4.1. Follow the **Vcpkg Installation Guide** in 
[[https://github.com/microsoft/vcpkg|Vcpkg's Github Repository]].
 
-4.2. Install the following dependencies:
+4.2. Install the following dependencies for x64 windows:
 
  - OpenSSL;
  - Freetype;
@@ -101,10 +101,8 @@ To manage dependencies with vcpkg:
  - Libpng;
  - Zlib.
 
- Or, in a single command line (considering vcpkg is in your PATH or that 
you're inside vcpkg's directory):
-
  
- > vcpkg install openssl:x64-windows freetype:x64-windows check:x64-windows 
libpng:x64-windows zlib:x64-windows
+c:\path-to-vcpkg> vcpkg install openssl:x64-windows freetype:x64-windows 
check:x64-windows libpng:x64-windows zlib:x64-windows
  
 
  This way vcpkg will download, setup and install all of those dependencies.
@@ -133,7 +131,7 @@ This file is run everytime by ''configure.bat'' as a 
special way to set local cu
 
 It is necessary to add the vcpkg-installed dependencies to PATH environment 
variable so EFL binaries built and used in efl's build can find its 
dependencies.
 
-efl-path> set 
"PATH=%PATH%;C:\path-to-vcpkg\installed\x64-windows\bin"
+c:\efl-path> set 
"PATH=%PATH%;C:\path-to-vcpkg\installed\x64-windows\bin"
 
 Then we can configure and build and install
 

-- 




[EGIT] [website/www-content] master 01/01: Wiki page Compiling_the_native_Windows_EFL changed with summary [] by Felipe Magno de Almeida

2020-09-09 Thread Felipe Magno de Almeida
WWW-www.enlightenment.org pushed a commit to branch master.

http://git.enlightenment.org/website/www-content.git/commit/?id=ca6954a5c4ca1e0d635a11324b5a148a42c2e8df

commit ca6954a5c4ca1e0d635a11324b5a148a42c2e8df
Author: Felipe Magno de Almeida 
Date:   Wed Sep 9 20:28:34 2020 -0700

Wiki page Compiling_the_native_Windows_EFL changed with summary [] by 
Felipe Magno de Almeida
---
 pages/Compiling_the_native_Windows_EFL.txt | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/pages/Compiling_the_native_Windows_EFL.txt 
b/pages/Compiling_the_native_Windows_EFL.txt
index 3e498c45f..cce756f27 100644
--- a/pages/Compiling_the_native_Windows_EFL.txt
+++ b/pages/Compiling_the_native_Windows_EFL.txt
@@ -126,7 +126,7 @@ The cmake found by meson still has to find the 
dependencies, but vcpkg's install
 Create an environment ''env.bat'' file in EFL's root (e.g. 
''C:/Users/Someone/efl/env.bat'') before calling ''configure.bat'', containing 
for example (considering vcpkg is installed in ''C:/Users/Someone/vcpkg''):
 
 
-path-to-efl> echo "set 
vcpkg_toolchain_file=C:/Users/Someone/vcpkg/scripts/buildsystems/vcpkg.cmake" > 
env.bat
+c:\efl-path> echo "set 
vcpkg_toolchain_file=C:/Users/Someone/vcpkg/scripts/buildsystems/vcpkg.cmake" > 
env.bat
 
 
 This file is run everytime by ''configure.bat'' as a special way to set local 
custom environment variables.
@@ -137,6 +137,6 @@ It is necessary to add the vcpkg-installed dependencies to 
PATH environment vari
 
 Then we can configure and build and install
 
-efl-path> configure.bat --prefix=C:\efl
-efl-path> build.bat
-efl-path> install.bat
+c:\efl-path> configure.bat --prefix=C:\efl
+c:\efl-path> build.bat
+c:\efl-path> install.bat

-- 




[EGIT] [website/www-content] master 01/01: Wiki page Compiling_the_native_Windows_EFL changed with summary [] by Felipe Magno de Almeida

2020-09-09 Thread Felipe Magno de Almeida
WWW-www.enlightenment.org pushed a commit to branch master.

http://git.enlightenment.org/website/www-content.git/commit/?id=62a3d52f3b7537a8cc207ab6033143b1439dd2d2

commit 62a3d52f3b7537a8cc207ab6033143b1439dd2d2
Author: Felipe Magno de Almeida 
Date:   Wed Sep 9 20:19:27 2020 -0700

Wiki page Compiling_the_native_Windows_EFL changed with summary [] by 
Felipe Magno de Almeida
---
 pages/Compiling_the_native_Windows_EFL.txt | 7 +++
 1 file changed, 7 insertions(+)

diff --git a/pages/Compiling_the_native_Windows_EFL.txt 
b/pages/Compiling_the_native_Windows_EFL.txt
index cb32dda80..3e498c45f 100644
--- a/pages/Compiling_the_native_Windows_EFL.txt
+++ b/pages/Compiling_the_native_Windows_EFL.txt
@@ -131,5 +131,12 @@ path-to-efl> echo "set 
vcpkg_toolchain_file=C:/Users/Someone/vcpkg/scripts/build
 
 This file is run everytime by ''configure.bat'' as a special way to set local 
custom environment variables.
 
+It is necessary to add the vcpkg-installed dependencies to PATH environment 
variable so EFL binaries built and used in efl's build can find its 
dependencies.
+
+efl-path> set 
"PATH=%PATH%;C:\path-to-vcpkg\installed\x64-windows\bin"
+
+Then we can configure and build and install
+
 efl-path> configure.bat --prefix=C:\efl
 efl-path> build.bat
+efl-path> install.bat

-- 




[EGIT] [website/www-content] master 01/01: Wiki page Compiling_the_native_Windows_EFL changed with summary [] by Felipe Magno de Almeida

2020-09-09 Thread Felipe Magno de Almeida
WWW-www.enlightenment.org pushed a commit to branch master.

http://git.enlightenment.org/website/www-content.git/commit/?id=9080b57a95bc09e1ef36e6d549628ed6b0ae3542

commit 9080b57a95bc09e1ef36e6d549628ed6b0ae3542
Author: Felipe Magno de Almeida 
Date:   Wed Sep 9 20:09:41 2020 -0700

Wiki page Compiling_the_native_Windows_EFL changed with summary [] by 
Felipe Magno de Almeida
---
 pages/Compiling_the_native_Windows_EFL.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pages/Compiling_the_native_Windows_EFL.txt 
b/pages/Compiling_the_native_Windows_EFL.txt
index 5a8c67933..cb32dda80 100644
--- a/pages/Compiling_the_native_Windows_EFL.txt
+++ b/pages/Compiling_the_native_Windows_EFL.txt
@@ -109,7 +109,7 @@ To manage dependencies with vcpkg:
 
  This way vcpkg will download, setup and install all of those dependencies.
 
-Check that all dependencies were installed at ''installed\
+Check that all dependencies were installed at ''installed\x64-windows\bin''.
 
 
 

-- 




[EGIT] [website/www-content] master 01/01: Wiki page Compiling_the_native_Windows_EFL changed with summary [] by Felipe Magno de Almeida

2020-09-09 Thread Felipe Magno de Almeida
WWW-www.enlightenment.org pushed a commit to branch master.

http://git.enlightenment.org/website/www-content.git/commit/?id=ba124fd62f39a71704c3658c0f99a39a8de63879

commit ba124fd62f39a71704c3658c0f99a39a8de63879
Author: Felipe Magno de Almeida 
Date:   Wed Sep 9 20:00:24 2020 -0700

Wiki page Compiling_the_native_Windows_EFL changed with summary [] by 
Felipe Magno de Almeida
---
 pages/Compiling_the_native_Windows_EFL.txt | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/pages/Compiling_the_native_Windows_EFL.txt 
b/pages/Compiling_the_native_Windows_EFL.txt
index 96cd06c6d..5a8c67933 100644
--- a/pages/Compiling_the_native_Windows_EFL.txt
+++ b/pages/Compiling_the_native_Windows_EFL.txt
@@ -104,11 +104,13 @@ To manage dependencies with vcpkg:
  Or, in a single command line (considering vcpkg is in your PATH or that 
you're inside vcpkg's directory):
 
  
- > vcpkg install openssl freetype check libpng zlib
+ > vcpkg install openssl:x64-windows freetype:x64-windows check:x64-windows 
libpng:x64-windows zlib:x64-windows
  
 
  This way vcpkg will download, setup and install all of those dependencies.
 
+Check that all dependencies were installed at ''installed\
+
 
 
 === 7 - Compiling EFL ===

-- 




[EGIT] [website/www-content] master 01/01: Wiki page Compiling_the_native_Windows_EFL changed with summary [] by Felipe Magno de Almeida

2020-09-09 Thread Felipe Magno de Almeida
WWW-www.enlightenment.org pushed a commit to branch master.

http://git.enlightenment.org/website/www-content.git/commit/?id=635eeb48cb09ebaca1396342b579b87b8341ddbe

commit 635eeb48cb09ebaca1396342b579b87b8341ddbe
Author: Felipe Magno de Almeida 
Date:   Wed Sep 9 19:52:13 2020 -0700

Wiki page Compiling_the_native_Windows_EFL changed with summary [] by 
Felipe Magno de Almeida
---
 pages/Compiling_the_native_Windows_EFL.txt | 29 -
 1 file changed, 12 insertions(+), 17 deletions(-)

diff --git a/pages/Compiling_the_native_Windows_EFL.txt 
b/pages/Compiling_the_native_Windows_EFL.txt
index 0e8546ea1..96cd06c6d 100644
--- a/pages/Compiling_the_native_Windows_EFL.txt
+++ b/pages/Compiling_the_native_Windows_EFL.txt
@@ -109,9 +109,17 @@ To manage dependencies with vcpkg:
 
  This way vcpkg will download, setup and install all of those dependencies.
 
-4.3. Set vcpkg toolchain file for meson
+
+
+=== 7 - Compiling EFL ===
+
+Clone the [[https://github.com/expertisesolutions/efl.git|EFL Native Windows 
Repository]] repository.
+
+
+The cmake found by meson still has to find the dependencies, but vcpkg's 
installed libraries aren't found by default. For that, [vcpkg's 
docummentation](https://github.com/microsoft/vcpkg#using-vcpkg-with-cmake) 
recommends using the cmake argument ''CMAKE_TOOLCHAIN_FILE'' to point to 
vcpkg's toolchain file.
 
-The cmake found by meson still has to find the dependencies, but vcpkg's 
installed libraries aren't found by default. For that, [vcpkg's 
docummentation](https://github.com/microsoft/vcpkg#using-vcpkg-with-cmake) 
recommends using the cmake argument ''CMAKE_TOOLCHAIN_FILE'' to point to 
vcpkg's toolchain file. In current EFL build, to do that, you may set the 
variable ''VCPKG_TOOLCHAIN_FILE'' which is automatically sent to meson when 
calling ''configure.bat''.
+''configure.bat'' uses the ''vcpkg_toolchain_file'' environment variable to 
pass the toolset as parameter to CMake from Meson.
+
 
 Create an environment ''env.bat'' file in EFL's root (e.g. 
''C:/Users/Someone/efl/env.bat'') before calling ''configure.bat'', containing 
for example (considering vcpkg is installed in ''C:/Users/Someone/vcpkg''):
 
@@ -121,18 +129,5 @@ path-to-efl> echo "set 
vcpkg_toolchain_file=C:/Users/Someone/vcpkg/scripts/build
 
 This file is run everytime by ''configure.bat'' as a special way to set local 
custom environment variables.
 
-
-
-=== 7 - Compiling EFL ===
-
-* Choose a directory to clone **EFL** repository;
-* Clone the [[https://github.com/expertisesolutions/efl.git|EFL Native 
Windows Repository]] repository.
-* Open Visual Studio's **Developer Command Prompt** in the EFL directory 
and run the following command:
-* > configure.bat
-* If an error occurs in this step, it is generally due to opening a 
regular Command Prompt (instead of VS's Developer Command Prompt). In that 
case, you may manually setup the developer prompt by entering the following 
command:  
-*  > "C:\Program Files (x86)\Microsoft Visual Studio\\\VC\Auxiliary\Build\vcvars64.bat"   
-* If it still does not work, try to:
-  - Delete the ''build'' directory;
-  - Delete every subdirectory inside ''subprojects'' (**NOTE: Do NOT 
delete the .wrap files!**)
-* After you finish, rerun **configure.bat**, execute **build.bat**:
- * > build.bat
\ No newline at end of file
+efl-path> configure.bat --prefix=C:\efl
+efl-path> build.bat

-- 




[EGIT] [website/www-content] master 01/01: Wiki page Compiling_the_native_Windows_EFL changed with summary [] by Felipe Magno de Almeida

2020-09-09 Thread Felipe Magno de Almeida
WWW-www.enlightenment.org pushed a commit to branch master.

http://git.enlightenment.org/website/www-content.git/commit/?id=3908d445aeef3842dbba4c5cf937848f6b0a0869

commit 3908d445aeef3842dbba4c5cf937848f6b0a0869
Author: Felipe Magno de Almeida 
Date:   Wed Sep 9 19:41:55 2020 -0700

Wiki page Compiling_the_native_Windows_EFL changed with summary [] by 
Felipe Magno de Almeida
---
 pages/Compiling_the_native_Windows_EFL.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pages/Compiling_the_native_Windows_EFL.txt 
b/pages/Compiling_the_native_Windows_EFL.txt
index 201be5edf..0e8546ea1 100644
--- a/pages/Compiling_the_native_Windows_EFL.txt
+++ b/pages/Compiling_the_native_Windows_EFL.txt
@@ -116,7 +116,7 @@ The cmake found by meson still has to find the 
dependencies, but vcpkg's install
 Create an environment ''env.bat'' file in EFL's root (e.g. 
''C:/Users/Someone/efl/env.bat'') before calling ''configure.bat'', containing 
for example (considering vcpkg is installed in ''C:/Users/Someone/vcpkg''):
 
 
-set 
vcpkg_toolchain_file=C:/Users/Someone/vcpkg/scripts/buildsystems/vcpkg.cmake
+path-to-efl> echo "set 
vcpkg_toolchain_file=C:/Users/Someone/vcpkg/scripts/buildsystems/vcpkg.cmake" > 
env.bat
 
 
 This file is run everytime by ''configure.bat'' as a special way to set local 
custom environment variables.

-- 




[EGIT] [website/www-content] master 01/01: Wiki page Compiling_the_native_Windows_EFL changed with summary [] by Felipe Magno de Almeida

2020-09-09 Thread Felipe Magno de Almeida
WWW-www.enlightenment.org pushed a commit to branch master.

http://git.enlightenment.org/website/www-content.git/commit/?id=c28568dc5331d4bc807a3c04d154ecf6baa8586d

commit c28568dc5331d4bc807a3c04d154ecf6baa8586d
Author: Felipe Magno de Almeida 
Date:   Wed Sep 9 19:32:26 2020 -0700

Wiki page Compiling_the_native_Windows_EFL changed with summary [] by 
Felipe Magno de Almeida
---
 pages/Compiling_the_native_Windows_EFL.txt | 32 --
 1 file changed, 32 deletions(-)

diff --git a/pages/Compiling_the_native_Windows_EFL.txt 
b/pages/Compiling_the_native_Windows_EFL.txt
index cfb95b9ad..201be5edf 100644
--- a/pages/Compiling_the_native_Windows_EFL.txt
+++ b/pages/Compiling_the_native_Windows_EFL.txt
@@ -123,38 +123,6 @@ This file is run everytime by ''configure.bat'' as a 
special way to set local cu
 
 
 
-=== 7 Windows Environment Variables ===
-
-  * This module aims to check environment variables.
-
-==Python==
-
-
-**[OBS]**
-
-Python paths in this tutorial consider that the current installed Python 
version is 3.8. Don't forget to check the respective paths according to the 
location of your current Python installation.
-
-
-During python installation, you can select the option to add python 
environment variables automatically. If there is a problem with Meson, check 
the existing variables and add as shown below:
-* Open the windows environment variable editor, for the variables 
corresponding to the user, locate **''path''** and double-click it (or click 
the Edit button). In the next window, click the "New" button and add the 
following directories:
-* 
C:\Users\\AppData\Roaming\Python\Python38\Scripts
-* C:\Python38
-* C:\Python38\Scripts
-
-==OpenSSL==
-
-In case you're using a custom OpenSSL installation (not the one from vcpkg), 
you may want to set ''OPENSSL_DIR'' environment variable in order to EFL search 
for your installation instead of vcpkg's. For this:
-* Open the windows environment variable editor. In user's variable list, 
click **New**:
-* Set **Variable name** to:
-* OPENSSL_DIR
-* Set **Variable value** to your OpenSSL installation path, for 
example:   
-* C:\Users\\AppData\Local\efl\openssl
-* For clarification: ''OPENSSL_DIR'' must point to the directory where 
the file ''libssl.lib'' and the directory ''include/'' are located.
-
-The current build system will also warn you about this file.
-
-
-
 === 7 - Compiling EFL ===
 
 * Choose a directory to clone **EFL** repository;

-- 




[EGIT] [website/www-content] master 01/01: Wiki page Compiling_the_native_Windows_EFL changed with summary [] by Felipe Magno de Almeida

2020-09-09 Thread Felipe Magno de Almeida
WWW-www.enlightenment.org pushed a commit to branch master.

http://git.enlightenment.org/website/www-content.git/commit/?id=b145db664f067945ea7e05f70543c1ada0e3fbce

commit b145db664f067945ea7e05f70543c1ada0e3fbce
Author: Felipe Magno de Almeida 
Date:   Wed Sep 9 19:30:58 2020 -0700

Wiki page Compiling_the_native_Windows_EFL changed with summary [] by 
Felipe Magno de Almeida
---
 pages/Compiling_the_native_Windows_EFL.txt | 8 ++--
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/pages/Compiling_the_native_Windows_EFL.txt 
b/pages/Compiling_the_native_Windows_EFL.txt
index 9c0d0ddf4..cfb95b9ad 100644
--- a/pages/Compiling_the_native_Windows_EFL.txt
+++ b/pages/Compiling_the_native_Windows_EFL.txt
@@ -109,21 +109,17 @@ To manage dependencies with vcpkg:
 
  This way vcpkg will download, setup and install all of those dependencies.
 
-4.3. Send vcpkg toolchain file to meson
+4.3. Set vcpkg toolchain file for meson
 
 The cmake found by meson still has to find the dependencies, but vcpkg's 
installed libraries aren't found by default. For that, [vcpkg's 
docummentation](https://github.com/microsoft/vcpkg#using-vcpkg-with-cmake) 
recommends using the cmake argument ''CMAKE_TOOLCHAIN_FILE'' to point to 
vcpkg's toolchain file. In current EFL build, to do that, you may set the 
variable ''VCPKG_TOOLCHAIN_FILE'' which is automatically sent to meson when 
calling ''configure.bat''.
 
-
-**[Hint]**
-  
-You can create an environment ''env.bat'' file in EFL's root (e.g. 
''C:/Users/Someone/efl/env.bat'') before calling ''configure.bat'', containing 
for example (considering vcpkg is installed in ''C:/Users/Someone/vcpkg''):
+Create an environment ''env.bat'' file in EFL's root (e.g. 
''C:/Users/Someone/efl/env.bat'') before calling ''configure.bat'', containing 
for example (considering vcpkg is installed in ''C:/Users/Someone/vcpkg''):
 
 
 set 
vcpkg_toolchain_file=C:/Users/Someone/vcpkg/scripts/buildsystems/vcpkg.cmake
 
 
 This file is run everytime by ''configure.bat'' as a special way to set local 
custom environment variables.
-
 
 
 

-- 




[EGIT] [website/www-content] master 01/01: Wiki page Compiling_the_native_Windows_EFL changed with summary [] by Felipe Magno de Almeida

2020-09-09 Thread Felipe Magno de Almeida
WWW-www.enlightenment.org pushed a commit to branch master.

http://git.enlightenment.org/website/www-content.git/commit/?id=1c265362e911ca9f787c18d10e9246f3edf83154

commit 1c265362e911ca9f787c18d10e9246f3edf83154
Author: Felipe Magno de Almeida 
Date:   Wed Sep 9 19:06:09 2020 -0700

Wiki page Compiling_the_native_Windows_EFL changed with summary [] by 
Felipe Magno de Almeida
---
 pages/Compiling_the_native_Windows_EFL.txt | 14 +++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/pages/Compiling_the_native_Windows_EFL.txt 
b/pages/Compiling_the_native_Windows_EFL.txt
index 9d9cef857..9c0d0ddf4 100644
--- a/pages/Compiling_the_native_Windows_EFL.txt
+++ b/pages/Compiling_the_native_Windows_EFL.txt
@@ -32,9 +32,17 @@ Except for topic 6 (Environment variables) that can be 
consulted during the proc
 
 
 
-=== 2 - Meson ===
+=== 2 - Python ===
 
-2.1. Install [[https://pypi.org/project/meson/|Meson]] using the following 
command on the terminal (CMD or Developer Command Prompt from Visual Studio):
+Meson depends on Python, so we need to install Python first.
+
+Go to Python website and download the latest Python installation for Windows.
+
+When installing it, select the option to add python to environment variables 
so it can be used in command-line.
+
+=== 3 - Meson ===
+
+3.1. Install [[https://pypi.org/project/meson/|Meson]] using the following 
command on the terminal (CMD or Developer Command Prompt from Visual Studio):
 
 
 > pip install --user meson
@@ -46,7 +54,7 @@ Except for topic 6 (Environment variables) that can be 
consulted during the proc
 
 > Check the python version installed on your Windows. In this tutorial we are 
 > using Python 3.8
 
- 2.2. At the end of the previous step, open a new terminal, type the command 
below and press enter:
+ 3.2. At the end of the previous step, open a new terminal, type the command 
below and press enter:
 
 
 > meson --version

-- 




[EGIT] [core/efl] master 04/04: cxx: Fix uses of intrinsic eolian binbuf type

2020-06-09 Thread Felipe Magno de Almeida
bu5hm4n pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=15acb0586a3e8e6a17d074e1e0142403752aa41b

commit 15acb0586a3e8e6a17d074e1e0142403752aa41b
Author: Felipe Magno de Almeida 
Date:   Mon Jun 8 18:05:49 2020 -0300

cxx: Fix uses of intrinsic eolian binbuf type

Add special binbuf and Eina_Strbuf conversions

Reviewed-by: Marcel Hollerbach 
Differential Revision: https://phab.enlightenment.org/D11950
---
 src/bindings/cxx/eo_cxx/eo_cxx_interop.hh | 29 +
 src/lib/eolian_cxx/grammar/type_impl.hpp  |  4 ++--
 2 files changed, 31 insertions(+), 2 deletions(-)

diff --git a/src/bindings/cxx/eo_cxx/eo_cxx_interop.hh 
b/src/bindings/cxx/eo_cxx/eo_cxx_interop.hh
index 633d377b0b..3f4521fe66 100644
--- a/src/bindings/cxx/eo_cxx/eo_cxx_interop.hh
+++ b/src/bindings/cxx/eo_cxx/eo_cxx_interop.hh
@@ -53,6 +53,10 @@ template <>
 struct in_traits { typedef efl::eina::strbuf type; };
 template <>
 struct in_traits { typedef efl::eina::strbuf const 
type; };
+template <>
+struct in_traits { typedef efl::eina::strbuf_view 
type; };
+template <>
+struct in_traits { typedef 
efl::eina::strbuf_view const type; };
 template 
 struct in_traits { typedef T& type; };
 template 
@@ -550,10 +554,22 @@ inline const char* 
convert_to_c_impl(efl::eina::stringshare x, tag)
+{
+   return x.native_handle();
+}
 inline Eina_Strbuf* convert_to_c_impl(efl::eina::strbuf& x, tag)
 {
return x.native_handle();
 }
+inline Eina_Strbuf const* convert_to_c_impl(efl::eina::strbuf_view const& x, 
tag)
+{
+   return x.native_handle();
+}
+inline Eina_Strbuf* convert_to_c_impl(efl::eina::strbuf_view const& x, 
tag)
+{
+   return const_cast(x.native_handle());
+}
 template 
 T* convert_to_c_impl(std::unique_ptr& v, tag>)
 {
@@ -732,6 +748,19 @@ T convert_to_return(U* value, tag, typename 
std::enable_if::v
   // const should be to the type if value is const
   return T{const_cast::type*>(value)};
 }
+inline eina::strbuf convert_to_return(Eina_Strbuf* value, tag)
+{
+  eina::strbuf_wrapper t{value};
+  return t;
+}
+inline eina::strbuf_view convert_to_return(Eina_Strbuf* value, 
tag)
+{
+  return {value};
+}
+inline eina::strbuf_view convert_to_return(Eina_Strbuf const* value, 
tag)
+{
+  return {value};
+}
 inline eina::stringshare convert_to_return(const Eina_Stringshare* value, 
tag)
 {
   return efl::eina::stringshare(value);
diff --git a/src/lib/eolian_cxx/grammar/type_impl.hpp 
b/src/lib/eolian_cxx/grammar/type_impl.hpp
index b43641a052..547132a31b 100644
--- a/src/lib/eolian_cxx/grammar/type_impl.hpp
+++ b/src/lib/eolian_cxx/grammar/type_impl.hpp
@@ -174,10 +174,10 @@ struct visitor_generate
 if (r.base_qualifier.qualifier & qualifier_info::is_const)
 {
   r.base_qualifier.qualifier ^= qualifier_info::is_const;
-  return replace_base_type(r, " Eina_Binbuf*");
+  return replace_base_type(r, " ::efl::eina::strbuf");
 }
 else
-  return replace_base_type(r, " Eina_Binbuf const*");
+  return replace_base_type(r, " ::efl::eina::strbuf_view");
   }}
/* FIXME: handle any_value_ref */
, {"any_value", true, nullptr, nullptr, [&]

-- 




[EGIT] [core/efl] master 02/04: dotnet: Ignore Efl.Object.parent as constructor

2020-06-09 Thread Felipe Magno de Almeida
bu5hm4n pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=1c6f38aa74466a7abdff144bf55937d2c90601d4

commit 1c6f38aa74466a7abdff144bf55937d2c90601d4
Author: Felipe Magno de Almeida 
Date:   Mon Jun 8 18:32:22 2020 -0300

dotnet: Ignore Efl.Object.parent as constructor

In C# we already have Efl.Object.parent as an implicit constructor. Ignore 
it if it is marked as a constructor.

Reviewed-by: Marcel Hollerbach 
Differential Revision: https://phab.enlightenment.org/D11951
---
 src/bin/eolian_mono/eolian/mono/helpers.hh | 8 
 1 file changed, 8 insertions(+)

diff --git a/src/bin/eolian_mono/eolian/mono/helpers.hh 
b/src/bin/eolian_mono/eolian/mono/helpers.hh
index f704ef00af..a13c26a1e8 100644
--- a/src/bin/eolian_mono/eolian/mono/helpers.hh
+++ b/src/bin/eolian_mono/eolian/mono/helpers.hh
@@ -407,7 +407,15 @@ inline bool is_unique_event(attributes::event_def const& 
evt
 inline std::vector 
reorder_constructors(std::vector constructors)
 {
   auto is_required = [](attributes::constructor_def const& ctr) { return 
!ctr.is_optional; };
+  auto is_object_parent = [](attributes::constructor_def const& ctr)
+  {
+return (ctr.klass.namespaces.size() == 1
+&& ctr.klass.namespaces[0] == "Efl"
+&& ctr.klass.eolian_name == "Object"
+&& ctr.name == "Efl.Object.parent");
+  };
   std::stable_partition(constructors.begin(), constructors.end(), is_required);
+  constructors.erase (std::remove_if (constructors.begin(), 
constructors.end(), is_object_parent), constructors.end());
   return constructors;
 }
 

-- 




[EGIT] [core/efl] master 01/01: C#: Add error checking for Eina.Success_Flag return type

2020-02-18 Thread Felipe Magno de Almeida
felipealmeida pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=df0715a9aa27903dd549c2b4516ab2cba0274413

commit df0715a9aa27903dd549c2b4516ab2cba0274413
Author: Felipe Magno de Almeida 
Date:   Tue Feb 11 17:48:26 2020 +

C#: Add error checking for Eina.Success_Flag return type

When a get and/or set from property is defined to return, explicitly,
a Eina.Success_Flag, the mono generator will check the return value
and generate an exception if the call fails.
Resolves T8383.

Reviewed-by: João Paulo Taylor Ienczak Zanette 

Differential Revision: https://phab.enlightenment.org/D11281
---
 .../eolian_mono/eolian/mono/function_definition.hh | 147 +
 .../eolian_mono/eolian/mono/property_definition.hh |   7 +-
 src/lib/eina/eina_error.h  |   9 ++
 src/lib/eo/eina_types.eot  |   4 +
 src/lib/eolian_cxx/grammar/eps.hpp |   8 +-
 src/tests/efl_mono/Eo.cs   |  21 +++
 src/tests/efl_mono/dummy_test_object.c |  58 
 src/tests/efl_mono/dummy_test_object.eo|  58 +++-
 8 files changed, 250 insertions(+), 62 deletions(-)

diff --git a/src/bin/eolian_mono/eolian/mono/function_definition.hh 
b/src/bin/eolian_mono/eolian/mono/function_definition.hh
index 6aeaadcedb..5fc0e84fbf 100644
--- a/src/bin/eolian_mono/eolian/mono/function_definition.hh
+++ b/src/bin/eolian_mono/eolian/mono/function_definition.hh
@@ -39,6 +39,7 @@
 #include "using_decl.hh"
 #include "generation_contexts.hh"
 #include "blacklist.hh"
+#include "grammar/eps.hpp"
 
 namespace eolian_mono {
 
@@ -369,6 +370,7 @@ struct property_wrapper_definition_generator
{
   using efl::eolian::grammar::attribute_reorder;
   using efl::eolian::grammar::counter;
+  using efl::eolian::grammar::eps;
   using efl::eolian::grammar::attributes::parameter_direction;
   using efl::eolian::grammar::attributes::parameter_def;
 
@@ -457,6 +459,7 @@ struct property_wrapper_definition_generator
   bool is_get_public = get_scope == "public ";
   std::string set_scope = property.setter.is_engaged() ? 
eolian_mono::function_scope_get(*property.setter) : "";
   bool is_set_public = set_scope == "public ";
+  bool get_has_return_error = false, set_has_return_error = false;
 
   // No need to generate this wrapper as no accessor is public.
   if (is_interface && (!is_get_public && !is_set_public))
@@ -490,6 +493,12 @@ struct property_wrapper_definition_generator
set_scope = "";
 }
 
+  if (property.getter && property.getter->explicit_return_type.c_type == 
"Eina_Success_Flag")
+  get_has_return_error = true;
+
+  if (property.setter && property.setter->explicit_return_type.c_type == 
"Eina_Success_Flag")
+  set_has_return_error = true;
+  
   if (parameters.size() == 1)
   {
 if (!as_generator(
@@ -510,73 +519,95 @@ struct property_wrapper_definition_generator
   return false;
   }
 
-  if (property.getter.is_engaged() && is_interface)
+  if (property.getter)
   {
-if (is_get_public)
+auto managed_getter_name = 
name_helpers::managed_method_name(*property.getter);
+if (is_interface)
+{
+  if (is_get_public)
+  {
+if (!as_generator(scope_tab(2) << scope_tab << set_scope <<  
"get;\n"
+  ).generate(sink, attributes::unused, context))
+  return false;
+  }
+}
+else if (get_params == 0)
 {
-  if (!as_generator(scope_tab(2) << scope_tab << set_scope <<  "get;\n"
-).generate(sink, attributes::unused, context))
+  if (!as_generator
+  (scope_tab(2) << scope_tab << get_scope
+   << "get " << "{ return " + managed_getter_name + "(); }\n"
+  ).generate(sink, attributes::unused, context))
 return false;
 }
-  }
-  else if (property.getter.is_engaged() && get_params == 
0/*parameters.size() == 1 && property.getter.is_engaged()*/)
-  {
-if (!as_generator
-(scope_tab(2) << scope_tab << get_scope
- << "get " << "{ return " + 
name_helpers::managed_method_name(*property.getter) + "(); }\n"
-).generate(sink, attributes::unused, context))
-  return false;
-  }
-  else if (parameters.size() >= 1 && property.getter)
-  {
-if (!as_generator
- (scope_tab(2) << scope_tab << get_sc

[EGIT] [core/efl] master 01/01: eolian-mono: Make Get/Set internal for generated properties

2020-02-18 Thread Felipe Magno de Almeida
felipealmeida pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=595cb754b3aa280cdbebcb5fa0c51f287099b713

commit 595cb754b3aa280cdbebcb5fa0c51f287099b713
Author: Felipe Magno de Almeida 
Date:   Thu Jan 30 16:49:04 2020 -0300

eolian-mono: Make Get/Set internal for generated properties

Make Get and Set methods internal for properties that get the
property syntax generated.

Reviewed-by: João Paulo Taylor Ienczak Zanette 

Differential Revision: https://phab.enlightenment.org/D11252
---
 .../eolian/mono/async_function_definition.hh   |   5 +-
 src/bin/eolian_mono/eolian/mono/documentation.hh   | 174 --
 .../eolian_mono/eolian/mono/function_definition.hh |  96 --
 src/bin/eolian_mono/eolian/mono/helpers.hh | 106 ++
 src/bin/eolian_mono/eolian/mono/klass.hh   |  45 ++-
 src/bin/eolian_mono/eolian/mono/parameter.hh   |  33 ++
 .../eolian_mono/eolian/mono/property_definition.hh | 383 +
 src/bindings/cxx/eina_cxx/eina_variant.hh  | 239 -
 src/bindings/mono/efl_mono/GenericModel.cs |  24 +-
 src/bindings/mono/eo_mono/EoWrapper.cs |   2 +-
 src/lib/eolian_cxx/grammar/context.hpp |  25 +-
 src/tests/efl_mono/Eina.cs | 258 +++---
 src/tests/efl_mono/EinaTestData.cs |  30 +-
 src/tests/efl_mono/Eo.cs   |  45 +--
 src/tests/efl_mono/Events.cs   |   8 +-
 src/tests/efl_mono/Model.cs|   2 +-
 src/tests/efl_mono/Parts.cs|   8 +-
 src/tests/efl_mono/StructHelpers.cs|   4 +-
 18 files changed, 1200 insertions(+), 287 deletions(-)

diff --git a/src/bin/eolian_mono/eolian/mono/async_function_definition.hh 
b/src/bin/eolian_mono/eolian/mono/async_function_definition.hh
index bc0bb6863a..3fddb03780 100644
--- a/src/bin/eolian_mono/eolian/mono/async_function_definition.hh
+++ b/src/bin/eolian_mono/eolian/mono/async_function_definition.hh
@@ -36,6 +36,7 @@
 #include "using_decl.hh"
 #include "generation_contexts.hh"
 #include "blacklist.hh"
+#include "documentation.hh"
 
 namespace eolian_mono {
 
@@ -71,8 +72,10 @@ struct async_function_declaration_generator
 if(f.scope != attributes::member_scope::scope_public)
   return true;
 
+auto ref = documentation_generator::function_conversion (f, context);
+
 if (!as_generator(
-scope_tab(2) << "/// Async wrapper for .\n"
+scope_tab(2) << "/// Async wrapper for .\n"
 ).generate(sink, attributes::unused, context))
   return false;
 
diff --git a/src/bin/eolian_mono/eolian/mono/documentation.hh 
b/src/bin/eolian_mono/eolian/mono/documentation.hh
index d15f91437d..eac5e1a179 100644
--- a/src/bin/eolian_mono/eolian/mono/documentation.hh
+++ b/src/bin/eolian_mono/eolian/mono/documentation.hh
@@ -23,6 +23,7 @@
 #include "name_helpers.hh"
 #include "generation_contexts.hh"
 #include "blacklist.hh"
+#include "property_definition.hh"
 
 #include 
 
@@ -76,7 +77,8 @@ struct documentation_generator
// The name_tail parameter is the last 4 chars of the original string, which
// could be ".set" or ".get" and in this case they are ignored by Eolian.
// We want them to know what the documentation intended to reference.
-   static std::string function_conversion(const ::Eolian_Object *klass, const 
::Eolian_Function *function, std::string name_tail)
+   template 
+   static std::string function_conversion(const ::Eolian_Object *klass, const 
::Eolian_Function *function, std::string name_tail, Context const& context)
{
   ::Eolian_Function_Type ftype = ::eolian_function_type_get(function);
   const char* eo_name = ::eolian_function_name_get(function);
@@ -113,26 +115,65 @@ struct documentation_generator
name += name_helpers::managed_method_name({function, ftype, NULL, 
eolian_object_unit_get(EOLIAN_OBJECT(function))});
break;
  case ::EOLIAN_PROP_SET:
-   name += ".Set";
-   name += name_helpers::property_managed_name(klass_d, eo_name);
-   break;
  case ::EOLIAN_PROP_GET:
-   name += ".Get";
-   name += name_helpers::property_managed_name(klass_d, eo_name);
-   break;
  case ::EOLIAN_PROPERTY:
+ {
+   efl::eina::optional getter_func;
+   efl::eina::optional setter_func;
+   auto unit = (const Eolian_Unit*) 
context_find_tag(context).state;
+   if (ftype == ::EOLIAN_PROPERTY || ftype == ::EOLIAN_PROP_GET)
+ getter_func = attributes::function_def{function, 
::EOLIAN_PROP_GET, nullptr, unit};
+   if (ftype == ::EOLIAN_PROPERTY || ftype == ::EOLIAN_PROP_SET)
+ setter_func = attribut

[EGIT] [core/efl] master 01/01: C#: Fix using beta for lists and hashes in tests

2020-01-29 Thread Felipe Magno de Almeida
xartigas pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=fdcc0053c609a021171db76a92a7ae36625154f6

commit fdcc0053c609a021171db76a92a7ae36625154f6
Author: Felipe Magno de Almeida 
Date:   Wed Jan 29 16:22:15 2020 +0100

C#: Fix using beta for lists and hashes in tests

Reviewers: segfaultxavi, bu5hm4n

Reviewed By: segfaultxavi

Subscribers: segfaultxavi, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11235
---
 src/tests/efl_mono/Eina.cs  |  3 +-
 src/tests/efl_mono/dummy_test_object.eo | 50 -
 2 files changed, 27 insertions(+), 26 deletions(-)

diff --git a/src/tests/efl_mono/Eina.cs b/src/tests/efl_mono/Eina.cs
index 461dee6759..162eac63ba 100644
--- a/src/tests/efl_mono/Eina.cs
+++ b/src/tests/efl_mono/Eina.cs
@@ -2050,7 +2050,7 @@ class TestEinaList
 //
 
 // Integer //
-
+#if EFL_BETA
 public static void test_eina_list_int_in()
 {
 var t = new Dummy.TestObject();
@@ -2330,6 +2330,7 @@ class TestEinaList
 a.Dispose();
 t.Dispose();
 }
+#endif
 }
 
 class TestEinaInlist
diff --git a/src/tests/efl_mono/dummy_test_object.eo 
b/src/tests/efl_mono/dummy_test_object.eo
index ee24e5ef9b..41c947ee07 100644
--- a/src/tests/efl_mono/dummy_test_object.eo
+++ b/src/tests/efl_mono/dummy_test_object.eo
@@ -574,14 +574,14 @@ class Dummy.Test_Object extends Efl.Object implements 
Dummy.Test_Iface {
   /* Eina List */
 
   /* Integer */
-  eina_list_int_in {
+  eina_list_int_in @beta {
  params {
 @in lst: list;
  }
  return: bool;
   }
 
-  eina_list_int_in_own {
+  eina_list_int_in_own @beta {
  params {
 @in lst: list @move; // 
  }
@@ -591,7 +591,7 @@ class Dummy.Test_Object extends Efl.Object implements 
Dummy.Test_Iface {
  return: bool;
   }
 
-  eina_list_int_out {
+  eina_list_int_out @beta {
  params {
 @out lst: list;
  }
@@ -601,33 +601,33 @@ class Dummy.Test_Object extends Efl.Object implements 
Dummy.Test_Iface {
  return: bool;
   }
 
-  eina_list_int_out_own {
+  eina_list_int_out_own @beta {
  params {
 @out lst: list @move; // 
  }
  return: bool;
   }
 
-  eina_list_int_return {
+  eina_list_int_return @beta {
  return: list;
   }
   check_eina_list_int_return {
  return: bool;
   }
 
-  eina_list_int_return_own {
+  eina_list_int_return_own @beta {
  return: list @move; // 
   }
 
   /* String */
-  eina_list_str_in {
+  eina_list_str_in @beta {
  params {
 @in lst: list;
  }
  return: bool;
   }
 
-  eina_list_str_in_own {
+  eina_list_str_in_own @beta {
  params {
 @in lst: list @move;
  }
@@ -637,7 +637,7 @@ class Dummy.Test_Object extends Efl.Object implements 
Dummy.Test_Iface {
  return: bool;
   }
 
-  eina_list_str_out {
+  eina_list_str_out @beta {
  params {
 @out lst: list;
  }
@@ -647,33 +647,33 @@ class Dummy.Test_Object extends Efl.Object implements 
Dummy.Test_Iface {
  return: bool;
   }
 
-  eina_list_str_out_own {
+  eina_list_str_out_own @beta {
  params {
 @out lst: list @move;
  }
  return: bool;
   }
 
-  eina_list_str_return {
+  eina_list_str_return @beta {
  return: list;
   }
   check_eina_list_str_return {
  return: bool;
   }
 
-  eina_list_str_return_own {
+  eina_list_str_return_own @beta {
  return: list @move;
   }
 
   /* Eina_Stringshare */
-  eina_list_strshare_in {
+  eina_list_strshare_in @beta {
  params {
 @in lst: list;
  }
  return: bool;
   }
 
-  eina_list_strshare_in_own {
+  eina_list_strshare_in_own @beta {
  params {
 @in lst: list @move;
  }
@@ -683,7 +683,7 @@ class Dummy.Test_Object extends Efl.Object implements 
Dummy.Test_Iface {
  return: bool;
   }
 
-  eina_list_strshare_out {
+  eina_list_strshare_out @beta {
  params {
 @out lst: list;
  }
@@ -693,33 +693,33 @@ class Dummy.Test_Object extends Efl.Object implements 
Dummy.Test_Iface {
  return: bool;
   }
 
-  eina_list_strshare_out_own {
+  eina_list_strshare_out_own @beta {
  params {
 @out lst: list @move;
  }
  return: bool;
   }
 
-  eina_list_strshare_return {
+  eina_list_strshare_return @beta {
  return: list;
   }
   check_eina_list_strshare_return {
  return: bool;
   }
 
-  eina_list_strshare_return_own

[EGIT] [core/efl] master 01/01: C++: Fix use of @c_type tag in struct definition

2020-01-17 Thread Felipe Magno de Almeida
zmike pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=25e52f81066b79fdf758cbd97830a85fdb88c0a9

commit 25e52f81066b79fdf758cbd97830a85fdb88c0a9
Author: Felipe Magno de Almeida 
Date:   Fri Jan 17 09:51:24 2020 -0500

C++: Fix use of @c_type tag in struct definition

Summary: Depends on D11090

Reviewers: zmike

Reviewed By: zmike

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11099
---
 src/lib/eolian_cxx/grammar/type_impl.hpp | 9 -
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/src/lib/eolian_cxx/grammar/type_impl.hpp 
b/src/lib/eolian_cxx/grammar/type_impl.hpp
index 29d28857f9..b43641a052 100644
--- a/src/lib/eolian_cxx/grammar/type_impl.hpp
+++ b/src/lib/eolian_cxx/grammar/type_impl.hpp
@@ -283,7 +283,14 @@ struct visitor_generate
 }
   else
 {
-  if(as_generator
+  if(regular.type_type == attributes::typedecl_type::struct_
+ || regular.type_type == attributes::typedecl_type::struct_opaque)
+  {
+std::copy (c_type.begin(), c_type.end(), sink);
+return true;
+  }
+  else
+if(as_generator
  (
   *(string << "_")
   << string

-- 




[EGIT] [core/efl] master 01/01: c#: Remove warning about unused variable

2020-01-15 Thread Felipe Magno de Almeida
bu5hm4n pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=77db0820e37b5a2b2f66562a00b8c689b5f2c022

commit 77db0820e37b5a2b2f66562a00b8c689b5f2c022
Author: Felipe Magno de Almeida 
Date:   Tue Jan 14 11:02:05 2020 -0300

c#: Remove warning about unused variable

Reviewed-by: Marcel Hollerbach 
Differential Revision: https://phab.enlightenment.org/D11097
---
 src/bindings/mono/efl_mono/efl_csharp_application.cs | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bindings/mono/efl_mono/efl_csharp_application.cs 
b/src/bindings/mono/efl_mono/efl_csharp_application.cs
index 9c2f7f0f06..c4abdfe76c 100644
--- a/src/bindings/mono/efl_mono/efl_csharp_application.cs
+++ b/src/bindings/mono/efl_mono/efl_csharp_application.cs
@@ -198,10 +198,10 @@ public abstract class Application
 {
 Init(components);
 Efl.App app = Efl.App.AppMain;
+#if EFL_BETA
 var command_line = new List();
 //command_line.Add(List.ConvertAll(Environment.GetCommandLineArgs(), s 
=> (Eina.Stringshare)s));
 //command_line.AddRange(Environment.GetCommandLineArgs());
-#if EFL_BETA
 app.SetCommandArray(command_line);
 #endif
 app.ArgumentsEvent += (object sender, LoopArgumentsEventArgs evt) =>

-- 




[EGIT] [core/efl] master 01/01: eolian: inherit since information from struct and enum to field

2019-12-23 Thread Felipe Magno de Almeida
woohyun pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=b3cc7d403b4a9f69f2ad8c4bbd37e482f34e6deb

commit b3cc7d403b4a9f69f2ad8c4bbd37e482f34e6deb
Author: Felipe Magno de Almeida 
Date:   Tue Dec 24 07:26:33 2019 +0900

eolian: inherit since information from struct and enum to field

Summary:
If a struct or enum field doesn't explicitly sets since information, then 
since
is inherited from struct documentation if it is available.

Reviewers: jptiz, Jaehyun_Cho, woohyun, q66

Reviewed By: q66

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T8359

Differential Revision: https://phab.enlightenment.org/D10948
---
 src/lib/eolian/eo_parser.c|  4 
 src/tests/eolian/data/docs_ref.h  | 18 ++
 src/tests/eolian/data/eo_docs.eo  |  4 +++-
 src/tests/eolian/eolian_parsing.c |  3 ++-
 src/tests/eolian_cxx/eolian_cxx_test_documentation.cc |  4 ++--
 5 files changed, 25 insertions(+), 8 deletions(-)

diff --git a/src/lib/eolian/eo_parser.c b/src/lib/eolian/eo_parser.c
index 96de7a77ec..253e99e929 100644
--- a/src/lib/eolian/eo_parser.c
+++ b/src/lib/eolian/eo_parser.c
@@ -536,6 +536,8 @@ parse_struct(Eo_Lexer *ls, const char *name, Eina_Bool 
is_extern,
 qual_end:
 check_next(ls, ';');
 FILL_DOC(ls, fdef, doc);
+if (def->doc && fdef->doc && def->doc->since && !fdef->doc->since)
+  fdef->doc->since = eina_stringshare_ref (def->doc->since);
  }
check_match(ls, '}', '{', bline, bcolumn);
FILL_BASE(def->base, ls, line, column, TYPEDECL);
@@ -656,6 +658,8 @@ parse_enum(Eo_Lexer *ls, const char *name, Eina_Bool 
is_extern,
 if (want_next)
   eo_lexer_get(ls);
 FILL_DOC(ls, fdef, doc);
+if (def->doc && fdef->doc && def->doc->since && !fdef->doc->since)
+  fdef->doc->since = eina_stringshare_ref (def->doc->since);
 if (!want_next || ls->t.token == '}')
   break;
  }
diff --git a/src/tests/eolian/data/docs_ref.h b/src/tests/eolian/data/docs_ref.h
index 158b814ae0..a00fafb5a5 100644
--- a/src/tests/eolian/data/docs_ref.h
+++ b/src/tests/eolian/data/docs_ref.h
@@ -29,20 +29,30 @@ typedef Eo Eo_Docs;
  */
 typedef struct _Foo
 {
-  int field1; /**< Field documentation. */
+  int field1; /**< Field documentation.
+   *
+   * @since 1.66 */
   float field2;
-  short field3; /**< Another field documentation. */
+  short field3; /**< Another field documentation.
+ *
+ * @since 1.66 */
 } Foo;
 
 /** Docs for enum Bar.
+ *
+ * @since 1.55
  *
  * @ingroup Bar
  */
 typedef enum
 {
   BAR_BLAH = 0,
-  BAR_FOO = 1, /**< Docs for foo. */
-  BAR_BAR = 2 /**< Docs for bar. */
+  BAR_FOO = 1, /**< Docs for foo.
+*
+* @since 1.55 */
+  BAR_BAR = 2 /**< Docs for bar.
+   *
+   * @since 1.55 */
 } Bar;
 
 /**
diff --git a/src/tests/eolian/data/eo_docs.eo b/src/tests/eolian/data/eo_docs.eo
index d42cdfcd95..8c62559d5a 100644
--- a/src/tests/eolian/data/eo_docs.eo
+++ b/src/tests/eolian/data/eo_docs.eo
@@ -19,7 +19,9 @@ struct Foo {
 }
 
 enum Bar {
-[[Docs for enum Bar.]]
+[[Docs for enum Bar.
+  @since 1.55
+]]
 blah = 0,
 foo = 1, [[Docs for foo.]]
 bar = 2 [[Docs for bar.]]
diff --git a/src/tests/eolian/eolian_parsing.c 
b/src/tests/eolian/eolian_parsing.c
index ac06f99eba..9d137dcec3 100644
--- a/src/tests/eolian/eolian_parsing.c
+++ b/src/tests/eolian/eolian_parsing.c
@@ -1150,7 +1150,8 @@ EFL_START_TEST(eolian_docs)
fail_if(strcmp(eolian_documentation_summary_get(doc),
   "Docs for enum Bar."));
fail_if(eolian_documentation_description_get(doc));
-   fail_if(eolian_documentation_since_get(doc));
+   fail_if(strcmp(eolian_documentation_since_get(doc),
+  "1.55"));
 
fail_if(!(efl = eolian_typedecl_enum_field_get(tdl, "blah")));
fail_if(eolian_typedecl_enum_field_documentation_get(efl));
diff --git a/src/tests/eolian_cxx/eolian_cxx_test_documentation.cc 
b/src/tests/eolian_cxx/eolian_cxx_test_documentation.cc
index 961519d16e..eb683e3312 100644
--- a/src/tests/eolian_cxx/eolian_cxx_test_documentation.cc
+++ b/src/tests/eolian_cxx/eolian_cxx_test_documentation.cc
@@ -279,7 +279,7 @@ EFL_START_TEST(eolian_cxx_test_struct_docs)
doc = field_iter->documentation;
ck_assert_str_eq(doc.summary.c_str(), "Field documentation.");
ck_assert_str_eq(doc.description.c_str(), "");
-   ck_assert_str_eq(doc.since.c_str(), "");
+   ck_assert_str_eq(doc.since.c_str(), "1.66");
 
field_iter++;
 
@@ -293

[EGIT] [core/efl] master 01/01: Fix invalid XML comment in efl_mono.dll.config

2019-12-19 Thread Felipe Magno de Almeida
felipealmeida pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=3a385ccae02d7f5f83000beacb8fa7e4c987b378

commit 3a385ccae02d7f5f83000beacb8fa7e4c987b378
Author: Felipe Magno de Almeida 
Date:   Wed Dec 4 01:27:56 2019 +

Fix invalid XML comment in efl_mono.dll.config

Use  to comment the license files

Reviewed-by: João Paulo Taylor Ienczak Zanette 

Differential Revision: https://phab.enlightenment.org/D10790
---
 src/bindings/mono/efl_mono.dll.config.in | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/bindings/mono/efl_mono.dll.config.in 
b/src/bindings/mono/efl_mono.dll.config.in
index 4fe8699d10..25d216b1a0 100644
--- a/src/bindings/mono/efl_mono.dll.config.in
+++ b/src/bindings/mono/efl_mono.dll.config.in
@@ -1,3 +1,4 @@
+
 
   
   

-- 




[EGIT] [core/efl] efl-1.22 11/57: efl-mono: Make override of methods only for methods that are defined by the user

2019-04-17 Thread Felipe Magno de Almeida
zmike pushed a commit to branch efl-1.22.

http://git.enlightenment.org/core/efl.git/commit/?id=06991872dd7fe19bf935f038ca6a1cb5f5c240c4

commit 06991872dd7fe19bf935f038ca6a1cb5f5c240c4
Author: Felipe Magno de Almeida 
Date:   Tue Apr 9 11:16:17 2019 -0300

efl-mono: Make override of methods only for methods that are defined by the 
user

Summary:
Instead of overriding every method and making the callback to C, we
just override the methods that are found by reflection on the type.

Reviewers: bu5hm4n, vitor.sousa, segfaultxavi, woohyun, Jaehyun_Cho, 
YOhoho, lauromoura

Reviewed By: lauromoura

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8579
---
 .../eolian/mono/function_registration.hh   |  7 +--
 src/bin/eolian_mono/eolian/mono/klass.hh   |  1 +
 src/bindings/mono/eo_mono/iwrapper.cs  | 23 ++
 3 files changed, 29 insertions(+), 2 deletions(-)

diff --git a/src/bin/eolian_mono/eolian/mono/function_registration.hh 
b/src/bin/eolian_mono/eolian/mono/function_registration.hh
index 5898af9c27..fc044e6b72 100644
--- a/src/bin/eolian_mono/eolian/mono/function_registration.hh
+++ b/src/bin/eolian_mono/eolian/mono/function_registration.hh
@@ -44,7 +44,10 @@ struct function_registration_generator
   return false;
 
 if(!as_generator
-   (scope_tab << scope_tab << "descs.Add(new Efl_Op_Description() {"
+   (scope_tab << scope_tab
+<< "if (methods.FirstOrDefault(m => m.Name == \"" << string << "\") != 
null)\n"
+<< scope_tab << scope_tab << scope_tab
+<< "descs.Add(new Efl_Op_Description() {"
 #ifdef _WIN32
 << "api_func = Marshal.StringToHGlobalAnsi(\"" << string << "\")"
 #else
@@ -52,7 +55,7 @@ struct function_registration_generator
 #endif
 << ", func = Marshal.GetFunctionPointerForDelegate(" << string << 
"_static_delegate)});\n"
)
-   .generate(sink, std::make_tuple(f.c_name, f.c_name), context))
+   .generate(sink, std::make_tuple(name_helpers::managed_method_name(f), 
f.c_name, f.c_name), context))
   return false;
 return true;
   }
diff --git a/src/bin/eolian_mono/eolian/mono/klass.hh 
b/src/bin/eolian_mono/eolian/mono/klass.hh
index e34a126321..87ad1bd5a7 100644
--- a/src/bin/eolian_mono/eolian/mono/klass.hh
+++ b/src/bin/eolian_mono/eolian/mono/klass.hh
@@ -369,6 +369,7 @@ struct klass
  << scope_tab << "public override 
System.Collections.Generic.List GetEoOps(System.Type 
type)\n"
  << scope_tab << "{\n"
  << scope_tab << scope_tab << "var descs = new 
System.Collections.Generic.List();\n"
+ << scope_tab << scope_tab << "var methods = 
Efl.Eo.Globals.GetUserMethods(type);\n"
 )
 .generate(sink, attributes::unused, inative_cxt))
return false;
diff --git a/src/bindings/mono/eo_mono/iwrapper.cs 
b/src/bindings/mono/eo_mono/iwrapper.cs
index 1aab776f26..f3696606d2 100644
--- a/src/bindings/mono/eo_mono/iwrapper.cs
+++ b/src/bindings/mono/eo_mono/iwrapper.cs
@@ -302,6 +302,29 @@ public class Globals
 return null;
 }
 
+public static System.Collections.Generic.List
+GetUserMethods(System.Type type)
+{
+var r = new 
System.Collections.Generic.List();
+r.AddRange(type.GetMethods());
+var base_type = type.BaseType;
+
+for (;base_type != null; base_type = base_type.BaseType)
+{
+var attrs = System.Attribute.GetCustomAttributes(type);
+foreach (var attr in attrs)
+{
+if (attr is Efl.Eo.NativeClass)
+{
+return r;
+}
+}
+
+r.AddRange(base_type.GetMethods());
+}
+return r;
+}
+
 public static byte class_initializer_call(IntPtr klass, System.Type type)
 {
 Eina.Log.Debug($"called with 0x{klass.ToInt64():x} {type}");

-- 




[EGIT] [core/efl] efl-1.22 13/57: efl-mono: Add test and fix problem with private dynamic types passed as parameters

2019-04-17 Thread Felipe Magno de Almeida
zmike pushed a commit to branch efl-1.22.

http://git.enlightenment.org/core/efl.git/commit/?id=715b382460a38ac9ac73b38ed455830e68645271

commit 715b382460a38ac9ac73b38ed455830e68645271
Author: Felipe Magno de Almeida 
Date:   Tue Apr 9 18:37:01 2019 -0300

efl-mono: Add test and fix problem with private dynamic types passed as 
parameters

Summary:
The code that searches the type dynamically fails instead of falling
back to Efl.Object. Now it fallbacks to Efl.Object.

Fixes T7783

Reviewers: bu5hm4n, vitor.sousa, segfaultxavi, woohyun, Jaehyun_Cho, 
YOhoho, lauromoura

Reviewed By: vitor.sousa, lauromoura

Subscribers: lauromoura, cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T7783

Differential Revision: https://phab.enlightenment.org/D8574
---
 src/bindings/mono/eo_mono/iwrapper.cs | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bindings/mono/eo_mono/iwrapper.cs 
b/src/bindings/mono/eo_mono/iwrapper.cs
index 83d8fd53ca..5850da8c5c 100644
--- a/src/bindings/mono/eo_mono/iwrapper.cs
+++ b/src/bindings/mono/eo_mono/iwrapper.cs
@@ -824,7 +824,7 @@ public static class ClassRegister
 
 if (t == null)
 {
-throw new System.InvalidOperationException($"Could not find 
the C# binding class for the EFL class: {name}");
+return typeof(Efl.Object);
 }
 }
 

-- 




[EGIT] [core/efl] efl-1.22 10/57: efl-mono: Fix --enable-mono-beta for tests

2019-04-17 Thread Felipe Magno de Almeida
zmike pushed a commit to branch efl-1.22.

http://git.enlightenment.org/core/efl.git/commit/?id=12acfd2840b3b65853cceb77543de34a8782af65

commit 12acfd2840b3b65853cceb77543de34a8782af65
Author: Felipe Magno de Almeida 
Date:   Tue Apr 9 11:07:50 2019 -0300

efl-mono: Fix --enable-mono-beta for tests

Reviewers: bu5hm4n, vitor.sousa, segfaultxavi, woohyun, Jaehyun_Cho, 
YOhoho, lauromoura

Reviewed By: lauromoura

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8573
---
 src/Makefile_Efl_Mono.am | 8 +++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/Makefile_Efl_Mono.am b/src/Makefile_Efl_Mono.am
index d8c9dc55ab..43f2a1c6e2 100644
--- a/src/Makefile_Efl_Mono.am
+++ b/src/Makefile_Efl_Mono.am
@@ -495,9 +495,15 @@ tests_efl_mono_efl_mono_SOURCES = \
  tests/efl_mono/EinaTestData.cs \
  tests/efl_mono/StructHelpers.cs
 
+beta_mono_flags =
+
+if HAVE_CSHARP_BETA
+beta_mono_flags += -define:EFL_BETA
+endif
+
 tests/efl_mono/efl_mono$(EXEEXT): $(tests_efl_mono_efl_mono_SOURCES) 
tests/efl_mono/$(am__dirstamp) lib/efl_mono/libefl_mono.dll 
tests/efl_mono/libefl_mono_test.dll tests/efl_mono/efl_mono$(EXEEXT).config
@rm -f $@
-   $(AM_V_MCS) $(MCS) $(MCSFLAGS) 
-r:$(abs_top_builddir)/src/lib/efl_mono/libefl_mono.dll 
-r:$(abs_top_builddir)/src/tests/efl_mono/libefl_mono_test.dll -out:$@ $(filter 
%.cs, $(^))
+   $(AM_V_MCS) $(MCS) $(MCSFLAGS) 
-r:$(abs_top_builddir)/src/lib/efl_mono/libefl_mono.dll 
-r:$(abs_top_builddir)/src/tests/efl_mono/libefl_mono_test.dll -out:$@ $(filter 
%.cs, $(^)) $(beta_mono_flags)
 
 # Rule for generating the .cs files
 tests/efl_mono/%.eo.cs: tests/efl_mono/%.eo $(_EOLIAN_MONO_DEP)

-- 




[EGIT] [core/efl] master 01/01: efl-mono: Add test and fix problem with private dynamic types passed as parameters

2019-04-09 Thread Felipe Magno de Almeida
vitorsousa pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=0afd19ba62f38567c12cb1bf953ffdd4d402f382

commit 0afd19ba62f38567c12cb1bf953ffdd4d402f382
Author: Felipe Magno de Almeida 
Date:   Tue Apr 9 18:37:01 2019 -0300

efl-mono: Add test and fix problem with private dynamic types passed as 
parameters

Summary:
The code that searches the type dynamically fails instead of falling
back to Efl.Object. Now it fallbacks to Efl.Object.

Fixes T7783

Reviewers: bu5hm4n, vitor.sousa, segfaultxavi, woohyun, Jaehyun_Cho, 
YOhoho, lauromoura

Reviewed By: vitor.sousa, lauromoura

Subscribers: lauromoura, cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T7783

Differential Revision: https://phab.enlightenment.org/D8574
---
 src/bindings/mono/eo_mono/iwrapper.cs | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bindings/mono/eo_mono/iwrapper.cs 
b/src/bindings/mono/eo_mono/iwrapper.cs
index 83d8fd53ca..5850da8c5c 100644
--- a/src/bindings/mono/eo_mono/iwrapper.cs
+++ b/src/bindings/mono/eo_mono/iwrapper.cs
@@ -824,7 +824,7 @@ public static class ClassRegister
 
 if (t == null)
 {
-throw new System.InvalidOperationException($"Could not find 
the C# binding class for the EFL class: {name}");
+return typeof(Efl.Object);
 }
 }
 

-- 




[EGIT] [core/efl] master 01/01: efl-mono: Make override of methods only for methods that are defined by the user

2019-04-09 Thread Felipe Magno de Almeida
felipealmeida pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=df3b28b0ab650beb5d0fede24b164d2cc9c40ba9

commit df3b28b0ab650beb5d0fede24b164d2cc9c40ba9
Author: Felipe Magno de Almeida 
Date:   Tue Apr 9 11:16:17 2019 -0300

efl-mono: Make override of methods only for methods that are defined by the 
user

Summary:
Instead of overriding every method and making the callback to C, we
just override the methods that are found by reflection on the type.

Reviewers: bu5hm4n, vitor.sousa, segfaultxavi, woohyun, Jaehyun_Cho, 
YOhoho, lauromoura

Reviewed By: lauromoura

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8579
---
 .../eolian/mono/function_registration.hh   |  7 +--
 src/bin/eolian_mono/eolian/mono/klass.hh   |  1 +
 src/bindings/mono/eo_mono/iwrapper.cs  | 23 ++
 3 files changed, 29 insertions(+), 2 deletions(-)

diff --git a/src/bin/eolian_mono/eolian/mono/function_registration.hh 
b/src/bin/eolian_mono/eolian/mono/function_registration.hh
index 5898af9c27..fc044e6b72 100644
--- a/src/bin/eolian_mono/eolian/mono/function_registration.hh
+++ b/src/bin/eolian_mono/eolian/mono/function_registration.hh
@@ -44,7 +44,10 @@ struct function_registration_generator
   return false;
 
 if(!as_generator
-   (scope_tab << scope_tab << "descs.Add(new Efl_Op_Description() {"
+   (scope_tab << scope_tab
+<< "if (methods.FirstOrDefault(m => m.Name == \"" << string << "\") != 
null)\n"
+<< scope_tab << scope_tab << scope_tab
+<< "descs.Add(new Efl_Op_Description() {"
 #ifdef _WIN32
 << "api_func = Marshal.StringToHGlobalAnsi(\"" << string << "\")"
 #else
@@ -52,7 +55,7 @@ struct function_registration_generator
 #endif
 << ", func = Marshal.GetFunctionPointerForDelegate(" << string << 
"_static_delegate)});\n"
)
-   .generate(sink, std::make_tuple(f.c_name, f.c_name), context))
+   .generate(sink, std::make_tuple(name_helpers::managed_method_name(f), 
f.c_name, f.c_name), context))
   return false;
 return true;
   }
diff --git a/src/bin/eolian_mono/eolian/mono/klass.hh 
b/src/bin/eolian_mono/eolian/mono/klass.hh
index e34a126321..87ad1bd5a7 100644
--- a/src/bin/eolian_mono/eolian/mono/klass.hh
+++ b/src/bin/eolian_mono/eolian/mono/klass.hh
@@ -369,6 +369,7 @@ struct klass
  << scope_tab << "public override 
System.Collections.Generic.List GetEoOps(System.Type 
type)\n"
  << scope_tab << "{\n"
  << scope_tab << scope_tab << "var descs = new 
System.Collections.Generic.List();\n"
+ << scope_tab << scope_tab << "var methods = 
Efl.Eo.Globals.GetUserMethods(type);\n"
 )
 .generate(sink, attributes::unused, inative_cxt))
return false;
diff --git a/src/bindings/mono/eo_mono/iwrapper.cs 
b/src/bindings/mono/eo_mono/iwrapper.cs
index 1aab776f26..f3696606d2 100644
--- a/src/bindings/mono/eo_mono/iwrapper.cs
+++ b/src/bindings/mono/eo_mono/iwrapper.cs
@@ -302,6 +302,29 @@ public class Globals
 return null;
 }
 
+public static System.Collections.Generic.List
+GetUserMethods(System.Type type)
+{
+var r = new 
System.Collections.Generic.List();
+r.AddRange(type.GetMethods());
+var base_type = type.BaseType;
+
+for (;base_type != null; base_type = base_type.BaseType)
+{
+var attrs = System.Attribute.GetCustomAttributes(type);
+foreach (var attr in attrs)
+{
+if (attr is Efl.Eo.NativeClass)
+{
+return r;
+}
+}
+
+r.AddRange(base_type.GetMethods());
+}
+return r;
+}
+
 public static byte class_initializer_call(IntPtr klass, System.Type type)
 {
 Eina.Log.Debug($"called with 0x{klass.ToInt64():x} {type}");

-- 




[EGIT] [core/efl] master 01/01: efl-mono: Fix --enable-mono-beta for tests

2019-04-09 Thread Felipe Magno de Almeida
felipealmeida pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=b1f0031b55b356f9722ee643844fd055653c9678

commit b1f0031b55b356f9722ee643844fd055653c9678
Author: Felipe Magno de Almeida 
Date:   Tue Apr 9 11:07:50 2019 -0300

efl-mono: Fix --enable-mono-beta for tests

Reviewers: bu5hm4n, vitor.sousa, segfaultxavi, woohyun, Jaehyun_Cho, 
YOhoho, lauromoura

Reviewed By: lauromoura

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8573
---
 src/Makefile_Efl_Mono.am | 8 +++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/Makefile_Efl_Mono.am b/src/Makefile_Efl_Mono.am
index d8c9dc55ab..43f2a1c6e2 100644
--- a/src/Makefile_Efl_Mono.am
+++ b/src/Makefile_Efl_Mono.am
@@ -495,9 +495,15 @@ tests_efl_mono_efl_mono_SOURCES = \
  tests/efl_mono/EinaTestData.cs \
  tests/efl_mono/StructHelpers.cs
 
+beta_mono_flags =
+
+if HAVE_CSHARP_BETA
+beta_mono_flags += -define:EFL_BETA
+endif
+
 tests/efl_mono/efl_mono$(EXEEXT): $(tests_efl_mono_efl_mono_SOURCES) 
tests/efl_mono/$(am__dirstamp) lib/efl_mono/libefl_mono.dll 
tests/efl_mono/libefl_mono_test.dll tests/efl_mono/efl_mono$(EXEEXT).config
@rm -f $@
-   $(AM_V_MCS) $(MCS) $(MCSFLAGS) 
-r:$(abs_top_builddir)/src/lib/efl_mono/libefl_mono.dll 
-r:$(abs_top_builddir)/src/tests/efl_mono/libefl_mono_test.dll -out:$@ $(filter 
%.cs, $(^))
+   $(AM_V_MCS) $(MCS) $(MCSFLAGS) 
-r:$(abs_top_builddir)/src/lib/efl_mono/libefl_mono.dll 
-r:$(abs_top_builddir)/src/tests/efl_mono/libefl_mono_test.dll -out:$@ $(filter 
%.cs, $(^)) $(beta_mono_flags)
 
 # Rule for generating the .cs files
 tests/efl_mono/%.eo.cs: tests/efl_mono/%.eo $(_EOLIAN_MONO_DEP)

-- 




[EGIT] [core/efl] master 01/01: efl-mono: Add support for dotnet core

2019-03-01 Thread Felipe Magno de Almeida
vitorsousa pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=f392c5a4363cf09e8c0e50a42c46416a09a72c74

commit f392c5a4363cf09e8c0e50a42c46416a09a72c74
Author: Felipe Magno de Almeida 
Date:   Wed Jan 16 16:29:56 2019 +0900

efl-mono: Add support for dotnet core

Summary:
This commits adds dotnet as a supported C# platform for EFL# bindings.

Due to differences between Mono and Dotnet regarding DllImport, the
bindings now are using an imperative approach to load the function
pointers through the NativeModule and FunctionWrapper classes. These
classes handle the dlopen/LoadLibrary and dlsym/GetProcAddress calls.

Also, the previous caching of non-owned strings returned to native code
was removed until further memory checks.

We also had to create workaround for bool and chars in Structs for C#
marshaling. Going through System.Byte instead and Marshaling manually
to their respective types.

In order to actually build efl_mono.dll with dotnet right now,
issue #4782 from Meson should be fixed to make it properly detect and
used the Dotnet compiler. Also use "-Ddotnet=true" when running meson.

Fixes T7394

Reviewers: felipealmeida, vitor.sousa, bu5hm4n

Reviewed By: vitor.sousa

Subscribers: cedric

Tags: #efl

Maniphest Tasks: T7394

Differential Revision: https://phab.enlightenment.org/D8069
---
 src/Makefile_Efl_Mono.am   |  19 +-
 src/bin/eolian_mono/eolian/mono/events.hh  |   5 +-
 .../eolian_mono/eolian/mono/function_definition.hh |  75 ++---
 .../eolian_mono/eolian/mono/function_pointer.hh|   8 +-
 .../eolian/mono/function_registration.hh   |   7 +-
 src/bin/eolian_mono/eolian/mono/klass.hh   |  18 +-
 .../eolian_mono/eolian/mono/marshall_annotation.hh | 128 +---
 src/bin/eolian_mono/eolian/mono/marshall_type.hh   |  46 ---
 .../eolian_mono/eolian/mono/marshall_type_impl.hh  |  26 +-
 src/bin/eolian_mono/eolian/mono/name_helpers.hh|  18 +-
 src/bin/eolian_mono/eolian/mono/parameter.hh   |   8 +-
 src/bin/eolian_mono/eolian/mono/part_definition.hh |   2 +-
 .../eolian_mono/eolian/mono/struct_definition.hh   |  44 +++
 src/bindings/cxx/eina_cxx/eina_variant.hh  |  16 +
 src/bindings/mono/efl_mono/efl_all.cs  |  18 +-
 src/bindings/mono/efl_mono/efl_libs.cs.in  |  16 +
 src/bindings/mono/eina_mono/eina_common.cs |  10 +-
 .../mono/eina_mono/eina_container_common.cs| 337 ++---
 src/bindings/mono/eina_mono/eina_hash.cs   | 151 +++--
 src/bindings/mono/eina_mono/eina_inarray.cs|  29 +-
 src/bindings/mono/eo_mono/FunctionWrapper.cs   |  95 ++
 src/bindings/mono/eo_mono/FunctionWrapper_Unix.cs  |  21 ++
 .../mono/eo_mono/FunctionWrapper_Windows.cs|  15 +
 src/bindings/mono/eo_mono/NativeModule.cs  |  33 ++
 src/bindings/mono/eo_mono/NativeModule_Unix.cs |  46 +++
 src/bindings/mono/eo_mono/NativeModule_Windows.cs  |  15 +
 src/bindings/mono/eo_mono/iwrapper.cs  |  95 +++---
 src/bindings/mono/eo_mono/meson.build  |  10 +-
 src/bindings/mono/eo_mono/workaround.cs|   8 +-
 src/bindings/mono/meson.build  |  43 ++-
 src/lib/eolian_cxx/grammar/klass_def.hpp   |  67 
 src/tests/efl_mono/Eo.cs   |   7 +
 src/tests/efl_mono/dummy_test_object.eo|   4 +
 .../efl_mono/efl-mono-suite.runtimeconfig.json |  10 +
 src/tests/efl_mono/libefl_mono_native_test.c   |   5 +
 src/tests/efl_mono/meson.build |  37 +++
 36 files changed, 1024 insertions(+), 468 deletions(-)

diff --git a/src/Makefile_Efl_Mono.am b/src/Makefile_Efl_Mono.am
index fe8c66efd4..56c03fbf77 100644
--- a/src/Makefile_Efl_Mono.am
+++ b/src/Makefile_Efl_Mono.am
@@ -4,8 +4,25 @@ efl_custom_exports_mono_files = \
 
 efl_eo_mono_files = \
bindings/mono/eo_mono/iwrapper.cs \
+   bindings/mono/eo_mono/FunctionWrapper.cs \
+   bindings/mono/eo_mono/NativeModule.cs \
bindings/mono/eo_mono/workaround.cs
 
+if HAVE_WIN32
+
+efl_eo_mono_files += \
+   bindings/mono/eo_mono/FunctionWrapper_Windows.cs \
+   bindings/mono/eo_mono/NativeModule_Windows.cs
+
+else
+
+efl_eo_mono_files += \
+   bindings/mono/eo_mono/FunctionWrapper_Unix.cs \
+   bindings/mono/eo_mono/NativeModule_Unix.cs
+
+endif
+
+
 efl_eina_mono_files = \
bindings/mono/eina_mono/eina_config.cs \
bindings/mono/eina_mono/eina_array.cs \
@@ -293,7 +310,7 @@ msbuildcsprojs: ../libefl_mono.csproj
done
 
 ### Some hard-coded runtime dependencies for tests and examples
-TEST_PATHS = 
$(abs_top_builddir)/src/lib/efl_mono:$(abs_top_builddir)/src/lib/efl_mono/.libs:$(abs_top_builddir)/src/lib/eina/.libs:$(abs_top_builddir)/src/lib/ecore/.libs:$(abs_top_builddir)/src/lib/ecore_

[EGIT] [core/efl] master 01/02: eolian-mono: Provide constructor parameters based on the constructors section of the Eo files.

2019-02-01 Thread Felipe Magno de Almeida
devilhorns pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=0223bb29dfc4c1621ace044395196064c82b98de

commit 0223bb29dfc4c1621ace044395196064c82b98de
Author: Felipe Magno de Almeida 
Date:   Fri Feb 1 14:03:02 2019 -0500

eolian-mono: Provide constructor parameters based on the constructors
section of the Eo files.

Reviewers: woohyun, segfaultxavi, bu5hm4n, felipealmeida

Reviewed By: segfaultxavi

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7789
---
 src/bin/eolian_mono/eolian/mono/documentation.hh |  48 +
 src/bin/eolian_mono/eolian/mono/helpers.hh   |   6 ++
 src/bin/eolian_mono/eolian/mono/klass.hh |  63 +---
 src/bin/eolian_mono/eolian/mono/name_helpers.hh  |  11 +++
 src/bin/eolian_mono/eolian/mono/parameter.hh | 120 +++
 src/bin/eolian_mono/eolian/mono/type.hh  |  14 +--
 src/bin/eolian_mono/eolian/mono/type_impl.hh |  72 ++
 src/bindings/mono/eo_mono/iwrapper.cs|  17 
 src/tests/efl_mono/Eo.cs |  63 +---
 src/tests/efl_mono/Events.cs |   9 +-
 src/tests/efl_mono/dummy_child.eo|  21 
 src/tests/efl_mono/libefl_mono_native_test.c |  40 
 12 files changed, 399 insertions(+), 85 deletions(-)

diff --git a/src/bin/eolian_mono/eolian/mono/documentation.hh 
b/src/bin/eolian_mono/eolian/mono/documentation.hh
index 3acec94102..d2f4669b2c 100644
--- a/src/bin/eolian_mono/eolian/mono/documentation.hh
+++ b/src/bin/eolian_mono/eolian/mono/documentation.hh
@@ -84,6 +84,29 @@ struct documentation_generator
   return name;
}
 
+   static std::string function_conversion(attributes::function_def const& func)
+   {
+  attributes::klass_def klass(get_klass(func.klass, func.unit), func.unit);
+  std::string name = 
name_helpers::klass_full_concrete_or_interface_name(klass);
+  switch (func.type)
+  {
+  // managed_method_name takes care of reordering the function name so 
the get/set goes first
+  // for properties
+  case attributes::function_type::method:
+  case attributes::function_type::prop_set:
+  case attributes::function_type::prop_get:
+if (blacklist::is_function_blacklisted(func.c_name))return "";
+name += ".";
+name += name_helpers::managed_method_name(klass.eolian_name, 
func.name);
+break;
+  default:
+// No need to deal with property as function_defs are converted to 
get/set when building a given klass_def.
+break;
+  }
+
+  return name;
+   }
+
// Turns an Eolian reference like @Efl.Input.Pointer.tool into a  tag
static std::string ref_conversion(const ::Eolian_Doc_Token *token, const 
Eolian_State *state, std::string name_tail)
{
@@ -299,6 +322,31 @@ struct documentation_generator
{
   return generate_tag_summary(sink, doc.full_text, context);
}
+
+   template
+   bool generate(OutputIterator sink, attributes::constructor_def const& ctor, 
Context const& context) const
+   {
+  // Not sure if this is the best way to generate a reference outside the 
full doc generator.
+  auto unit = (const Eolian_Unit*) 
context_find_tag(context).state;
+  auto func = ctor.function;
+  auto eolian_klass = get_klass(func.klass, unit);
+  attributes::klass_def klass(eolian_klass, unit);
+  std::string summary;
+
+  if (func.type == attributes::function_type::prop_set)
+  summary = func.property_documentation.summary;
+  else
+  summary = func.documentation.summary;
+
+  for (auto & : ctor.function.parameters)
+{
+  if (!as_generator(
+  scope_tab << "///" << summary << " See \n"
+  ).generate(sink, param, context))
+return false;
+}
+  return true;
+   }
 };
 
 struct documentation_terminal
diff --git a/src/bin/eolian_mono/eolian/mono/helpers.hh 
b/src/bin/eolian_mono/eolian/mono/helpers.hh
index ed72345009..87a1e9db39 100644
--- a/src/bin/eolian_mono/eolian/mono/helpers.hh
+++ b/src/bin/eolian_mono/eolian/mono/helpers.hh
@@ -221,6 +221,12 @@ inline bool is_unique_event(attributes::event_def const& 
evt
  });
 }
 
+inline std::vector 
reorder_constructors(std::vector constructors)
+{
+  auto is_required = [](attributes::constructor_def const& ctr) { return 
!ctr.is_optional; };
+  std::stable_partition(constructors.begin(), constructors.end(), is_required);
+  return constructors;
+}
 
 } // namespace helpers
 
diff --git a/src/bin/eolian_mono/eolian/mono/klass.hh 
b/src/bin/eolian_mono/eolian/mono/klass.hh
index 6a2c8186eb..d8f2e7e4f7 100644
--- a/src/bin/eolian_mono/eolian/mono/klass.hh

[EGIT] [core/efl] master 01/01: efl-cxx: Fix compilation error when using a ptr to const any_value

2019-02-01 Thread Felipe Magno de Almeida
raster pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=36286a23fe97e3667c1106116d1edbc301c7a9ba

commit 36286a23fe97e3667c1106116d1edbc301c7a9ba
Author: Felipe Magno de Almeida 
Date:   Fri Feb 1 10:46:52 2019 +

efl-cxx: Fix compilation error when using a ptr to const any_value

Reviewers: lauromoura, cedric

Subscribers: #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7858
---
 src/bindings/cxx/eo_cxx/eo_cxx_interop.hh | 4 
 1 file changed, 4 insertions(+)

diff --git a/src/bindings/cxx/eo_cxx/eo_cxx_interop.hh 
b/src/bindings/cxx/eo_cxx/eo_cxx_interop.hh
index c0ed323c27..4af1c56efd 100644
--- a/src/bindings/cxx/eo_cxx/eo_cxx_interop.hh
+++ b/src/bindings/cxx/eo_cxx/eo_cxx_interop.hh
@@ -707,6 +707,10 @@ inline efl::eina::value_view convert_to_return(Eina_Value* 
value, tag)
+{
+  return efl::eina::value_view{const_cast(value)};
+}
 template 
 T convert_to_return(U* value, tag, typename 
std::enable_if::value || is_container::value>::type* = 0)
 {

-- 




[EGIT] [tools/examples] master 01/01: efl-mono: Fix examples based on new D7789

2019-01-27 Thread Felipe Magno de Almeida
felipealmeida pushed a commit to branch master.

http://git.enlightenment.org/tools/examples.git/commit/?id=1d5a5322dfc5ad67c9d3c338d0622d736ade1554

commit 1d5a5322dfc5ad67c9d3c338d0622d736ade1554
Author: Felipe Magno de Almeida 
Date:   Mon Jan 28 16:03:49 2019 +0900

efl-mono: Fix examples based on new D7789
---
 apps/csharp/life/src/life_board.cs  | 4 +---
 apps/csharp/life/src/life_main.cs   | 3 +--
 reference/csharp/core/src/core_event.cs | 5 +
 reference/csharp/core/src/core_idler.cs | 5 +
 reference/csharp/core/src/core_poll.cs  | 5 +
 5 files changed, 5 insertions(+), 17 deletions(-)

diff --git a/apps/csharp/life/src/life_board.cs 
b/apps/csharp/life/src/life_board.cs
index 836c0169..26dbf62c 100644
--- a/apps/csharp/life/src/life_board.cs
+++ b/apps/csharp/life/src/life_board.cs
@@ -60,9 +60,7 @@ public class LifeBoard
 
 public void Run(Efl.Ui.Win win)
 {
-lifeTimer = new Efl.LoopTimer(win, (Efl.LoopTimer etimer) => {
-etimer.SetInterval(0.1);
-});
+lifeTimer = new Efl.LoopTimer(win, 0.1);
 
 lifeTimer.TickEvt += (object sender, EventArgs ev) => {
 Nextgen();
diff --git a/apps/csharp/life/src/life_main.cs 
b/apps/csharp/life/src/life_main.cs
index 4dd34dd6..11e2b816 100644
--- a/apps/csharp/life/src/life_main.cs
+++ b/apps/csharp/life/src/life_main.cs
@@ -37,8 +37,7 @@ public class LifeWindow
 
 public LifeWindow()
 {
-Efl.Ui.Win win = new Efl.Ui.Win(null);
-win.SetWinType(Efl.Ui.WinType.Basic);
+Efl.Ui.Win win = new Efl.Ui.Win(null, null, Efl.Ui.WinType.Basic);
 win.SetText("EFL Life");
 win.SetAutohide(true);
 
diff --git a/reference/csharp/core/src/core_event.cs 
b/reference/csharp/core/src/core_event.cs
index 2cb6d8e0..b0caac81 100644
--- a/reference/csharp/core/src/core_event.cs
+++ b/reference/csharp/core/src/core_event.cs
@@ -31,10 +31,7 @@ public class Example
 mainloop.PollHighEvt += PollCb;
 
 // This timer will control events fired by the main loop
-var timer = new Efl.LoopTimer(mainloop, (Efl.LoopTimer etimer) => {
-// Trigger every 100ms
-etimer.SetInterval(0.1);
-});
+var timer = new Efl.LoopTimer(mainloop, 0.1);
 timer.SetName("Timer");
 // To count number of timer triggers
 int tick_count = 0;
diff --git a/reference/csharp/core/src/core_idler.cs 
b/reference/csharp/core/src/core_idler.cs
index e8853e51..7e272796 100644
--- a/reference/csharp/core/src/core_idler.cs
+++ b/reference/csharp/core/src/core_idler.cs
@@ -34,10 +34,7 @@ public class Example
 };
 
 // Use a timer to exit the application
-var timer = new Efl.LoopTimer(mainloop, (Efl.LoopTimer etimer) => {
-// Trigger after 10ms
-etimer.SetInterval(0.01);
-});
+var timer = new Efl.LoopTimer(mainloop, 0.01);
 timer.TickEvt += (object sender, EventArgs e) => {
   Console.WriteLine("TIMER: timer callback called, exiting.");
   mainloop.Quit(new Eina.Value(0));
diff --git a/reference/csharp/core/src/core_poll.cs 
b/reference/csharp/core/src/core_poll.cs
index 3ecf7bc1..522a36aa 100644
--- a/reference/csharp/core/src/core_poll.cs
+++ b/reference/csharp/core/src/core_poll.cs
@@ -33,10 +33,7 @@ public class Example
 };
 
 // Use a timer to exit the application
-var timer = new Efl.LoopTimer(mainloop, (Efl.LoopTimer etimer) => {
-// Trigger after 30s
-etimer.SetInterval(30);
-});
+var timer = new Efl.LoopTimer(mainloop, 30);
 timer.TickEvt += (object sender, EventArgs e) => {
   Console.WriteLine("\nTIMER: timer callback called, exiting.");
   mainloop.Quit(new Eina.Value(0));

-- 




[EGIT] [core/efl] master 01/01: efl-mono: Add new dependencies to autotools

2019-01-25 Thread Felipe Magno de Almeida
woohyun pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=082d018041bea1a9a2e0ff0c47dcbe3631a227a2

commit 082d018041bea1a9a2e0ff0c47dcbe3631a227a2
Author: Felipe Magno de Almeida 
Date:   Fri Jan 25 20:57:07 2019 +0900

efl-mono: Add new dependencies to autotools

Summary: This fix make check for csharp bindings

Reviewers: woohyun

Reviewed By: woohyun

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7770
---
 src/Makefile_Efl_Mono.am | 10 --
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/Makefile_Efl_Mono.am b/src/Makefile_Efl_Mono.am
index 8c7d2f0373..eb14af98b2 100644
--- a/src/Makefile_Efl_Mono.am
+++ b/src/Makefile_Efl_Mono.am
@@ -397,14 +397,20 @@ tests/efl_mono/libefl_mono_native_test.c: \
tests/efl_mono/dummy_child.eo.h \
tests/efl_mono/dummy_child.eo.c \
tests/efl_mono/dummy_numberwrapper.eo.h \
-   tests/efl_mono/dummy_numberwrapper.eo.c
+   tests/efl_mono/dummy_numberwrapper.eo.c \
+   tests/efl_mono/dummy_inherit_iface.eo.h \
+   tests/efl_mono/dummy_inherit_iface.eo.c \
+   tests/efl_mono/dummy_inherit_helper.eo.h \
+   tests/efl_mono/dummy_inherit_helper.eo.c
 
 # Intermediate C Sharp test DLL
 efl_mono_test_eolian_mono_files = tests/efl_mono/dummy_test_object.eo.cs \
 tests/efl_mono/dummy_test_iface.eo.cs \
 tests/efl_mono/dummy_another_iface.eo.cs \
 tests/efl_mono/dummy_child.eo.cs \
-tests/efl_mono/dummy_numberwrapper.eo.cs
+tests/efl_mono/dummy_numberwrapper.eo.cs \
+tests/efl_mono/dummy_inherit_iface.eo.cs \
+tests/efl_mono/dummy_inherit_helper.eo.cs
 
 tests/efl_mono/libefl_mono_test.dll: $(efl_mono_test_eolian_mono_files) 
tests/efl_mono/$(am__dirstamp) lib/efl_mono/libefl_mono.dll 
tests/efl_mono/libefl_mono_native_test.la 
tests/efl_mono/libefl_mono_test.dll.config
@rm -f tests/efl_mono/libefl_mono_test.dll

-- 




[EGIT] [core/efl] master 01/01: efl-mono: Fix calling non-static methods with garbage collectable NativeInherits

2019-01-18 Thread Felipe Magno de Almeida
bu5hm4n pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=50c41b1100d2dce33518e59ebaadc5cfcc63c69e

commit 50c41b1100d2dce33518e59ebaadc5cfcc63c69e
Author: Felipe Magno de Almeida 
Date:   Fri Jan 18 09:37:26 2019 +

efl-mono: Fix calling non-static methods with garbage collectable 
NativeInherits

This fixes intermittent errors in C# classes with inheritance from Eo,
just like a lot of unit tests.

Reviewed-by: Xavi Artigas 
Differential Revision: https://phab.enlightenment.org/D7683
---
 src/bin/eolian_mono/eolian/mono/function_definition.hh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/bin/eolian_mono/eolian/mono/function_definition.hh 
b/src/bin/eolian_mono/eolian/mono/function_definition.hh
index 6917870074..5a78bc735f 100644
--- a/src/bin/eolian_mono/eolian/mono/function_definition.hh
+++ b/src/bin/eolian_mono/eolian/mono/function_definition.hh
@@ -79,7 +79,7 @@ struct native_function_definition_generator
 
 if(!as_generator
(scope_tab
-<< " private "
+<< " private static "
 << eolian_mono::marshall_type(true) << " "
 << string
 << "(System.IntPtr obj, System.IntPtr pd"
@@ -102,7 +102,7 @@ struct native_function_definition_generator
 << eolian_mono::native_function_definition_epilogue(*klass)
 << scope_tab << scope_tab << "} else {\n"
 << scope_tab << scope_tab << scope_tab << (return_type != " void" ? 
"return " : "") << string
-<< "(Efl.Eo.Globals.efl_super(obj, " << "GetEflClass())" << *(", " << 
argument) << ");\n"
+<< "(Efl.Eo.Globals.efl_super(obj, " << 
"Efl.Eo.Globals.efl_class_get(obj))" << *(", " << argument) << ");\n"
 << scope_tab << scope_tab << "}\n"
 << scope_tab << "}\n"
)

-- 




[EGIT] [core/efl] master 02/03: efl-mono: Fix lots of warnings in tests

2019-01-17 Thread Felipe Magno de Almeida
bu5hm4n pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=fc48e19b564c7b056e950b2943e0f7f4045696a6

commit fc48e19b564c7b056e950b2943e0f7f4045696a6
Author: Felipe Magno de Almeida 
Date:   Thu Jan 17 11:32:21 2019 +

efl-mono: Fix lots of warnings in tests

Reviewed-by: Marcel Hollerbach 
Reviewed-by: Xavi Artigas 
Differential Revision: https://phab.enlightenment.org/D7675
---
 src/tests/efl_mono/libefl_mono_native_test.c | 12 ++--
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/tests/efl_mono/libefl_mono_native_test.c 
b/src/tests/efl_mono/libefl_mono_native_test.c
index 9e58ab3dac..4c46e1e8dc 100644
--- a/src/tests/efl_mono/libefl_mono_native_test.c
+++ b/src/tests/efl_mono/libefl_mono_native_test.c
@@ -3861,7 +3861,7 @@ Eina_Future* _dummy_test_object_get_future(EINA_UNUSED Eo 
*obj, Dummy_Test_Objec
 return eina_future_new(pd->promise);
 }
 
-void _dummy_test_object_fulfill_promise(Eo *obj, Dummy_Test_Object_Data *pd, 
int data)
+void _dummy_test_object_fulfill_promise(Eo *obj EINA_UNUSED, 
Dummy_Test_Object_Data *pd, int data)
 {
 if (pd->promise == NULL)
   {
@@ -3874,7 +3874,7 @@ void _dummy_test_object_fulfill_promise(Eo *obj, 
Dummy_Test_Object_Data *pd, int
 eina_promise_resolve(pd->promise, v);
 }
 
-void _dummy_test_object_reject_promise(Eo *obj, Dummy_Test_Object_Data *pd, 
Eina_Error err)
+void _dummy_test_object_reject_promise(Eo *obj EINA_UNUSED, 
Dummy_Test_Object_Data *pd, Eina_Error err)
 {
 if (pd->promise == NULL)
   {
@@ -3885,7 +3885,7 @@ void _dummy_test_object_reject_promise(Eo *obj, 
Dummy_Test_Object_Data *pd, Eina
 eina_promise_reject(pd->promise, err);
 }
 
-Eina_Accessor *_dummy_test_object_clone_accessor(Eo *obj, 
Dummy_Test_Object_Data *pd, Eina_Accessor *acc)
+Eina_Accessor *_dummy_test_object_clone_accessor(Eo *obj EINA_UNUSED, 
Dummy_Test_Object_Data *pd, Eina_Accessor *acc)
 {
if (pd->list_for_accessor)
  eina_list_free(pd->list_for_accessor);
@@ -3900,17 +3900,17 @@ Eina_Accessor *_dummy_test_object_clone_accessor(Eo 
*obj, Dummy_Test_Object_Data
return eina_list_accessor_new(pd->list_for_accessor);
 }
 
-void _dummy_test_object_dummy_test_iface_emit_test_conflicted(Eo *obj, 
Dummy_Test_Object_Data *pd)
+void _dummy_test_object_dummy_test_iface_emit_test_conflicted(Eo *obj, 
Dummy_Test_Object_Data *pd EINA_UNUSED)
 {
 efl_event_callback_legacy_call(obj, DUMMY_TEST_IFACE_EVENT_CONFLICTED, 
NULL);
 }
 
-void _dummy_test_object_dummy_test_iface_emit_nonconflicted(Eo *obj, 
Dummy_Test_Object_Data *pd)
+void _dummy_test_object_dummy_test_iface_emit_nonconflicted(Eo *obj, 
Dummy_Test_Object_Data *pd EINA_UNUSED)
 {
 efl_event_callback_legacy_call(obj, DUMMY_TEST_IFACE_EVENT_NONCONFLICTED, 
NULL);
 }
 
-void _dummy_test_object_dummy_another_iface_emit_another_conflicted(Eo *obj, 
Dummy_Test_Object_Data *pd)
+void _dummy_test_object_dummy_another_iface_emit_another_conflicted(Eo *obj, 
Dummy_Test_Object_Data *pd EINA_UNUSED)
 {
 efl_event_callback_legacy_call(obj, DUMMY_ANOTHER_IFACE_EVENT_CONFLICTED, 
NULL);
 }

-- 




[EGIT] [core/efl] master 01/03: eolian-cxx: Fix order of initialization

2019-01-17 Thread Felipe Magno de Almeida
bu5hm4n pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=d57a7df3b5ad731fe0bd4f9cd07b448955380e58

commit d57a7df3b5ad731fe0bd4f9cd07b448955380e58
Author: Felipe Magno de Almeida 
Date:   Thu Jan 17 11:31:06 2019 +

eolian-cxx: Fix order of initialization

Make order of code the same as the order of initialization. This avoids 
warnings

efl-mono: Fix lots of warnings in tests

Reviewed-by: Xavi Artigas 
Differential Revision: https://phab.enlightenment.org/D7633
---
 src/lib/eolian_cxx/grammar/klass_def.hpp | 9 +
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/src/lib/eolian_cxx/grammar/klass_def.hpp 
b/src/lib/eolian_cxx/grammar/klass_def.hpp
index f69fca29d3..fc9d09519a 100644
--- a/src/lib/eolian_cxx/grammar/klass_def.hpp
+++ b/src/lib/eolian_cxx/grammar/klass_def.hpp
@@ -1061,11 +1061,12 @@ struct klass_def
 , std::string klass_get_name)
 : eolian_name(_eolian_name), cxx_name(_cxx_name)
 , namespaces(_namespaces)
-, functions(_functions), properties(_properties), inherits(_inherits), 
type(_type), unit(unit)
-, klass_get_name(klass_get_name)
+, functions(_functions), properties(_properties), inherits(_inherits), 
type(_type)
+, klass_get_name(klass_get_name), unit(unit)
   {}
-  klass_def(Eolian_Class const* klass, Eolian_Unit const* unit) : unit(unit)
-, klass_get_name( ::eolian_class_c_get_function_name_get(klass))
+  klass_def(Eolian_Class const* klass, Eolian_Unit const* unit)
+: klass_get_name( ::eolian_class_c_get_function_name_get(klass))
+, unit(unit)
   {
  for(efl::eina::iterator namespace_iterator( 
::eolian_class_namespaces_get(klass))
, namespace_last; namespace_iterator != namespace_last; 
++namespace_iterator)

-- 




[EGIT] [core/efl] master 01/03: efl-mono: Add proper test for interface inheritance

2019-01-17 Thread Felipe Magno de Almeida
felipealmeida pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=92aab7830cbc3e8697d56440972835b6d8c67aba

commit 92aab7830cbc3e8697d56440972835b6d8c67aba
Author: Felipe Magno de Almeida 
Date:   Tue Jan 15 09:07:49 2019 +0900

efl-mono: Add proper test for interface inheritance

Reviewers: segfaultxavi, bu5hm4n, woohyun, Jaehyun_Cho, lauromoura

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7634
---
 src/tests/efl_mono/Inheritance.cs| 53 
 src/tests/efl_mono/dummy_inherit_helper.eo   | 17 +
 src/tests/efl_mono/dummy_inherit_iface.eo| 10 ++
 src/tests/efl_mono/libefl_mono_native_test.c | 24 +
 src/tests/efl_mono/meson.build   |  5 +--
 5 files changed, 107 insertions(+), 2 deletions(-)

diff --git a/src/tests/efl_mono/Inheritance.cs 
b/src/tests/efl_mono/Inheritance.cs
new file mode 100644
index 00..30ca391e87
--- /dev/null
+++ b/src/tests/efl_mono/Inheritance.cs
@@ -0,0 +1,53 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Runtime.InteropServices;
+using System.Runtime.CompilerServices;
+
+using EinaTestData;
+using static EinaTestData.BaseData;
+
+namespace TestSuite
+{
+
+class TestInheritance
+{
+internal class Inherit1 : Dummy.TestObject
+{
+override public void IntOut (int x, out int y)
+{
+y = 10*x;
+}
+}
+
+internal class Inherit2 : Dummy.TestObject, Dummy.InheritIface
+{
+override public void IntOut (int x, out int y)
+{
+y = 10*x;
+}
+
+public string StringshareTest (string i)
+{
+return "Hello World";
+}
+}
+
+public static void test_inherit_from_regular_class()
+{
+var obj = new Inherit1();
+int i = Dummy.InheritHelper.ReceiveDummyAndCallIntOut(obj);
+Test.AssertEquals (50, i);
+}
+
+public static void test_inherit_from_iface()
+{
+var obj = new Inherit2();
+int i = Dummy.InheritHelper.ReceiveDummyAndCallIntOut(obj);
+string s = Dummy.InheritHelper.ReceiveDummyAndCallInStringshare(obj);
+Test.AssertEquals (50, i);
+Test.AssertEquals ("Hello World", s);
+}
+}
+
+}
diff --git a/src/tests/efl_mono/dummy_inherit_helper.eo 
b/src/tests/efl_mono/dummy_inherit_helper.eo
new file mode 100644
index 00..101c759390
--- /dev/null
+++ b/src/tests/efl_mono/dummy_inherit_helper.eo
@@ -0,0 +1,17 @@
+class Dummy.Inherit_Helper extends Efl.Object
+{
+  methods {
+receive_dummy_and_call_int_out @class {
+  params {
+@in x: Dummy.Test_Object;
+  }
+  return: int;
+}
+receive_dummy_and_call_in_stringshare @class {
+  params {
+@in x: Dummy.Inherit_Iface;
+  }
+  return: stringshare;
+}
+  }
+}
diff --git a/src/tests/efl_mono/dummy_inherit_iface.eo 
b/src/tests/efl_mono/dummy_inherit_iface.eo
new file mode 100644
index 00..6333a86f42
--- /dev/null
+++ b/src/tests/efl_mono/dummy_inherit_iface.eo
@@ -0,0 +1,10 @@
+interface Dummy.Inherit_Iface {
+   methods {
+  stringshare_test {
+ params {
+@in v: stringshare;
+ }
+ return: stringshare @owned;
+  }
+   }
+}
diff --git a/src/tests/efl_mono/libefl_mono_native_test.c 
b/src/tests/efl_mono/libefl_mono_native_test.c
index fc4e3cbae6..d0109dbad2 100644
--- a/src/tests/efl_mono/libefl_mono_native_test.c
+++ b/src/tests/efl_mono/libefl_mono_native_test.c
@@ -39,6 +39,8 @@
 #include "dummy_child.eo.h"
 #include "dummy_test_iface.eo.h"
 #include "dummy_another_iface.eo.h"
+#include "dummy_inherit_iface.eo.h"
+#include "dummy_inherit_helper.eo.h"
 
 #include 
 
@@ -71,6 +73,13 @@ typedef struct Dummy_Child_Data
 {
 } Dummy_Child_Data;
 
+typedef struct Dummy_Inherit_Helper_Data
+{
+} Dummy_Inherit_Helper_Data;
+
+typedef struct Dummy_Inherit_Iface_Data
+{
+} Dummy_Inherit_Iface_Data;
 
 static
 void *_new_int(int v)
@@ -3928,9 +3937,24 @@ _dummy_child_class_destructor(Efl_Class *klass)
 (void)klass;
 }
 
+// Inherit
+int _dummy_inherit_helper_receive_dummy_and_call_int_out(Eo *obj EINA_UNUSED, 
void *pd EINA_UNUSED, Dummy_Test_Object *x)
+{
+  int v = 8;
+  dummy_test_object_int_out (x, 5, );
+  return v;
+}
+
+const char* _dummy_inherit_helper_receive_dummy_and_call_in_stringshare(Eo 
*obj EINA_UNUSED, void *pd EINA_UNUSED, Dummy_Test_Object *x)
+{
+  return dummy_inherit_iface_stringshare_test (x, eina_stringshare_add("hello 
world"));
+}
+
 #include "dummy_test_object.eo.c"
 #include "dummy_numberwrapper.eo.c"
 #include "dummy_child.eo.c"
 #include "dummy_test_iface.eo.c"
 #include "dummy_another_iface.eo.c"
+#include "dummy_inherit

[EGIT] [core/efl] master 03/03: eolian-mono: Add interface registration to inherited classes

2019-01-17 Thread Felipe Magno de Almeida
felipealmeida pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=adc2e674af528c01ca5bb11d56edc475bce5cc4d

commit adc2e674af528c01ca5bb11d56edc475bce5cc4d
Author: Felipe Magno de Almeida 
Date:   Thu Jan 17 21:33:09 2019 +0900

eolian-mono: Add interface registration to inherited classes

Summary: Depends on D7635, D7634

Reviewers: woohyun, bu5hm4n, segfaultxavi, lauromoura

Reviewed By: woohyun

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7636
---
 .../eolian_mono/eolian/mono/function_definition.hh |  10 +-
 .../eolian/mono/function_registration.hh   |  30 ++--
 src/bin/eolian_mono/eolian/mono/klass.hh   | 178 +
 src/bin/eolian_mono/eolian/mono/name_helpers.hh|  12 --
 src/bindings/mono/eo_mono/iwrapper.cs  | 104 ++--
 src/tests/efl_mono/Inheritance.cs  |   4 +-
 6 files changed, 196 insertions(+), 142 deletions(-)

diff --git a/src/bin/eolian_mono/eolian/mono/function_definition.hh 
b/src/bin/eolian_mono/eolian/mono/function_definition.hh
index 763bbc451f..2d9e1b5d5a 100644
--- a/src/bin/eolian_mono/eolian/mono/function_definition.hh
+++ b/src/bin/eolian_mono/eolian/mono/function_definition.hh
@@ -71,7 +71,11 @@ struct native_function_definition_generator
 
if(!as_generator(eolian_mono::type(true)).generate(std::back_inserter(return_type),
 f.return_type, context))
   return false;
 
-std::string klass_inherit_name = name_helpers::klass_inherit_name(*klass);
+std::string klass_cast_name;
+if (klass->type != attributes::class_type::interface_)
+  klass_cast_name = name_helpers::klass_inherit_name(*klass);
+else
+  klass_cast_name = name_helpers::klass_interface_name(*klass);
 
 if(!as_generator
(scope_tab
@@ -89,7 +93,7 @@ struct native_function_definition_generator
 << scope_tab << scope_tab << "if(wrapper != null) {\n"
 << scope_tab << scope_tab << scope_tab << 
eolian_mono::native_function_definition_preamble()
 << scope_tab << scope_tab << scope_tab << "try {\n"
-<< scope_tab << scope_tab << scope_tab << scope_tab << (return_type != 
" void" ? "_ret_var = " : "") << "((" << klass_inherit_name << ")wrapper)." << 
string
+<< scope_tab << scope_tab << scope_tab << scope_tab << (return_type != 
" void" ? "_ret_var = " : "") << "((" << klass_cast_name << ")wrapper)." << 
string
 << "(" << (native_argument_invocation % ", ") << ");\n"
 << scope_tab << scope_tab << scope_tab << "} catch (Exception e) {\n"
 << scope_tab << scope_tab << scope_tab << scope_tab << 
"Eina.Log.Warning($\"Callback error: {e.ToString()}\");\n"
@@ -98,7 +102,7 @@ struct native_function_definition_generator
 << eolian_mono::native_function_definition_epilogue(*klass)
 << scope_tab << scope_tab << "} else {\n"
 << scope_tab << scope_tab << scope_tab << (return_type != " void" ? 
"return " : "") << string
-<< "(Efl.Eo.Globals.efl_super(obj, " << "EoKlass)" << *(", " << 
argument) << ");\n"
+<< "(Efl.Eo.Globals.efl_super(obj, " << "GetEflClass())" << *(", " << 
argument) << ");\n"
 << scope_tab << scope_tab << "}\n"
 << scope_tab << "}\n"
)
diff --git a/src/bin/eolian_mono/eolian/mono/function_registration.hh 
b/src/bin/eolian_mono/eolian/mono/function_registration.hh
index 0b8da4a05a..78f2d718c7 100644
--- a/src/bin/eolian_mono/eolian/mono/function_registration.hh
+++ b/src/bin/eolian_mono/eolian/mono/function_registration.hh
@@ -20,10 +20,10 @@
 
 namespace eolian_mono {
 
-template 
+// template 
 struct function_registration_generator
 {
-  I index_generator;
+  // I index_generator;
   attributes::klass_def const* klass;
   
   template 
@@ -34,7 +34,7 @@ struct function_registration_generator
   return true;
 else
   {
-auto index = index_generator();
+// auto index = index_generator();
 
 if(!as_generator(
 scope_tab << scope_tab << f.c_name << "_static_delegate = new " << 
f.c_name << "_delegate(" <<
@@ -43,12 +43,13 @@ struct f

[EGIT] [core/efl] master 01/01: efl-mono: Remove trailings from template file

2019-01-15 Thread Felipe Magno de Almeida
felipealmeida pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=4858d9eb81f4aa5d24b9555b5caf0e058609d8ab

commit 4858d9eb81f4aa5d24b9555b5caf0e058609d8ab
Author: Felipe Magno de Almeida 
Date:   Wed Jan 16 11:56:13 2019 +0900

efl-mono: Remove trailings from template file

Summary: The trailings end up in the final version, which causes it to 
create a invalid XML file.

Reviewers: bu5hm4n, woohyun, segfaultxavi

Reviewed By: bu5hm4n

Subscribers: cedric, segfaultxavi, woohyun, #reviewers, bu5hm4n, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7613
---
 src/bindings/mono/efl_mono.dll.config.in | 14 +++---
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/src/bindings/mono/efl_mono.dll.config.in 
b/src/bindings/mono/efl_mono.dll.config.in
index 0531b79523..b84883fda9 100644
--- a/src/bindings/mono/efl_mono.dll.config.in
+++ b/src/bindings/mono/efl_mono.dll.config.in
@@ -1,9 +1,9 @@
 
-  
-  
-  
-  
-  
-  
-  
+  
+  
+  
+  
+  
+  
+  
 

-- 




[EGIT] [core/efl] master 03/03: efl-mono: Add efl_mono.dll.config file to run tests from within tree

2019-01-04 Thread Felipe Magno de Almeida
bu5hm4n pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=a8e23cc4005b45343f8902e25626a9e4116a66c9

commit a8e23cc4005b45343f8902e25626a9e4116a66c9
Author: Felipe Magno de Almeida 
Date:   Thu Jan 3 21:06:53 2019 +

efl-mono: Add efl_mono.dll.config file to run tests from within tree

Required by some distros like Arch.

Reviewed-by: Marcel Hollerbach 
Reviewed-by: Felipe Magno de Almeida 
Differential Revision: https://phab.enlightenment.org/D7527
---
 src/bindings/mono/efl_mono.dll.config.in |  9 +
 src/bindings/mono/meson.build| 13 +
 2 files changed, 22 insertions(+)

diff --git a/src/bindings/mono/efl_mono.dll.config.in 
b/src/bindings/mono/efl_mono.dll.config.in
new file mode 100644
index 00..0531b79523
--- /dev/null
+++ b/src/bindings/mono/efl_mono.dll.config.in
@@ -0,0 +1,9 @@
+
+  
+  
+  
+  
+  
+  
+  
+
diff --git a/src/bindings/mono/meson.build b/src/bindings/mono/meson.build
index 4710e4c0cc..411c29f617 100644
--- a/src/bindings/mono/meson.build
+++ b/src/bindings/mono/meson.build
@@ -113,6 +113,19 @@ foreach mono_gen_file : legacy_evas_required_by_mono
'@INPUT@'])
 endforeach
 
+efl_mono_conf_data = configuration_data()
+efl_mono_conf_data.set('EINA', eina_lib.full_path())
+efl_mono_conf_data.set('EFL', efl_lib.full_path())
+efl_mono_conf_data.set('ECORE', ecore_lib.full_path())
+efl_mono_conf_data.set('EO', eo_lib.full_path())
+efl_mono_conf_data.set('EVAS', evas_lib.full_path())
+efl_mono_conf_data.set('ELDBUS', eldbus_lib.full_path())
+efl_mono_conf_data.set('ELEMENTARY', elementary_lib.full_path())
+
+configure_file(input : 'efl_mono.dll.config.in',
+   output : 'efl_mono.dll.config',
+   configuration : efl_mono_conf_data)
+
 efl_mono = library('efl_mono',
 mono_generator_target + mono_files + [efl_src],
 install : true,

-- 




[EGIT] [core/efl] master 01/01: eolian: Add @ctor_param parameter to constructors

2018-10-30 Thread Felipe Magno de Almeida
q66 pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=1933735635aa72cf7be96c47b1e5b8a5ee318323

commit 1933735635aa72cf7be96c47b1e5b8a5ee318323
Author: Felipe Magno de Almeida 
Date:   Wed Oct 31 02:47:58 2018 +0100

eolian: Add @ctor_param parameter to constructors

Summary:
This tagging keyword explicitly asks, for bindings that support it,
that the constructor's parameters are added to the class constructor.

Allowing the user to instantiate the class and call the constructor in
a straightforward way.

Reviewers: q66, woohyun, bu5hm4n, Jaehyun_Cho, segfaultxavi

Reviewed By: q66

Subscribers: cedric, #reviewers, #committers, lauromoura

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7221
---
 src/lib/eolian/Eolian.h   | 10 ++
 src/lib/eolian/database_constructor_api.c |  7 +++
 src/lib/eolian/eo_lexer.h |  2 +-
 src/lib/eolian/eo_parser.c| 22 ++
 src/lib/eolian/eolian_database.h  |  1 +
 src/tests/eolian/data/ctor_dtor.eo|  6 ++
 src/tests/eolian/eolian_parsing.c |  9 +
 7 files changed, 52 insertions(+), 5 deletions(-)

diff --git a/src/lib/eolian/Eolian.h b/src/lib/eolian/Eolian.h
index b5241ead86..f626ce82ca 100644
--- a/src/lib/eolian/Eolian.h
+++ b/src/lib/eolian/Eolian.h
@@ -1988,6 +1988,16 @@ EAPI const Eolian_Function 
*eolian_constructor_function_get(const Eolian_Constru
  */
 EAPI Eina_Bool eolian_constructor_is_optional(const Eolian_Constructor *ctor);
 
+/*
+ * @brief Checks if a constructor is tagged as a constructor parameter.
+ *
+ * @param[in] ctor the handle of the constructor
+ * @return EINA_TRUE if a constructor parameter, EINA_FALSE if not (or if 
input is NULL).
+ *
+ * @ingroup Eolian
+ */
+EAPI Eina_Bool eolian_constructor_is_ctor_param(const Eolian_Constructor 
*ctor);
+
 /*
  * @brief Get an iterator to the constructing functions defined in a class.
  *
diff --git a/src/lib/eolian/database_constructor_api.c 
b/src/lib/eolian/database_constructor_api.c
index bedf9ab7da..63b935cc6c 100644
--- a/src/lib/eolian/database_constructor_api.c
+++ b/src/lib/eolian/database_constructor_api.c
@@ -29,3 +29,10 @@ eolian_constructor_is_optional(const Eolian_Constructor 
*ctor)
EINA_SAFETY_ON_NULL_RETURN_VAL(ctor, EINA_FALSE);
return ctor->is_optional;
 }
+
+EAPI Eina_Bool
+eolian_constructor_is_ctor_param(const Eolian_Constructor *ctor)
+{
+   EINA_SAFETY_ON_NULL_RETURN_VAL(ctor, EINA_FALSE);
+   return ctor->is_ctor_param;
+}
diff --git a/src/lib/eolian/eo_lexer.h b/src/lib/eolian/eo_lexer.h
index 846123937c..fc70a0c914 100644
--- a/src/lib/eolian/eo_lexer.h
+++ b/src/lib/eolian/eo_lexer.h
@@ -60,7 +60,7 @@ enum Tokens
 KW(function), \
 KW(__undefined_type), \
 \
-KW(true), KW(false), KW(null)
+KW(true), KW(false), KW(null), KWAT(ctor_param)
 
 /* "regular" keyword and @ prefixed keyword */
 #define KW(x) KW_##x
diff --git a/src/lib/eolian/eo_parser.c b/src/lib/eolian/eo_parser.c
index 90b0db60ae..f55e3e1744 100644
--- a/src/lib/eolian/eo_parser.c
+++ b/src/lib/eolian/eo_parser.c
@@ -1655,10 +1655,17 @@ parse_constructor(Eo_Lexer *ls)
   ls->klass->base.name,
   ls->t.value.s);
 eo_lexer_get(ls);
-if (ls->t.kw == KW_at_optional)
+while (ls->t.kw == KW_at_optional || ls->t.kw == KW_at_ctor_param)
   {
+ if (ls->t.kw == KW_at_optional)
+   {
+  ctor->is_optional = EINA_TRUE;
+   }
+ if (ls->t.kw == KW_at_ctor_param)
+   {
+  ctor->is_ctor_param = EINA_TRUE;
+   }
  eo_lexer_get(ls);
- ctor->is_optional = EINA_TRUE;
   }
 check_next(ls, ';');
 return;
@@ -1679,10 +1686,17 @@ parse_constructor(Eo_Lexer *ls)
 if (ls->t.token != '.') break;
 eo_lexer_get(ls);
  }
-   if (ls->t.kw == KW_at_optional)
+   while (ls->t.kw == KW_at_optional || ls->t.kw == KW_at_ctor_param)
  {
+if (ls->t.kw == KW_at_optional)
+  {
+ ctor->is_optional = EINA_TRUE;
+  }
+if (ls->t.kw == KW_at_ctor_param)
+  {
+ ctor->is_ctor_param = EINA_TRUE;
+  }
 eo_lexer_get(ls);
-ctor->is_optional = EINA_TRUE;
  }
check_next(ls, ';');
ctor->base.name = eina_stringshare_add(eina_strbuf_string_get(buf));
diff --git a/src/lib/eolian/eolian_database.h b/src/lib/eolian/eolian_database.h
index dfbad0c304..3f3ab61b18 100644
--- a/src/lib/eolian/eolian_database.h
+++ b/src/lib/eolian/eolian_database.h
@@ -309,6 +309,7 @@ struct _Eolian_Constructor
Eolian_Object base;
const Eol

[EGIT] [website/www-content] master 01/01: Wiki page start.md changed with summary [] by Felipe Magno de Almeida

2018-09-12 Thread Felipe Magno de Almeida
WWW-www.enlightenment.org pushed a commit to branch master.

http://git.enlightenment.org/website/www-content.git/commit/?id=f35ef7357bdbd73e09dd9cb17e36c92f79e9a8c5

commit f35ef7357bdbd73e09dd9cb17e36c92f79e9a8c5
Author: Felipe Magno de Almeida 
Date:   Wed Sep 12 15:35:06 2018 -0700

Wiki page start.md changed with summary [] by Felipe Magno de Almeida
---
 pages/develop/setup/csharp/start.md.txt | 4 
 1 file changed, 4 insertions(+)

diff --git a/pages/develop/setup/csharp/start.md.txt 
b/pages/develop/setup/csharp/start.md.txt
index 2ef3ced6b..46ab4a777 100644
--- a/pages/develop/setup/csharp/start.md.txt
+++ b/pages/develop/setup/csharp/start.md.txt
@@ -59,6 +59,10 @@ sudo make install
 > Usually, reading the error message and installing the missing package solves 
 > the problem.
 > If you cannot solve the problem by yourself, try [contacting the 
 > community](/contact).
 
+> **NOTE**
+> If you are using Visual Studio to write EFL C# applications, you should copy 
to the build directory or have them in the PATH environment libraries: 
libeflcustomexportsmono.dll, libefl_mono.dll and if you want to use 
Intellisense also libefl_mono.xml. These libraries and XML file will be found 
at lib sub-directory of the prefix you install the library.
+
+
 ## Building EFL C# Applications ##
 
 With EFL installed, you can compile EFL applications using ``pkg-config`` to 
get the proper flags to use the C# bindings:

-- 




[EGIT] [core/efl] efl-1.21 01/04: eolian-cxx: Fix parallel compilation for eolian_cxx_test_wrapper.cc

2018-09-10 Thread Felipe Magno de Almeida
stefan pushed a commit to branch efl-1.21.

http://git.enlightenment.org/core/efl.git/commit/?id=f1177a39a581653a4ac92160ba25ebcf12a6467a

commit f1177a39a581653a4ac92160ba25ebcf12a6467a
Author: Felipe Magno de Almeida 
Date:   Tue Sep 4 09:10:56 2018 +0900

eolian-cxx: Fix parallel compilation for eolian_cxx_test_wrapper.cc

Summary: Test wasn't defining its own dependencies explicitly, which caused 
race conditions.

Reviewers: Hermet

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6959
---
 src/Makefile_Eolian_Cxx.am | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/Makefile_Eolian_Cxx.am b/src/Makefile_Eolian_Cxx.am
index 5b0099a33e..c2c66a6d91 100644
--- a/src/Makefile_Eolian_Cxx.am
+++ b/src/Makefile_Eolian_Cxx.am
@@ -114,6 +114,8 @@ 
tests/eolian_cxx/$(TESTS_EOLIAN_CXX_OBJNAME)eolian_cxx_suite-eolian_cxx_test_bin
 
tests/eolian_cxx/$(TESTS_EOLIAN_CXX_OBJNAME)eolian_cxx_suite-eolian_cxx_test_address_of.$(OBJEXT):
 tests/eolian_cxx/a.eo.hh tests/eolian_cxx/b.eo.hh tests/eolian_cxx/c.eo.hh 
tests/eolian_cxx/d.eo.hh tests/eolian_cxx/a.eo.h tests/eolian_cxx/b.eo.h 
tests/eolian_cxx/c.eo.h tests/eolian_cxx/d.eo.h
 
tests/eolian_cxx/$(TESTS_EOLIAN_CXX_OBJNAME)eolian_cxx_suite-eolian_cxx_test_cyclic.$(OBJEXT):
 tests/eolian_cxx/cyclic1.eo.hh tests/eolian_cxx/cyclic2.eo.hh 
tests/eolian_cxx/cyclic1.eo.c tests/eolian_cxx/cyclic2.eo.c 
tests/eolian_cxx/cyclic1.eo.h tests/eolian_cxx/cyclic2.eo.h
 
+tests/eolian_cxx/$(TESTS_EOLIAN_CXX_OBJNAME)eolian_cxx_suite-eolian_cxx_test_wrapper.$(OBJEXT):
 tests/eolian_cxx/a.eo.h tests/eolian_cxx/a.eo.c tests/eolian_cxx/a.eo.hh
+
 tests/eolian_cxx/$(TESTS_EOLIAN_CXX_OBJNAME)eolian_cxx_suite-simple.$(OBJEXT): 
tests/eolian_cxx/simple.eo.c tests/eolian_cxx/simple.eo.h
 
tests/eolian_cxx/$(TESTS_EOLIAN_CXX_OBJNAME)eolian_cxx_suite-generic.$(OBJEXT): 
tests/eolian_cxx/generic.eo.c tests/eolian_cxx/generic.eo.h
 tests/eolian_cxx/$(TESTS_EOLIAN_CXX_OBJNAME)eolian_cxx_suite-a.$(OBJEXT): 
tests/eolian_cxx/a.eo.c tests/eolian_cxx/a.eo.h

-- 




[EGIT] [core/efl] master 01/01: eolian-cxx: Fix parallel compilation for eolian_cxx_test_wrapper.cc

2018-09-03 Thread Felipe Magno de Almeida
hermet pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=fb5431b7bcac3208a8ac196e16889561e6ce9099

commit fb5431b7bcac3208a8ac196e16889561e6ce9099
Author: Felipe Magno de Almeida 
Date:   Tue Sep 4 09:10:56 2018 +0900

eolian-cxx: Fix parallel compilation for eolian_cxx_test_wrapper.cc

Summary: Test wasn't defining its own dependencies explicitly, which caused 
race conditions.

Reviewers: Hermet

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6959
---
 src/Makefile_Eolian_Cxx.am | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/Makefile_Eolian_Cxx.am b/src/Makefile_Eolian_Cxx.am
index 5b0099a33e..c2c66a6d91 100644
--- a/src/Makefile_Eolian_Cxx.am
+++ b/src/Makefile_Eolian_Cxx.am
@@ -114,6 +114,8 @@ 
tests/eolian_cxx/$(TESTS_EOLIAN_CXX_OBJNAME)eolian_cxx_suite-eolian_cxx_test_bin
 
tests/eolian_cxx/$(TESTS_EOLIAN_CXX_OBJNAME)eolian_cxx_suite-eolian_cxx_test_address_of.$(OBJEXT):
 tests/eolian_cxx/a.eo.hh tests/eolian_cxx/b.eo.hh tests/eolian_cxx/c.eo.hh 
tests/eolian_cxx/d.eo.hh tests/eolian_cxx/a.eo.h tests/eolian_cxx/b.eo.h 
tests/eolian_cxx/c.eo.h tests/eolian_cxx/d.eo.h
 
tests/eolian_cxx/$(TESTS_EOLIAN_CXX_OBJNAME)eolian_cxx_suite-eolian_cxx_test_cyclic.$(OBJEXT):
 tests/eolian_cxx/cyclic1.eo.hh tests/eolian_cxx/cyclic2.eo.hh 
tests/eolian_cxx/cyclic1.eo.c tests/eolian_cxx/cyclic2.eo.c 
tests/eolian_cxx/cyclic1.eo.h tests/eolian_cxx/cyclic2.eo.h
 
+tests/eolian_cxx/$(TESTS_EOLIAN_CXX_OBJNAME)eolian_cxx_suite-eolian_cxx_test_wrapper.$(OBJEXT):
 tests/eolian_cxx/a.eo.h tests/eolian_cxx/a.eo.c tests/eolian_cxx/a.eo.hh
+
 tests/eolian_cxx/$(TESTS_EOLIAN_CXX_OBJNAME)eolian_cxx_suite-simple.$(OBJEXT): 
tests/eolian_cxx/simple.eo.c tests/eolian_cxx/simple.eo.h
 
tests/eolian_cxx/$(TESTS_EOLIAN_CXX_OBJNAME)eolian_cxx_suite-generic.$(OBJEXT): 
tests/eolian_cxx/generic.eo.c tests/eolian_cxx/generic.eo.h
 tests/eolian_cxx/$(TESTS_EOLIAN_CXX_OBJNAME)eolian_cxx_suite-a.$(OBJEXT): 
tests/eolian_cxx/a.eo.c tests/eolian_cxx/a.eo.h

-- 




[EGIT] [core/efl] master 01/02: eolian-cxx: Remove test that can't be implemented

2018-08-24 Thread Felipe Magno de Almeida
stefan pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=2032e7d787a19fff9688040a0713ca3e8ad15fda

commit 2032e7d787a19fff9688040a0713ca3e8ad15fda
Author: Felipe Magno de Almeida 
Date:   Thu Aug 23 02:47:47 2018 +

eolian-cxx: Remove test that can't be implemented

The feature required by this test was removed. When the feature is
reincluded with newer syntax the test will be rewritten and readded.
Differential Revision: https://phab.enlightenment.org/D6897
---
 src/examples/eolian_cxx/eolian_cxx_inherit_01.cc | 89 
 1 file changed, 89 deletions(-)

diff --git a/src/examples/eolian_cxx/eolian_cxx_inherit_01.cc 
b/src/examples/eolian_cxx/eolian_cxx_inherit_01.cc
deleted file mode 100644
index 5cd6b20596..00
--- a/src/examples/eolian_cxx/eolian_cxx_inherit_01.cc
+++ /dev/null
@@ -1,89 +0,0 @@
-
-#include 
-#include 
-
-#ifdef HAVE_CONFIG_H
-# include 
-#endif
-
-#include "ns_colourable.eo.hh"
-#include "ns_colourablesquare.eo.hh"
-#include "ns_colourable.eo.impl.hh"
-#include "ns_colourablesquare.eo.impl.hh"
-
-#include 
-
-using namespace efl;
-
-struct ColourableCircle
-  : efl::eo::inherit
-{
-   ColourableCircle(int rgb)
- : inherit_base(::ns::Colourable::rgb_24bits_constructor(rgb))
-   {}
-
-   int colour_get()
-   {
-  int rgb = 0;
-  rgb = ::ns_colourable_colour_get(eo_super(_eo_ptr(), _eo_class()));
-  std::cout << "ColourableCircle::colour_get(" << this << ") ==> "
-<< std::hex << rgb << std::endl;
-  return rgb;
-   }
-};
-
-/*
-struct ColourableFoo
-  : efl::eo::inherit
-{
-   ColourableFoo(int size, int rgb)
- : inherit_base(efl::eo::args<::colourable>(size)
-  , efl::eo::args<::colourablesquare>(rgb))
-   {}
-};*/
-
-struct ColourableBar
-  : efl::eo::inherit
-{
-   ColourableBar()
- : inherit_base(::ns::Colourable::rgb_24bits_constructor(0))
-   {}
-
-   int colour_get()
-   {
-  int rgb = 0;
-  rgb = ::ns_colourable_colour_get(eo_super(_eo_ptr(), _eo_class()));
-  std::cout << "ColourableBar::colour_get(" << this << ") ==> "
-<< std::hex << rgb << std::endl;
-  return rgb;
-   }
-
-};
-
-int
-main()
-{
-   efl::eo::eo_init init;
-   eina_log_domain_level_set("colourable", EINA_LOG_LEVEL_DBG);
-
-   ColourableCircle obj1(0x0);
-   obj1.composite_colour_set(0xc0, 0xff, 0xee);
-
-   ColourableCircle obj2(0xc0ffee);
-   int r, g, b;
-   obj2.composite_colour_get(, , );
-
-
-   ColourableBar obj3;
-   obj3.composite_colour_get(, , );
-
-   assert(r == 0xc0);
-   assert(g == 0xff);
-   assert(b == 0xee);
-
-   assert(obj1.colour_get() == obj2.colour_get());
-
-   return 0;
-}

-- 




[EGIT] [core/efl] master 01/01: efl-cxx: Add -Wno-shadow to disable huge warnings in C++

2018-08-13 Thread Felipe Magno de Almeida
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=65c6b158f928d25bdd9f3dfe2e90e335016982fa

commit 65c6b158f928d25bdd9f3dfe2e90e335016982fa
Author: Felipe Magno de Almeida 
Date:   Mon Aug 13 11:12:44 2018 -0400

efl-cxx: Add -Wno-shadow to disable huge warnings in C++

Summary:
-Wno-shadow warnings disable a improper warning directive for C++, this is 
made because
it is common for people to use the same CFLAGS as CXXFLAGS, enabling, 
unadvertadly, the
smae warning for C and C++.

Reviewers: zmike

Reviewed By: zmike

Subscribers: cedric, #reviewers, #committers, zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6821
---
 configure.ac | 1 +
 1 file changed, 1 insertion(+)

diff --git a/configure.ac b/configure.ac
index 64ef40a779..aef7129967 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,6 +23,7 @@ AM_CONDITIONAL([HAVE_AM_16], [test $(echo 
"${am__api_version}"|cut -d. -f2) -ge
 AC_USE_SYSTEM_EXTENSIONS
 
 CFOPT_WARNING=""
+CXXFLAGS="${CXXFLAGS} -Wno-shadow" # No shadow warnings
 
  Apply configuring with legacy api's only, eo api's or both.
 

-- 




[EGIT] [core/efl] master 01/01: elementary: efl_ui_view_list cleanup

2018-08-01 Thread Felipe Magno de Almeida
felipealmeida pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=71d339579cb8fbbc1881dd3c30cc8e6ccde809f3

commit 71d339579cb8fbbc1881dd3c30cc8e6ccde809f3
Author: Felipe Magno de Almeida 
Date:   Wed Aug 1 19:45:36 2018 -0300

elementary: efl_ui_view_list cleanup

Summary:
private data cleanup
removed callbacks

Reviewers: felipealmeida, SanghyeonLee

Reviewed By: felipealmeida

Subscribers: Hermet

Differential Revision: https://phab.enlightenment.org/D6707
---
 src/lib/elementary/efl_ui_view_list.c | 27 +-
 src/lib/elementary/efl_ui_view_list_private.h | 32 +++
 2 files changed, 9 insertions(+), 50 deletions(-)

diff --git a/src/lib/elementary/efl_ui_view_list.c 
b/src/lib/elementary/efl_ui_view_list.c
index ca31058401..08c8604e82 100644
--- a/src/lib/elementary/efl_ui_view_list.c
+++ b/src/lib/elementary/efl_ui_view_list.c
@@ -2,13 +2,10 @@
 # include "elementary_config.h"
 #endif
 #define EFL_ACCESS_OBJECT_PROTECTED
-#define EFL_ACCESS_WIDGET_ACTION_PROTECTED
 #define EFL_ACCESS_SELECTION_PROTECTED
 #define EFL_UI_SCROLL_MANAGER_PROTECTED
 #define EFL_UI_SCROLLBAR_PROTECTED
 #define EFL_UI_SCROLLBAR_BETA
-#define EFL_GFX_SIZE_HINT_PROTECTED
-#define EFL_UI_VIEW_LIST_PROTECTED
 #define EFL_UI_FOCUS_COMPOSITION_PROTECTED
 #define EFL_UI_WIDGET_FOCUS_MANAGER_PROTECTED
 
@@ -400,12 +397,6 @@ _efl_ui_view_list_hbar_unpress_cb(void *data,
 }
 
 static void
-_scroll_cb(void *data EINA_UNUSED, const Efl_Event *event EINA_UNUSED)
-{
-   //scroll cb
-}
-
-static void
 _efl_ui_view_list_bar_size_changed_cb(void *data, const Efl_Event *event 
EINA_UNUSED)
 {
Eo *obj = data;
@@ -490,8 +481,8 @@ _efl_ui_view_list_edje_object_attach(Eo *obj)
  (obj, "reload", "efl", _efl_ui_view_list_reload_cb, obj);
   //Vertical bar
efl_layout_signal_callback_add
- (obj, "drag", "efl.dragable.vbar", _efl_ui_view_list_vbar_drag_cb,
- obj);
+ (obj, "drag", "efl.dragable.vbar",
+ _efl_ui_view_list_vbar_drag_cb, obj);
efl_layout_signal_callback_add
  (obj, "drag,set", "efl.dragable.vbar",
  _efl_ui_view_list_edje_drag_cb, obj);
@@ -516,8 +507,8 @@ _efl_ui_view_list_edje_object_attach(Eo *obj)
 
   //Horizontal bar
efl_layout_signal_callback_add
- (obj, "drag", "efl.dragable.hbar", _efl_ui_view_list_hbar_drag_cb,
- obj);
+ (obj, "drag", "efl.dragable.hbar",
+ _efl_ui_view_list_hbar_drag_cb, obj);
efl_layout_signal_callback_add
  (obj, "drag,set", "efl.dragable.hbar",
  _efl_ui_view_list_edje_drag_cb, obj);
@@ -574,8 +565,8 @@ _efl_ui_view_list_edje_object_detach(Evas_Object *obj)
 
//Horizontal bar
efl_layout_signal_callback_del
-   (obj, "drag", "efl.dragable.hbar", _efl_ui_view_list_hbar_drag_cb,
- obj);
+   (obj, "drag", "efl.dragable.hbar",
+   _efl_ui_view_list_hbar_drag_cb, obj);
efl_layout_signal_callback_del
  (obj, "drag,set", "efl.dragable.hbar",
  _efl_ui_view_list_edje_drag_cb, obj);
@@ -632,16 +623,12 @@ _efl_ui_view_list_efl_canvas_group_group_add(Eo *obj, 
Efl_Ui_View_List_Data *pd)
edje_object_thaw(wd->resize_obj);
efl_gfx_stack_raise((Eo *)o);
 
-   pd->mode = ELM_LIST_COMPRESS;
-
efl_gfx_entity_visible_set(pd->pan_obj, EINA_TRUE);
-
efl_access_object_access_type_set(obj, EFL_ACCESS_TYPE_DISABLED);
 
edje_object_size_min_calc(wd->resize_obj, , );
efl_gfx_size_hint_restricted_min_set(obj, min);
 
-   efl_event_callback_add(obj, EFL_UI_EVENT_SCROLL, _scroll_cb, obj);
efl_event_callback_add(obj, EFL_UI_SCROLLBAR_EVENT_BAR_SIZE_CHANGED,
  _efl_ui_view_list_bar_size_changed_cb, obj);
efl_event_callback_add(obj, EFL_UI_SCROLLBAR_EVENT_BAR_POS_CHANGED,
@@ -708,7 +695,6 @@ _efl_ui_view_list_efl_object_constructor(Eo *obj, 
Efl_Ui_View_List_Data *pd)
pd->style = eina_stringshare_add(elm_widget_style_get(obj));
 
pd->factory = NULL;
-   pd->orient = EFL_ORIENT_DOWN;
pd->min.w = 0;
pd->min.h = 0;
 
@@ -723,7 +709,6 @@ _efl_ui_view_list_efl_object_destructor(Eo *obj, 
Efl_Ui_View_List_Data *pd)
efl_unref(pd->model);
eina_stringshare_del(pd->style);
 
-   efl_event_callback_del(obj, EFL_UI_EVENT_SCROLL, _scroll_cb, obj);
_efl_ui_view_list_edje_object_detach(obj);
 
ELM_SAFE_FREE(pd->pan_obj, evas_object_del);
diff --git a/src/lib/elementary/efl_ui_view_list_private.h 
b/src/lib/elementary/efl_ui_view_list_private.h
index 7560870f14..94c5d894a8 100644
--- a/src/lib/elementary/efl_ui_view_list_private.h
+++ b/src/lib/elementary/efl_ui_view_list_private.h
@@ -5,26 +5,19 @@
 # include "elementary_config.h"
 #endif
 
-#define ELM_INTERFACE_ATSPI_ACCES

[EGIT] [core/efl] master 01/01: Efl.Ui.Layout.Factory: added missing factory_model_connect

2018-08-01 Thread Felipe Magno de Almeida
felipealmeida pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=4fb9205a94759eb35dc2bb2965b0596d6f775a01

commit 4fb9205a94759eb35dc2bb2965b0596d6f775a01
Author: Felipe Magno de Almeida 
Date:   Wed Aug 1 18:42:13 2018 -0300

Efl.Ui.Layout.Factory: added missing factory_model_connect

Summary:
connect factory to edje part name
when create a new layout connect a factory to it
change example to use the factory_model_connect

Reviewers: felipealmeida

Differential Revision: https://phab.enlightenment.org/D6667
---
 .../elementary/efl_ui_view_list_example_2.c| 22 ---
 src/lib/elementary/efl_ui_layout_factory.c | 31 ++
 src/lib/elementary/efl_ui_layout_factory.eo|  1 +
 src/lib/elementary/efl_ui_view_list_segarray.c | 12 ++---
 4 files changed, 45 insertions(+), 21 deletions(-)

diff --git a/src/examples/elementary/efl_ui_view_list_example_2.c 
b/src/examples/elementary/efl_ui_view_list_example_2.c
index de4d259962..310aa26976 100644
--- a/src/examples/elementary/efl_ui_view_list_example_2.c
+++ b/src/examples/elementary/efl_ui_view_list_example_2.c
@@ -14,25 +14,13 @@
 
 #define EFL_MODEL_TEST_FILENAME_PATH "/tmp"
 
-static void
-_realized_cb(void *data, const Efl_Event *event)
-{
-   Efl_Ui_View_List_Item_Event *ie = event->info;
-   Eo *imf = data;
-   printf("realize %d\n", ie->index);
-
-   evas_object_size_hint_weight_set(ie->layout, EVAS_HINT_EXPAND, 0);
-   evas_object_size_hint_align_set(ie->layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
-
-   efl_ui_factory_model_connect(ie->layout, "efl.icon", imf);
-}
-
 EAPI_MAIN int
 elm_main(int argc, char **argv)
 {
Efl_Ui_Layout_Factory *factory;
+   Efl_Ui_Image_Factory *imgf;
Evas_Object *win;
-   Eo *imf, *model, *li;
+   Eo *model, *li;
char *dirname;
 
win = elm_win_util_standard_add("viewlist", "Viewlist");
@@ -56,9 +44,9 @@ elm_main(int argc, char **argv)
evas_object_size_hint_align_set(li, EVAS_HINT_FILL, EVAS_HINT_FILL);
 
 
-   imf = efl_add(EFL_UI_IMAGE_FACTORY_CLASS, win);
-   efl_ui_model_connect(imf, "", "path"); //connect to "path" property
-   efl_event_callback_add(li, EFL_UI_VIEW_LIST_EVENT_ITEM_REALIZED, 
_realized_cb, imf);
+   imgf = efl_add(EFL_UI_IMAGE_FACTORY_CLASS, win);
+   efl_ui_model_connect(imgf, "", "path"); //connect to "path" property
+   efl_ui_factory_model_connect(factory, "efl.icon", imgf);
 
elm_win_resize_object_add(win, li);
 
diff --git a/src/lib/elementary/efl_ui_layout_factory.c 
b/src/lib/elementary/efl_ui_layout_factory.c
index 16621c53a0..73d18091f4 100644
--- a/src/lib/elementary/efl_ui_layout_factory.c
+++ b/src/lib/elementary/efl_ui_layout_factory.c
@@ -12,6 +12,7 @@ typedef struct _Efl_Ui_Layout_Factory_Data
 {
 Eina_Array *layouts;
 Eina_Hash *connects;
+Eina_Hash *factory_connects;
 Eina_Stringshare *klass;
 Eina_Stringshare *group;
 Eina_Stringshare *style;
@@ -29,6 +30,17 @@ _model_connect(const Eina_Hash *hash EINA_UNUSED, const void 
*key, void *data, v
return EINA_TRUE;
 }
 
+Eina_Bool
+_factory_model_connect(const Eina_Hash *hash EINA_UNUSED, const void *key, 
void *data, void *fdata)
+{
+   Eo *layout = fdata;
+   Eina_Stringshare *name = key;
+   Efl_Ui_Factory *factory = data;
+
+   efl_ui_factory_model_connect(layout, name, factory);
+   return EINA_TRUE;
+}
+
 EOLIAN static Eo *
 _efl_ui_layout_factory_efl_object_constructor(Eo *obj, 
Efl_Ui_Layout_Factory_Data *pd)
 {
@@ -39,6 +51,7 @@ _efl_ui_layout_factory_efl_object_constructor(Eo *obj, 
Efl_Ui_Layout_Factory_Dat
pd->style = NULL;
pd->layouts = eina_array_new(8);
pd->connects = 
eina_hash_stringshared_new(EINA_FREE_CB(eina_stringshare_del));
+   pd->factory_connects = eina_hash_stringshared_new(EINA_FREE_CB(efl_del));
 
return obj;
 }
@@ -59,6 +72,7 @@ _efl_ui_layout_factory_efl_object_destructor(Eo *obj, 
Efl_Ui_Layout_Factory_Data
 
eina_array_free(pd->layouts);
eina_hash_free(pd->connects);
+   eina_hash_free(pd->factory_connects);
 
efl_destructor(efl_super(obj, MY_CLASS));
 }
@@ -83,6 +97,7 @@ _efl_ui_layout_factory_efl_ui_factory_create(Eo *obj 
EINA_UNUSED, Efl_Ui_Layout_
  efl_ui_layout_object_theme_set(efl_added, pd->klass, 
pd->group, pd->style));
 
 eina_hash_foreach(pd->connects, _model_connect, layout);
+eina_hash_foreach(pd->factory_connects, _factory_model_connect, 
layout);
 
 evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, 0);
 evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, 
EVAS_HINT_FILL);
@@ -99,6 +114,22 @@ _efl_ui_layout_factory_efl_ui_factory_release(Eo *obj 
EINA_UNUSED, Efl_Ui_Layout
 }
 
 EOLIAN static void
+_efl_ui_layout_factory_efl_ui_factory_model_connect

[EGIT] [admin/devs] master 01/01: Change Larry Lira public key

2018-06-20 Thread Felipe Magno de Almeida
felipealmeida pushed a commit to branch master.

http://git.enlightenment.org/admin/devs.git/commit/?id=f2e884e1d838818c69a6483e7383e1950534d561

commit f2e884e1d838818c69a6483e7383e1950534d561
Author: Felipe Magno de Almeida 
Date:   Wed Jun 20 16:07:50 2018 -0300

Change Larry Lira public key
---
 probies/larrylira/id_rsa.pub | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/probies/larrylira/id_rsa.pub b/probies/larrylira/id_rsa.pub
index d8a9a19..05334d4 100644
--- a/probies/larrylira/id_rsa.pub
+++ b/probies/larrylira/id_rsa.pub
@@ -1 +1 @@
-ssh-rsa 
B3NzaC1yc2EDAQABAAABAQCrlTpBrNy5ddO8XVKvXpcbSh1cq8BUDRUepuMhbpGQJJ65bPvoTK+GsaYRQ5vn9LmMxPgnkH2hEDBJGwC/PcHKoi6Qn+Luhw6zcDuVQAFvj6WccNOXlr6Pfschh+ddSwHvw36OsZd3QG7XaVQUIXS1guXuaZ0ea1gIZ1X57Yrc3V3spmmXIk7bQhuE1Uc6Fyd4ehruU3Is977d/YH5HbAiA1eHy/qjqIzS/J34FT5gqZ7C4QwJqbatynbDNETSpsG7xW1QAC4ttijUsXqEoa5V9sMYt+ww8/XJzAZAsIIt4HF55Y9y85IYRkK9IlAPIdnZotDiOoQt9RY0KupNxfa1
 larry@larry-G46VW
+ssh-rsa 
B3NzaC1yc2EDAQABAAACAQC7jGufpS5dEeKMjKUPsHIO0LPU3U6B9QS1GDyR6R+u/u2k7aTxCZwHasjzUqW4ostgh6o6Ekl1G/BWbnzcy7yA4Bcf7dCZyg/6TRmL4Tuc5TB1/oEJfUkHWSXYM5nH1hou2di9Uai1xx3CrRoxbm8v/9+kn/2Z1YP1DvXXiKtpnw+Jb72KEbGIi86DWteaOfLXjeCkdqh9tJR8nwZ5Zj6JUuwEGoLDcz6Kl90/5JtzURTinyU+Y84+KSrmFhSPqGzldlZqrbZxcCqlVufCcV6nVLAlPvTmRQJfSRm9OAj9uNck7AuRm7ZWkT7iikNmt5mM5SuwDE+0J5Ef/twqd9FR4sA1YPvWYI4ms8TlqW6HuDtAdpNHHSqFeaHo4vLGa3z/ImuI5X6uurZPCCNNBEkZbe1u5tVfLaTxTnN+k6aEavs/7tKKMYsikFvytPIbdU0mAeYK
 [...]

-- 




[EGIT] [core/efl] master 01/01: eo: Fix internal reference count wrongly 0 when constructor returns a different object

2018-06-18 Thread Felipe Magno de Almeida
felipealmeida pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=4a60c605280db75b1fd21502e0f92dc095db3e1f

commit 4a60c605280db75b1fd21502e0f92dc095db3e1f
Author: Felipe Magno de Almeida 
Date:   Mon Jun 18 14:49:43 2018 -0300

eo: Fix internal reference count wrongly 0 when constructor returns a 
different object

The class's Eo constructor can return a different object, which makes
the efl_add return that object instead. However, a bug was not
initializing the internal reference count when a different object was
returned.
---
 src/lib/eo/eo.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/lib/eo/eo.c b/src/lib/eo/eo.c
index 91e1730047..2df52d36df 100644
--- a/src/lib/eo/eo.c
+++ b/src/lib/eo/eo.c
@@ -927,6 +927,7 @@ ok_nomatch_back:
 ok_nomatch:
  {
 EO_OBJ_POINTER_GOTO_PROXY(eo_id, new_obj, err_newid);
+_efl_ref(new_obj);
 efl_ref(eo_id);
 /* We might have two refs on the old object at this point. */
 efl_parent_set((Eo *) obj->header.id, NULL);

-- 




[EGIT] [core/efl] master 01/02: efl-js: Fix dependency generation in JavaScript binding compilation

2018-04-08 Thread Felipe Magno de Almeida
felipealmeida pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=c2b067453a06eeb0e6d88133dc34db93b617d9c8

commit c2b067453a06eeb0e6d88133dc34db93b617d9c8
Author: Felipe Magno de Almeida <fel...@expertisesolutions.com.br>
Date:   Tue Jan 2 12:00:31 2018 -0200

efl-js: Fix dependency generation in JavaScript binding compilation

Use C++ as dependency in automake so concurrent builds will not fail to 
compile
---
 src/Makefile_Eolian_Js.am | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/Makefile_Eolian_Js.am b/src/Makefile_Eolian_Js.am
index b0e64de6da..834ea8fd01 100644
--- a/src/Makefile_Eolian_Js.am
+++ b/src/Makefile_Eolian_Js.am
@@ -21,6 +21,9 @@ bin_eolian_js_eolian_js_CPPFLAGS = 
-I$(top_builddir)/src/lib/efl \
 bin_eolian_js_eolian_js_LDADD = @USE_EO_LIBS@ @USE_EOLIAN_LIBS@
 bin_eolian_js_eolian_js_DEPENDENCIES = @USE_EO_INTERNAL_LIBS@ 
@USE_EOLIAN_INTERNAL_LIBS@
 
+# generate C++ bindings before compiling C++ files for JS binding
+bin/eolian_js/bin_eolian_js_eolian_js-main.$(OBJEXT): $(efl_eolian_cxx_hh) 
$(efl_eolian_cxx_impl_hh)
+
 include Makefile_Eolian_Js_Helper.am
 
 ### Unit tests

-- 




[EGIT] [core/efl] master 03/04: efl-mono: Fix using efl_add_ref instead of efl_ref

2018-04-03 Thread Felipe Magno de Almeida
felipealmeida pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=af80ec3716557e42452112eadfcea39d7bc87222

commit af80ec3716557e42452112eadfcea39d7bc87222
Author: Felipe Magno de Almeida <fel...@expertisesolutions.com.br>
Date:   Tue Apr 3 17:26:52 2018 -0300

efl-mono: Fix using efl_add_ref instead of efl_ref
---
 src/bin/eolian_mono/eolian/mono/klass.hh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bin/eolian_mono/eolian/mono/klass.hh 
b/src/bin/eolian_mono/eolian/mono/klass.hh
index 039485fe39..2bfdbea3d7 100644
--- a/src/bin/eolian_mono/eolian/mono/klass.hh
+++ b/src/bin/eolian_mono/eolian/mono/klass.hh
@@ -281,7 +281,7 @@ struct klass
  << scope_tab << scope_tab << "System.IntPtr parent_ptr = 
System.IntPtr.Zero;\n"
  << scope_tab << scope_tab << "if(parent != null)\n"
  << scope_tab << scope_tab << scope_tab << "parent_ptr = 
parent.raw_handle;\n"
- << scope_tab << scope_tab << "handle = 
efl.eo.Globals._efl_add_internal_start(\"file\", 0, klass, parent_ptr, 0, 0);\n"
+ << scope_tab << scope_tab << "handle = 
efl.eo.Globals._efl_add_internal_start(\"file\", 0, klass, parent_ptr, 1, 0);\n"
  << scope_tab << scope_tab << "if (init_cb != null) {\n"
  << scope_tab << scope_tab << scope_tab << "init_cb(this);\n"
  << scope_tab << scope_tab << "}\n"

-- 




[EGIT] [core/efl] master 02/04: efl-mono: Fix test not include'ing Ecore.h

2018-04-03 Thread Felipe Magno de Almeida
felipealmeida pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=ca45ee9a9fe43120bb178d6167d55af3e2bb0381

commit ca45ee9a9fe43120bb178d6167d55af3e2bb0381
Author: Felipe Magno de Almeida <fel...@expertisesolutions.com.br>
Date:   Tue Apr 3 17:26:28 2018 -0300

efl-mono: Fix test not include'ing Ecore.h
---
 src/tests/efl_mono/libefl_mono_native_test.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/tests/efl_mono/libefl_mono_native_test.c 
b/src/tests/efl_mono/libefl_mono_native_test.c
index b53582e44a..e68ec27730 100644
--- a/src/tests/efl_mono/libefl_mono_native_test.c
+++ b/src/tests/efl_mono/libefl_mono_native_test.c
@@ -3,6 +3,7 @@
 #include "config.h"
 #endif
 
+#include 
 #include 
 
 #undef EOAPI

-- 




[EGIT] [core/efl] master 01/04: efl-mono: Fix compile flags, .config files and class_name in description

2018-04-03 Thread Felipe Magno de Almeida
felipealmeida pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=be06c277625da6618382fec8bcff07f9bf68a303

commit be06c277625da6618382fec8bcff07f9bf68a303
Author: Felipe Magno de Almeida <fel...@expertisesolutions.com.br>
Date:   Tue Apr 3 13:46:45 2018 -0300

efl-mono: Fix compile flags, .config files and class_name in description
---
 src/Makefile_Efl_Mono.am | 25 ++---
 src/bin/eolian_mono/eolian/mono/klass.hh |  4 ++--
 src/bindings/mono/eo_mono/iwrapper.cs|  7 ---
 src/examples/efl_mono/Makefile.am| 12 ++--
 src/examples/eina/Makefile.am|  8 
 src/examples/elementary/Makefile.am  |  8 
 src/examples/evas/Makefile.am| 12 ++--
 7 files changed, 44 insertions(+), 32 deletions(-)

diff --git a/src/Makefile_Efl_Mono.am b/src/Makefile_Efl_Mono.am
index f608676fa9..ffd55a42e6 100644
--- a/src/Makefile_Efl_Mono.am
+++ b/src/Makefile_Efl_Mono.am
@@ -201,8 +201,8 @@ CLEANFILES += $(efl_mono_files_gen) 
$(efl_mono_blacklisted_files) \
 
 if HAVE_WIN32
 
-MCS_FLAGS := $(MCS_FLAGS)
-MCS_FLAGS += -define:WIN32
+MCSFLAGS ?=
+MCSFLAGS += -define:WIN32
 
 endif
 
@@ -224,11 +224,11 @@ lib_efl_mono_libeflcustomexportsmono_la_DEPENDENCIES = 
@EFL_CUSTOM_EXPORTS_MONO_
 
 #Efl Mono - C Sharp binding library
 
-libefl_mono_dll_MCS_FLAGS = -doc:lib/efl_mono/libefl_mono.xml
+libefl_mono_dll_MCSFLAGS = -doc:lib/efl_mono/libefl_mono.xml
 
 lib/efl_mono/libefl_mono.dll: $(efl_mono_files_dist) 
lib/efl_mono/$(am__dirstamp) $(lib_efl_mono_libefl_mono_dll_sources) 
$(efl_mono_files_gen) lib/efl_mono/libefl_mono.dll.config
@rm -f lib/efl_mono/libefl_mono.dll
-   $(AM_V_MCS) $(MCS) $(MCS_FLAGS) $(libefl_mono_dll_MCS_FLAGS) -out:$@ 
-t:library $(filter %.cs, $(^))
+   $(AM_V_MCS) $(MCS) $(MCSFLAGS) $(libefl_mono_dll_MCSFLAGS) -out:$@ 
-t:library $(filter %.cs, $(^))
 
 lib/efl_mono/libefl_mono.dll.config:
echo "" > $@
@@ -387,9 +387,9 @@ tests/efl_mono/libefl_mono_native_test.c: 
tests/efl_mono/test_testing.eo.h tests
 efl_mono_test_eolian_mono_files = tests/efl_mono/test_testing.eo.cs \
 tests/efl_mono/test_numberwrapper.eo.cs
 
-tests/efl_mono/libefl_mono_test.dll: $(efl_mono_test_eolian_mono_files) 
tests/efl_mono/$(am__dirstamp) lib/efl_mono/libefl_mono.dll 
tests/efl_mono/libefl_mono_native_test.la
+tests/efl_mono/libefl_mono_test.dll: $(efl_mono_test_eolian_mono_files) 
tests/efl_mono/$(am__dirstamp) lib/efl_mono/libefl_mono.dll 
tests/efl_mono/libefl_mono_native_test.la 
tests/efl_mono/libefl_mono_test.dll.config
@rm -f tests/efl_mono/libefl_mono_test.dll
-   $(AM_V_MCS) $(MCS) $(MCS_FLAGS) 
-r:$(abs_builddir)/lib/efl_mono/libefl_mono.dll -out:$@ -t:library $(filter 
%.cs, $(^))
+   $(AM_V_MCS) $(MCS) $(MCSFLAGS) 
-r:$(abs_builddir)/lib/efl_mono/libefl_mono.dll -out:$@ -t:library $(filter 
%.cs, $(^))
 
 tests/efl_mono/efl_mono$(EXEEXT).config:
echo "" > $@
@@ -402,6 +402,17 @@ tests/efl_mono/efl_mono$(EXEEXT).config:
echo "  " >> 
$@
echo "" >> $@
 
+tests/efl_mono/libefl_mono_test.dll.config:
+   echo "" > $@
+   echo "  " >> $@
+   echo "  " >> $@
+   echo "  " >> $@
+   echo "  " >> $@
+   echo "  " >> $@
+   echo "  " >> $@
+   echo "  " >> 
$@
+   echo "" >> $@
+
 # C Sharp test executable
 AM_TESTS_ENVIRONMENT += MONO='mono'
 AM_TESTS_ENVIRONMENT += MONO_BUILDPATH='$(abs_top_builddir)'
@@ -434,7 +445,7 @@ tests_efl_mono_efl_mono_SOURCES = \
 
 tests/efl_mono/efl_mono$(EXEEXT): $(tests_efl_mono_efl_mono_SOURCES) 
tests/efl_mono/$(am__dirstamp) lib/efl_mono/libefl_mono.dll 
tests/efl_mono/libefl_mono_test.dll tests/efl_mono/efl_mono$(EXEEXT).config
@rm -f $@
-   $(AM_V_MCS) $(MCS) $(MCS_FLAGS) 
-r:$(abs_top_builddir)/src/lib/efl_mono/libefl_mono.dll 
-r:$(abs_top_builddir)/src/tests/efl_mono/libefl_mono_test.dll -out:$@ $(filter 
%.cs, $(^))
+   $(AM_V_MCS) $(MCS) $(MCSFLAGS) 
-r:$(abs_top_builddir)/src/lib/efl_mono/libefl_mono.dll 
-r:$(abs_top_builddir)/src/tests/efl_mono/libefl_mono_test.dll -out:$@ $(filter 
%.cs, $(^))
 
 # Rule for generating the .cs files
 tests/efl_mono/%.eo.cs: tests/efl_mono/%.eo $(_EOLIAN_MONO_DEP)
diff --git a/src/bin/eolian_mono/eolian/mono/klass.hh 
b/src/bin/eolian_mono/eolian/mono/klass.hh
index 7de2f2b47b..039485fe39 100644
--- a/src/bin/eolian_mono/eolian/mono/klass.hh
+++ b/src/bin/eolian_mono/eolian/mono/klass.hh
@@ -384,7 +384,7 @@ struct klass
  << scope_tab << scope_tab << "if (klass == System.IntPtr.Zero) 
{\n"
  << scope_tab << scope_tab << scope_tab << "lock (klassAllocLock) 
{\n"
 

[EGIT] [core/efl] master 04/04: efl-cxx: Fix using efl_add_ref instead of efl_add

2018-04-03 Thread Felipe Magno de Almeida
felipealmeida pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=92f5383e3c983756e05bd11c7e7ad9d53a332b14

commit 92f5383e3c983756e05bd11c7e7ad9d53a332b14
Author: Felipe Magno de Almeida <fel...@expertisesolutions.com.br>
Date:   Tue Apr 3 17:27:05 2018 -0300

efl-cxx: Fix using efl_add_ref instead of efl_add
---
 src/bindings/cxx/eo_cxx/eo_cxx_interop.hh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bindings/cxx/eo_cxx/eo_cxx_interop.hh 
b/src/bindings/cxx/eo_cxx/eo_cxx_interop.hh
index a83688a3d9..5dac150b20 100644
--- a/src/bindings/cxx/eo_cxx/eo_cxx_interop.hh
+++ b/src/bindings/cxx/eo_cxx/eo_cxx_interop.hh
@@ -836,7 +836,7 @@ inline void do_eo_add(Eo*& object, P const& parent
   , Efl_Class const* klass
   , typename std::enable_if< 
eo::is_eolian_object::value>::type* = 0)
 {
-  bool is_ref = (parent._eo_ptr() != nullptr);
+  bool const is_ref = true;
   object = ::_efl_add_internal_start(__FILE__, __LINE__, klass, 
parent._eo_ptr(), is_ref, EINA_FALSE);
   object = ::_efl_add_end(object, is_ref, EINA_FALSE);
 }

-- 




[EGIT] [core/efl] master 03/03: efl-mono: Fix using right description pointer in event registration

2017-12-20 Thread Felipe Magno de Almeida
felipealmeida pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=481853e1edbba2536f0189335f564e6133644f84

commit 481853e1edbba2536f0189335f564e6133644f84
Author: Felipe Magno de Almeida <fel...@expertisesolutions.com.br>
Date:   Wed Dec 20 19:45:07 2017 -0200

efl-mono: Fix using right description pointer in event registration
---
 src/bin/eolian_mono/eolian/mono/klass.hh | 6 +++---
 src/bindings/mono/eo_mono/iwrapper.cs| 8 +---
 2 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/src/bin/eolian_mono/eolian/mono/klass.hh 
b/src/bin/eolian_mono/eolian/mono/klass.hh
index d8bea22024..119cd73d12 100644
--- a/src/bin/eolian_mono/eolian/mono/klass.hh
+++ b/src/bin/eolian_mono/eolian/mono/klass.hh
@@ -562,7 +562,7 @@ struct klass
 << scope_tab << scope_tab << "if (!event_cb_count.TryGetValue(key, 
out event_count))\n"
 << scope_tab << scope_tab << scope_tab << "event_cb_count[key] = 
event_count;\n"
 << scope_tab << scope_tab << "if (event_count == 0) {\n"
-<< scope_tab << scope_tab << scope_tab << 
"efl.kw_event.Description desc = new efl.kw_event.Description(key);\n"
+<< scope_tab << scope_tab << scope_tab << "IntPtr desc = 
efl.eo.Globals.dlsym(efl.eo.Globals.RTLD_DEFAULT, key);\n"
 << scope_tab << scope_tab << scope_tab << "bool result = 
efl.eo.Globals.efl_event_callback_priority_add(handle, desc, 0, evt_delegate, 
System.IntPtr.Zero);\n"
 << scope_tab << scope_tab << scope_tab << "if (!result) {\n"
 << scope_tab << scope_tab << scope_tab << scope_tab << 
"eina.Log.Error($\"Failed to add event proxy for event {key}\");\n"
@@ -639,7 +639,7 @@ struct klass
 << scope_tab << "}\n"
 << scope_tab << "private void on_" << event_name << 
"_NativeCallback(System.IntPtr data, ref efl.Event evt)\n"
 << scope_tab << "{\n"
-<< scope_tab << event_args
+<< scope_tab << scope_tab << event_args
 << scope_tab << scope_tab << "try {\n"
 << scope_tab << scope_tab << scope_tab << "On_" << event_name 
<< "(args);\n"
 << scope_tab << scope_tab <<  "} catch (Exception e) {\n"
@@ -730,7 +730,7 @@ struct klass
  << scope_tab << "efl.Event_Cb evt_" << wrapper_evt_name 
<< "_delegate;\n"
  << scope_tab << "private void on_" << wrapper_evt_name << 
"_NativeCallback(System.IntPtr data, ref efl.Event evt)"
  << scope_tab << "{\n"
- << scope_tab << event_args
+ << scope_tab << scope_tab << event_args
 << scope_tab << scope_tab << "try {\n"
 << scope_tab << scope_tab << scope_tab << "On_" << 
wrapper_evt_name << "(args);\n"
 << scope_tab << scope_tab <<  "} catch (Exception e) {\n"
diff --git a/src/bindings/mono/eo_mono/iwrapper.cs 
b/src/bindings/mono/eo_mono/iwrapper.cs
index 98e8f953ba..7812e06367 100644
--- a/src/bindings/mono/eo_mono/iwrapper.cs
+++ b/src/bindings/mono/eo_mono/iwrapper.cs
@@ -52,8 +52,9 @@ public class Globals {
[DllImport(efl.Libs.Eo)] public static extern bool 
efl_event_callback_priority_add(
   System.IntPtr obj,
   // FIXME commented to allow passing null stuff during test
-  /* ref efl.kw_event.Description desc, */
-  efl.kw_event.Description desc,
+  //ref efl.kw_event.Description desc,
+  //efl.kw_event.Description desc,
+  IntPtr desc,
   short priority,
   efl.Event_Cb cb,
   System.IntPtr data);
@@ -62,7 +63,8 @@ public class Globals {
   efl.kw_event.Description desc,
   efl.Event_Cb cb,
   System.IntPtr data);
-
+[DllImport(efl.Libs.Eo)] public static extern IntPtr
+
efl_object_legacy_only_event_description_get([MarshalAs(UnmanagedType.LPStr)] 
String name);
 
 public const int RTLD_NOW = 2;
 

-- 




[EGIT] [core/efl] master 01/01: efl-mono: Fix installation in out-of-tree compilation

2017-12-14 Thread Felipe Magno de Almeida
jpeg pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=fe8c5f8269b06165a7c7b1da9a956ef0839bad52

commit fe8c5f8269b06165a7c7b1da9a956ef0839bad52
Author: Felipe Magno de Almeida <fel...@expertisesolutions.com.br>
Date:   Fri Dec 15 01:17:28 2017 -0200

efl-mono: Fix installation in out-of-tree compilation
---
 src/Makefile_Efl_Mono.am | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/Makefile_Efl_Mono.am b/src/Makefile_Efl_Mono.am
index 247f053370..72a1916515 100644
--- a/src/Makefile_Efl_Mono.am
+++ b/src/Makefile_Efl_Mono.am
@@ -202,8 +202,9 @@ endif
 
 EFL_INSTALL_EXEC_HOOK += \
 $(MKDIR_P) $(efl_mono_dll_dest); \
-cp -f $(srcdir)/lib/efl_mono/libefl_mono.dll 
$(efl_mono_dll_dest)/libefl_mono.dll; \
-cp -f $(srcdir)/bindings/mono/efl_mono/efl_libs.csv 
$(DESTDIR)$(datadir)/efl_mono/efl_libs.csv;
+cp -f $(builddir)/lib/efl_mono/libefl_mono.dll 
$(efl_mono_dll_dest)/libefl_mono.dll; \
+$(MKDIR_P) $(DESTDIR)$(datadir)/efl_mono; \
+cp -f $(builddir)/bindings/mono/efl_mono/efl_libs.csv 
$(DESTDIR)$(datadir)/efl_mono/efl_libs.csv;
 
 all-local: lib/efl_mono/libefl_mono.dll
 

-- 




[EGIT] [core/efl] master 01/01: elm: Fix typo in copy and paste in efl_ui_list precise layouter

2017-12-14 Thread Felipe Magno de Almeida
felipealmeida pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=9a120e3e7268b0eb398a2302f14a4fd5a4412f3f

commit 9a120e3e7268b0eb398a2302f14a4fd5a4412f3f
Author: Felipe Magno de Almeida <fel...@expertisesolutions.com.br>
Date:   Thu Dec 14 22:23:07 2017 -0200

elm: Fix typo in copy and paste in efl_ui_list precise layouter

Fix comparison between height and width instead of width and width.

CID 1383711
---
 src/lib/elementary/efl_ui_list_precise_layouter.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib/elementary/efl_ui_list_precise_layouter.c 
b/src/lib/elementary/efl_ui_list_precise_layouter.c
index ce66239be3..692317005f 100644
--- a/src/lib/elementary/efl_ui_list_precise_layouter.c
+++ b/src/lib/elementary/efl_ui_list_precise_layouter.c
@@ -129,7 +129,7 @@ _item_min_calc(Efl_Ui_List_Precise_Layouter_Data *pd, 
Efl_Ui_List_LayoutItem* it
min.w += pad[0] + pad[1];
min.h += pad[2] + pad[3];
 
-   if (item->min.h == min.h && item->min.w == min.h)
+   if (item->min.h == min.h && item->min.w == min.w)
  return;
 
pd->min.h += min.h - item->min.h;

-- 




[EGIT] [core/efl] master 04/04: eolian-cxx: Fix distributing eo files in examples

2017-12-14 Thread Felipe Magno de Almeida
felipealmeida pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=0322ff14a6c8d037460085e16a0746e059c52dd4

commit 0322ff14a6c8d037460085e16a0746e059c52dd4
Author: Felipe Magno de Almeida <fel...@expertisesolutions.com.br>
Date:   Thu Dec 14 18:19:54 2017 -0200

eolian-cxx: Fix distributing eo files in examples
---
 src/examples/eolian_cxx/Makefile.am | 6 --
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/examples/eolian_cxx/Makefile.am 
b/src/examples/eolian_cxx/Makefile.am
index fc9ec9045d..16cddb3410 100644
--- a/src/examples/eolian_cxx/Makefile.am
+++ b/src/examples/eolian_cxx/Makefile.am
@@ -79,7 +79,7 @@ SRCS = \
eolian_cxx_simple_01.cc \
eolian_cxx_callbacks_01.cc \
ns_colourable.eo \
-   ns_colourablesquare.eo
+   ns_colourablesquare.eo \
$(IMPL)
 
 if HAVE_CXX
@@ -121,7 +121,9 @@ eolian_cxx_callbacks_01_SOURCES = eolian_cxx_callbacks_01.cc
 endif
 
 DATA_FILES = Makefile.examples $(ECXX_EXAMPLE_EOS)
-EXTRA_DIST = $(DATA_FILES)
+EXTRA_DIST = $(DATA_FILES) \
+ns_colourable.eo \
+ns_colourablesquare.eo
 
 %.eo.hh: %.eo
$(AM_V_EOLCXX)$(EOLIAN_CXX) $(EOLIAN_FLAGS) -I${abs_srcdir} -o $@ $<

-- 




[EGIT] [core/efl] master 01/04: efl-cxx: Fixes in automake Makefiles

2017-12-14 Thread Felipe Magno de Almeida
felipealmeida pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=f86906587359b890142d467e0b9641ca93570f6e

commit f86906587359b890142d467e0b9641ca93570f6e
Author: Felipe Magno de Almeida <fel...@expertisesolutions.com.br>
Date:   Wed Dec 13 21:38:35 2017 -0200

efl-cxx: Fixes in automake Makefiles
---
 src/Makefile_Cxx.am | 2 +-
 src/examples/eolian_cxx/Makefile.am | 6 +-
 2 files changed, 2 insertions(+), 6 deletions(-)

diff --git a/src/Makefile_Cxx.am b/src/Makefile_Cxx.am
index ab4b55204b..8f929d2f8e 100644
--- a/src/Makefile_Cxx.am
+++ b/src/Makefile_Cxx.am
@@ -105,7 +105,7 @@ nodist_installed_elementarycxxmainheaders_DATA = 
$(elementary_eolian_cxx_hh) $(e
 lib/elementary/Elementary.eo.hh
 nodist_installed_eldbuscxxmainheaders_DATA = $(eldbus_eolian_cxx_hh) 
$(eldbus_eolian_cxx_impl_hh) lib/eldbus/Eldbus_Model.eo.hh
 
-CLEANFILES = $(eo_eolian_cxx_hh) $(eo_eolian_cxx_impl_hh)
+CLEANFILES += $(eo_eolian_cxx_hh) $(eo_eolian_cxx_impl_hh)
 
 ### Elementary C++
 
diff --git a/src/examples/eolian_cxx/Makefile.am 
b/src/examples/eolian_cxx/Makefile.am
index a908170856..fc9ec9045d 100644
--- a/src/examples/eolian_cxx/Makefile.am
+++ b/src/examples/eolian_cxx/Makefile.am
@@ -78,13 +78,9 @@ IMPL = \
 SRCS = \
eolian_cxx_simple_01.cc \
eolian_cxx_callbacks_01.cc \
-   $(IMPL)
-
-ECXX_EXAMPLE_EOS = \
ns_colourable.eo \
ns_colourablesquare.eo
-
-dist_example_eos_SOURCES = $(ECXX_EXAMPLE_EOS)
+   $(IMPL)
 
 if HAVE_CXX
 GENERATED = \

-- 




[EGIT] [core/efl] master 03/04: efl-mono: Add workaround for efl_ui_list

2017-12-14 Thread Felipe Magno de Almeida
felipealmeida pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=61af82f21de7a4e221df4e36d5fc84f6fa1dada4

commit 61af82f21de7a4e221df4e36d5fc84f6fa1dada4
Author: Felipe Magno de Almeida <fel...@expertisesolutions.com.br>
Date:   Thu Dec 14 18:04:14 2017 -0200

efl-mono: Add workaround for efl_ui_list

Efl_Ui_List doesn't properly define, as it should, the class 
Efl_Ui_List_SegArray. This workaround allows the mono  binding compilation in 
spite of this.
---
 src/bin/eolian_mono/eolian/mono/function_blacklist.hh | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/bin/eolian_mono/eolian/mono/function_blacklist.hh 
b/src/bin/eolian_mono/eolian/mono/function_blacklist.hh
index 314235b5dc..b2d712c6ac 100644
--- a/src/bin/eolian_mono/eolian/mono/function_blacklist.hh
+++ b/src/bin/eolian_mono/eolian/mono/function_blacklist.hh
@@ -40,7 +40,10 @@ inline bool is_function_blacklisted(std::string const& 
c_name)
 || c_name == "efl_access_image_description_set"
 || c_name == "efl_access_component_layer_get" // duplicated signature
 || c_name == "efl_access_component_alpha_get"
+|| c_name == "efl_access_component_size_get"
 || c_name == "efl_ui_spin_button_loop_get"
+|| c_name == "efl_ui_list_model_size_get"
+|| c_name == "efl_ui_list_relayout_layout_do"
 ;
 }
 

-- 




[EGIT] [core/efl] master 01/02: elementary: Add efl_ui_list widget

2017-12-13 Thread Felipe Magno de Almeida
felipealmeida pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=fd92dec358bf6d98b4b334e938140049b6f5f12e

commit fd92dec358bf6d98b4b334e938140049b6f5f12e
Author: Felipe Magno de Almeida <fel...@expertisesolutions.com.br>
Date:   Tue Dec 12 22:59:48 2017 -0200

elementary: Add efl_ui_list widget
---
 config/default/base.src.in | 269 +
 config/mobile/base.src.in  | 269 +
 config/standard/base.src.in| 269 +
 data/elementary/themes/Makefile.am |   1 +
 data/elementary/themes/default.edc |   1 +
 data/elementary/themes/edc/efl/list.edc|   8 +
 src/Makefile_Elementary.am |  15 +-
 src/examples/elementary/Makefile.am|  25 +-
 src/examples/elementary/efl_ui_list_example.edc| 280 +
 src/examples/elementary/efl_ui_list_example_1.c| 111 
 src/examples/elementary/efl_ui_list_example_2.c|  74 +++
 src/examples/elementary/efl_ui_list_example_3.c| 329 ++
 src/examples/elementary/layout_model_connect.c |   1 -
 src/lib/elementary/Elementary.h|   8 +
 src/lib/elementary/efl_ui_layout.c |  32 +-
 src/lib/elementary/efl_ui_layout_factory.c | 127 
 src/lib/elementary/efl_ui_layout_factory.eo|  22 +
 src/lib/elementary/efl_ui_list.c   | 668 +
 src/lib/elementary/efl_ui_list.eo  | 108 
 src/lib/elementary/efl_ui_list_model.eo|  48 ++
 src/lib/elementary/efl_ui_list_pan.eo  |  16 +
 src/lib/elementary/efl_ui_list_precise_layouter.c  | 659 
 src/lib/elementary/efl_ui_list_precise_layouter.eo |   8 +
 src/lib/elementary/efl_ui_list_private.h   | 132 
 src/lib/elementary/efl_ui_list_relayout.eo |  23 +
 src/lib/elementary/efl_ui_list_segarray.c  | 427 +
 src/lib/elementary/efl_ui_list_segarray.h  |  42 ++
 src/lib/elementary/efl_ui_list_types.eot   |   9 +
 src/lib/elementary/elm_widget_layout.h |   2 +-
 29 files changed, 3973 insertions(+), 10 deletions(-)

diff --git a/config/default/base.src.in b/config/default/base.src.in
index 10d7d0e6a5..7e9444c10c 100644
--- a/config/default/base.src.in
+++ b/config/default/base.src.in
@@ -2796,5 +2796,274 @@ group "Elm_Config" struct {
}
 }
  }
+ group "Elm_Config_Bindings_Widget" struct {
+value "name" string: "Efl.Ui.List";
+group "key_bindings" list {
+   group "Elm_Config_Binding_Key" struct {
+  value "context" int: 0;
+  value "key" string: "Left";
+  value "action" string: "move";
+  value "params" string: "left";
+  group "modifiers" list {
+ group "Elm_Config_Binding_Modifier" struct {
+value "mod" string: "Shift";
+value "flag" uchar: 0;
+ }
+  }
+   }
+   group "Elm_Config_Binding_Key" struct {
+  value "context" int: 0;
+  value "key" string: "Left";
+  value "action" string: "move";
+  value "params" string: "left_multi";
+  group "modifiers" list {
+ group "Elm_Config_Binding_Modifier" struct {
+value "mod" string: "Shift";
+value "flag" uchar: 1;
+ }
+  }
+   }
+   group "Elm_Config_Binding_Key" struct {
+  value "context" int: 0;
+  value "key" string: "KP_Left";
+  value "action" string: "move";
+  value "params" string: "left";
+  group "modifiers" list {
+ group "Elm_Config_Binding_Modifier" struct {
+value "mod" string: "Shift";
+value "flag" uchar: 0;
+ }
+  }
+   }
+   group "Elm_Config_Binding_Key" struct {
+  value "context" int: 0;
+  value "key" string: "KP_Left";
+  value "action" string: "move";
+  value "params" string: "left_multi";
+  group "modifiers" list {
+ group "Elm_Config_Binding_Modifier" struct {
+v

[EGIT] [core/efl] master 02/02: efl-cxx: Fixes to make dist

2017-12-13 Thread Felipe Magno de Almeida
felipealmeida pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=e67d6484b8b5dd75904b6d2368663eab4886229b

commit e67d6484b8b5dd75904b6d2368663eab4886229b
Author: Felipe Magno de Almeida <fel...@expertisesolutions.com.br>
Date:   Wed Dec 13 12:36:21 2017 -0200

efl-cxx: Fixes to make dist
---
 Makefile.am   |   2 +-
 configure.ac  |   2 +-
 src/Makefile.am   |  15 +-
 src/Makefile_Cxx.am   | 176 +++---
 src/Makefile_Ecore.am |   2 +-
 src/Makefile_Edje.am  |   2 +-
 src/Makefile_Efl.am   |   2 +-
 src/Makefile_Efl_Mono.am  |  91 +--
 src/Makefile_Eldbus.am|   2 +-
 src/Makefile_Elementary.am|   2 +-
 src/Makefile_Eo.am|   2 +-
 src/Makefile_Eolian_Cxx.am|   9 +-
 src/Makefile_Evas.am  |   2 +-
 src/examples/efl_mono/Makefile.am |  15 +-
 src/examples/eina_cxx/Makefile.am |   4 +
 src/examples/elementary/Makefile.am   |   8 +-
 src/examples/eolian_cxx/Makefile.am   |  48 +++---
 src/examples/evas/Makefile.am |   2 +-
 src/lib/elementary/efl_ui_list.c  |  18 +--
 src/lib/elementary/efl_ui_list_precise_layouter.c |   3 +-
 src/lib/elementary/efl_ui_list_segarray.c |   1 -
 21 files changed, 202 insertions(+), 206 deletions(-)

diff --git a/Makefile.am b/Makefile.am
index 8fd7776ff6..35a0315270 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -162,7 +162,7 @@ pc/elocation.pc \
 pc/elementary.pc \
 pc/efl-ui.pc
 
-if HAVE_CXX11
+if HAVE_CXX
 pkgconfig_DATA += \
 pc/eina-cxx.pc \
 pc/evas-cxx.pc \
diff --git a/configure.ac b/configure.ac
index 69ea681848..b5ce7ccc27 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1136,7 +1136,7 @@ else
   have_cxx11="no"
 fi
 
-AM_CONDITIONAL([HAVE_CXX11], [test "x${have_cxx11}" = "xyes"])
+AM_CONDITIONAL([HAVE_CXX], [test "x${have_cxx11}" = "xyes"])
 
 EFL_INTERNAL_DEPEND_PKG([EINA_CXX], [Eina])
 EFL_ADD_CFLAGS([EINA_CXX], [${EFL_PTHREAD_CFLAGS}])
diff --git a/src/Makefile.am b/src/Makefile.am
index 68e66b5ef1..b87c91c561 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -126,24 +126,15 @@ examples/emotion \
 examples/emile \
 examples/elocation \
 examples/ethumb_client \
+examples/eina_cxx \
+examples/eolian_cxx \
+examples/efl_mono \
 examples/elementary
 
 if HAVE_ELUA
 EXAMPLES_SUBDIRS += examples/elua
 endif
 
-EXAMPLES_CXX = \
-examples/eina_cxx \
-examples/eolian_cxx
-
-if HAVE_CXX11
-EXAMPLES_SUBDIRS += $(EXAMPLES_CXX)
-endif
-
-if HAVE_CSHARP
-EXAMPLES_SUBDIRS += examples/efl_mono
-endif
-
 if ALWAYS_BUILD_EXAMPLES
 SUBDIRS += . $(EXAMPLES_SUBDIRS)
 endif
diff --git a/src/Makefile_Cxx.am b/src/Makefile_Cxx.am
index bc9f3749f7..ab4b55204b 100644
--- a/src/Makefile_Cxx.am
+++ b/src/Makefile_Cxx.am
@@ -1,10 +1,13 @@
-if HAVE_CXX11
 
 ### Eo C++
-CLEANFILES += $(eo_eolian_cxx_hh) $(eo_eolian_cxx_impl_hh)
+installed_eetcxxheadersdir = $(includedir)/eet-cxx-@VMAJ@
+dist_installed_eetcxxheaders_DATA = \
+bindings/cxx/eet_cxx/eet_composite.hh \
+bindings/cxx/eet_cxx/eet_register.hh \
+bindings/cxx/eet_cxx/eet_type.hh \
+bindings/cxx/eet_cxx/Eet.hh
 
 installed_eocxxheadersdir = $(includedir)/eo-cxx-@VMAJ@/
-nodist_installed_eocxxheaders_DATA = $(eo_eolian_cxx_hh) 
$(eo_eolian_cxx_impl_hh)
 dist_installed_eocxxheaders_DATA = \
 bindings/cxx/eo_cxx/eo_concrete.hh \
 bindings/cxx/eo_cxx/eo_cxx_interop.hh \
@@ -19,54 +22,16 @@ bindings/cxx/eo_cxx/eo_promise_meta.hh \
 bindings/cxx/eo_cxx/eo_private.hh \
 bindings/cxx/eo_cxx/efl_object_impl.hh
 
-### Elementary C++
-installed_elementarycxxmainheadersdir = $(includedir)/elementary-cxx-@VMAJ@/
-nodist_installed_elementarycxxmainheaders_DATA = $(elementary_eolian_cxx_hh) 
$(elementary_eolian_cxx_impl_hh) \
-lib/elementary/Elementary.eo.hh
-dist_installed_elementarycxxmainheaders_DATA = lib/elementary/Elementary.hh
-
-lib/elementary/Elementary.eo.hh: $(elm_public_eolian_files) $(_EOLIAN_CXX_DEP)
-   $(AM_V_EOLCXX) \
-   $(MKDIR_P) $(dir $@); \
-   $(EOLIAN_CXX) $(EOLIAN_FLAGS) -m -o $@ $(filter %.eo, $^)
-
-CLEANFILES += $(elementary_eolian_cxx_hh) $(elementary_eolian_cxx_impl_hh) 
lib/elementary/Elementary.eo.hh
-
-### Efl C++
 installed_eflcxxmainheadersdir = $(includedir)/efl-cxx-@VMAJ@/
-nodist_installed_eflcxxmainheaders_DATA = $(efl_eolian_cxx_hh) 
$(efl_eolian_cxx_impl_hh) lib/efl/Efl.eo.hh
 dist_installed_eflcxxmainheaders_DATA = lib/efl/Efl.hh 
lib/efl/cxx/efl_part_impl.hh
 
-lib/efl/Efl.eo.hh: $(efl_eolian_files) $(_EOLIAN_CXX_DEP)
-   $(AM_V_EOLCXX) \
-   $(MKDIR_P) $(dir $@); \
-   $(EOLIAN_CXX) $

[EGIT] [core/efl] master 01/01: efl-mono: Fix automake files in C# binding search with buggy mono version

2017-12-11 Thread Felipe Magno de Almeida
felipealmeida pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=ff9293827f0770d9af54b2008a74fde6e083d383

commit ff9293827f0770d9af54b2008a74fde6e083d383
Author: Felipe Magno de Almeida <fel...@expertisesolutions.com.br>
Date:   Mon Dec 11 12:06:54 2017 -0200

efl-mono: Fix automake files in C# binding search with buggy mono version
---
 src/Makefile_Efl_Mono.am   | 25 -
 src/examples/efl_mono/Makefile.am  | 31 +--
 src/tests/efl_mono/mono_test_driver.sh |  2 +-
 3 files changed, 38 insertions(+), 20 deletions(-)

diff --git a/src/Makefile_Efl_Mono.am b/src/Makefile_Efl_Mono.am
index 7b90e1834f..adbf893233 100644
--- a/src/Makefile_Efl_Mono.am
+++ b/src/Makefile_Efl_Mono.am
@@ -180,8 +180,8 @@ lib_efl_mono_libefl_mono_dll_SOURCES = \
$(efl_eldbus_mono_files) \
$(efl_ecore_evas_mono_files)
 
-lib/efl_mono/libefl_mono.dll$(EXEEXT): $(lib_efl_mono_libefl_mono_dll_SOURCES) 
lib/efl_mono/$(am__dirstamp) $(efl_eolian_mono_files)
-   @rm -f lib/efl_mono/libefl_mono.dll$(EXEEXT)
+lib/efl_mono/libefl_mono.dll: $(lib_efl_mono_libefl_mono_dll_SOURCES) 
lib/efl_mono/$(am__dirstamp) $(efl_eolian_mono_files) 
lib/efl_mono/libefl_mono.dll.config
+   @rm -f lib/efl_mono/libefl_mono.dll
$(AM_V_MCS) $(MCS) $(MCS_FLAGS) -out:$@ -t:library $(filter %.cs, $(^))
 
 ### MSBuild
@@ -319,9 +319,9 @@ tests/efl_mono/libefl_mono_native_test.c: 
tests/efl_mono/test_testing.eo.h tests
 efl_mono_test_eolian_mono_files = tests/efl_mono/test_testing.eo.cs \
 tests/efl_mono/test_numberwrapper.eo.cs
 
-tests/efl_mono/libefl_mono_test.dll$(EXEEXT): 
$(efl_mono_test_eolian_mono_files) tests/efl_mono/$(am__dirstamp) 
lib/efl_mono/libefl_mono.dll$(EXEEXT) tests/efl_mono/libefl_mono_native_test.la
-   @rm -f tests/efl_mono/libefl_mono_test.dll$(EXEEXT)
-   $(AM_V_MCS) $(MCS) $(MCS_FLAGS) 
-r:$(abs_builddir)/lib/efl_mono/libefl_mono.dll$(EXEEXT) -out:$@ -t:library 
$(filter %.cs, $(^))
+tests/efl_mono/libefl_mono_test.dll: $(efl_mono_test_eolian_mono_files) 
tests/efl_mono/$(am__dirstamp) lib/efl_mono/libefl_mono.dll 
tests/efl_mono/libefl_mono_native_test.la
+   @rm -f tests/efl_mono/libefl_mono_test.dll
+   $(AM_V_MCS) $(MCS) $(MCS_FLAGS) 
-r:$(abs_builddir)/lib/efl_mono/libefl_mono.dll -out:$@ -t:library $(filter 
%.cs, $(^))
 
 # C Sharp test executable
 AM_TESTS_ENVIRONMENT += MONO='mono'; export MONO;
@@ -332,7 +332,6 @@ AM_TESTS_ENVIRONMENT += 
PATH='$(PATH):$(TEST_PATHS):$(WIN_ADD_TEST_PATHS)'; expo
 else
 AM_TESTS_ENVIRONMENT += LD_LIBRARY_PATH='$(LD_LIBRARY_PATH):$(TEST_PATHS)'; 
export LD_LIBRARY_PATH;
 endif
-AM_TESTS_ENVIRONMENT += EXEEXT='$(EXEEXT)'; export EXEEXT;
 
 check_PROGRAMS += tests/efl_mono/efl_mono.exe
 TESTS += tests/efl_mono/mono_test_driver.sh
@@ -351,9 +350,17 @@ tests_efl_mono_efl_mono_exe_SOURCES = \
  tests/efl_mono/Value.cs \
  tests/efl_mono/ValueEolian.cs
 
-tests/efl_mono/efl_mono.exe$(EXEEXT): $(tests_efl_mono_efl_mono_exe_SOURCES) 
tests/efl_mono/$(am__dirstamp) lib/efl_mono/libefl_mono.dll$(EXEEXT) 
tests/efl_mono/libefl_mono_test.dll$(EXEEXT)
-   @rm -f tests/efl_mono/efl_mono_exe$(EXEEXT)
-   $(AM_V_MCS) $(MCS) $(MCS_FLAGS) 
-r:$(abs_top_builddir)/src/lib/efl_mono/libefl_mono.dll$(EXEEXT) 
-r:$(abs_top_builddir)/src/tests/efl_mono/libefl_mono_test.dll$(EXEEXT) -out:$@ 
$(filter %.cs, $(^))
+lib/efl_mono/libefl_mono.dll.config:
+   echo "" > $@
+   echo "  "
 >> $@
+   echo "  "
 >> $@
+   echo "  "
 >> $@
+   echo "  "
 >> $@
+   echo "" >> $@
+
+tests/efl_mono/efl_mono.exe: $(tests_efl_mono_efl_mono_exe_SOURCES) 
tests/efl_mono/$(am__dirstamp) lib/efl_mono/libefl_mono.dll 
tests/efl_mono/libefl_mono_test.dll
+   @rm -f tests/efl_mono/efl_mono_exe
+   $(AM_V_MCS) $(MCS) $(MCS_FLAGS) 
-r:$(abs_top_builddir)/src/lib/efl_mono/libefl_mono.dll 
-r:$(abs_top_builddir)/src/tests/efl_mono/libefl_mono_test.dll -out:$@ $(filter 
%.cs, $(^))
 
 # Rule for generating the .cs files
 tests/efl_mono/%.eo.cs: tests/efl_mono/%.eo $(_EOLIAN_MONO_DEP)
diff --git a/src/examples/efl_mono/Makefile.am 
b/src/examples/efl_mono/Makefile.am
index 6bae1d9ee2..12c379eade 100644
--- a/src/examples/efl_mono/Makefile.am
+++ b/src/examples/efl_mono/Makefile.am
@@ -47,14 +47,16 @@ endif
 
 example_numberwrapper.c: example_numberwrapper.eo.h example_numberwrapper.eo.c
 
-numberwrapper_lib_name = example_numberwrapper.out
+noinst_lib_LTLIBRARIES = libexample_numberwrapper.la
+noinst_libdir = $(abs_top_builddir)
 
-$(numberwrapper_lib_name): example_numberwrapper.c
-   $(CC) -shared -o $@ $< -DEFL_BETA_API_SUPPORT -I. $(COMMON_FLAGS)
+libexample_numberwrapper_la_SOURCES = example_numberwrapper.c
+libexample_numberwrapper_la_LDFLAGS = -shared
+libexample_numberwrapper_la_CFLAGS = $(COMMON_FLAGS) -DEFL_BETA_API_SUPPORT
 
 SRCS += exa

[EGIT] [core/efl] master 16/16: eolian: Add inarray and inlist to source generation

2017-12-04 Thread Felipe Magno de Almeida
felipealmeida pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=66eb8ddfebf65f944a44f8b8871a8628757fe74e

commit 66eb8ddfebf65f944a44f8b8871a8628757fe74e
Author: Felipe Magno de Almeida <fel...@expertisesolutions.com.br>
Date:   Mon Dec 4 20:32:06 2017 -0200

eolian: Add inarray and inlist to source generation
---
 src/bin/eolian/sources.c   | 28 ++--
 src/tests/efl_mono/test_testing.eo |  4 ++--
 2 files changed, 28 insertions(+), 4 deletions(-)

diff --git a/src/bin/eolian/sources.c b/src/bin/eolian/sources.c
index 2ba900c9bd..a8a349fa86 100644
--- a/src/bin/eolian/sources.c
+++ b/src/bin/eolian/sources.c
@@ -189,14 +189,20 @@ _generate_iterative_free(Eina_Strbuf **buf, const 
Eolian_Type *type, const Eolia
iterator_header = eina_strbuf_new();
iter_param = eina_strbuf_new();
 
+   Eolian_Type_Builtin_Type t = eolian_type_builtin_type_get(type);
+
eina_strbuf_append_printf(iter_param, "%s_iter", 
eolian_parameter_name_get(parameter));
 
//generate the field definition
eina_strbuf_append_printf(*buf, "   %s", eolian_type_c_type_get(inner_type, 
EOLIAN_C_TYPE_DEFAULT));
+   if(t == EOLIAN_TYPE_BUILTIN_INARRAY
+  || t == EOLIAN_TYPE_BUILTIN_INLIST)
+ {
+   eina_strbuf_append(*buf, "*");
+ }
eina_strbuf_append_buffer(*buf, iter_param);
eina_strbuf_append(*buf, ";\n");
 
-   Eolian_Type_Builtin_Type t = eolian_type_builtin_type_get(type);
 
if (t == EOLIAN_TYPE_BUILTIN_LIST)
  {
@@ -207,6 +213,24 @@ _generate_iterative_free(Eina_Strbuf **buf, const 
Eolian_Type *type, const Eolia
 eina_strbuf_append(*buf, ")\n");
 _generate_loop_content(buf, inner_type, iter_param);
  }
+   else if (t == EOLIAN_TYPE_BUILTIN_INARRAY)
+ {
+eina_strbuf_append_printf(*buf, "   EINA_INARRAY_FOREACH(");
+eina_strbuf_append_buffer(*buf, param);
+eina_strbuf_append_char(*buf, ',');
+eina_strbuf_append_buffer(*buf, iter_param);
+eina_strbuf_append(*buf, ")\n");
+_generate_loop_content(buf, inner_type, iter_param);
+ }
+   else if (t == EOLIAN_TYPE_BUILTIN_INLIST)
+ {
+eina_strbuf_append_printf(*buf, "   EINA_INLIST_FREE(");
+eina_strbuf_append_buffer(*buf, param);
+eina_strbuf_append_char(*buf, ',');
+eina_strbuf_append_buffer(*buf, iter_param);
+eina_strbuf_append(*buf, ")\n");
+_generate_loop_content(buf, inner_type, iter_param);
+ }
else if (t == EOLIAN_TYPE_BUILTIN_ITERATOR)
  {
 eina_strbuf_append_printf(*buf, "   EINA_ITERATOR_FOREACH(");
@@ -237,7 +261,7 @@ _generate_iterative_free(Eina_Strbuf **buf, const 
Eolian_Type *type, const Eolia
  }
else
  {
-printf("Error, container unknown?!\n");
+printf("Error, container unknown?! %d\n", (int)t);
  }
 
eina_strbuf_free(iterator_header);
diff --git a/src/tests/efl_mono/test_testing.eo 
b/src/tests/efl_mono/test_testing.eo
index db6f13bcf2..bf13a57283 100644
--- a/src/tests/efl_mono/test_testing.eo
+++ b/src/tests/efl_mono/test_testing.eo
@@ -370,7 +370,7 @@ class Test.Testing (Efl.Object) {
   /* Integer */
   eina_inarray_int_in {
  params {
-@in arr: inarray;
+@in arr: inarray<ptr(int)>;
  }
  return: bool;
   }
@@ -387,7 +387,7 @@ class Test.Testing (Efl.Object) {
 
   eina_inarray_int_out {
  params {
-@out arr: inarray;
+@out arr: inarray<ptr(int)>;
  }
  return: bool;
   }

-- 




[EGIT] [core/efl] master 01/01: eo-cxx: Fix compilation error with any_value received by value

2017-10-30 Thread Felipe Magno de Almeida
felipealmeida pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=de349e1b9e8f34381747ed8d57c56577bd353a6b

commit de349e1b9e8f34381747ed8d57c56577bd353a6b
Author: Felipe Magno de Almeida <fel...@expertisesolutions.com.br>
Date:   Mon Oct 30 21:05:39 2017 -0200

eo-cxx: Fix compilation error with any_value received by value
---
 src/bindings/cxx/eo_cxx/eo_cxx_interop.hh | 6 +-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/bindings/cxx/eo_cxx/eo_cxx_interop.hh 
b/src/bindings/cxx/eo_cxx/eo_cxx_interop.hh
index d77bcf21e0..17cc390270 100644
--- a/src/bindings/cxx/eo_cxx/eo_cxx_interop.hh
+++ b/src/bindings/cxx/eo_cxx/eo_cxx_interop.hh
@@ -292,7 +292,7 @@ template 
 T convert_to_c(V&& object);
 
 template 
-void* data_function_ptr_to_c(T function)
+void* data_function_ptr_to_c(T)
 {
   return nullptr;
 }
@@ -437,6 +437,10 @@ inline Eina_Value* convert_to_c_impl( 
::efl::eina::value_view const& v, tag(v.native_handle());
 }
+inline Eina_Value const& convert_to_c_impl( ::efl::eina::value_view const& v, 
tag<Eina_Value, in_traits::type>)
+{
+  return *v.native_handle();
+}
 inline Eina_Bool convert_to_c_impl( bool b, tag<Eina_Bool, bool>)
 {
   return b;

-- 




[EGIT] [core/efl] master 01/01: eolian-cxx: Fix multiple definitions in forward declaration

2017-10-25 Thread Felipe Magno de Almeida
felipealmeida pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=f05a799daa6ec5e362a4376ee5d2b9ef011cd377

commit f05a799daa6ec5e362a4376ee5d2b9ef011cd377
Author: Felipe Magno de Almeida <fel...@expertisesolutions.com.br>
Date:   Wed Oct 25 18:00:50 2017 -0200

eolian-cxx: Fix multiple definitions in forward declaration
---
 src/lib/eolian_cxx/grammar/class_declaration.hpp | 19 ++-
 1 file changed, 18 insertions(+), 1 deletion(-)

diff --git a/src/lib/eolian_cxx/grammar/class_declaration.hpp 
b/src/lib/eolian_cxx/grammar/class_declaration.hpp
index 7c9957f07d..d448c31074 100644
--- a/src/lib/eolian_cxx/grammar/class_declaration.hpp
+++ b/src/lib/eolian_cxx/grammar/class_declaration.hpp
@@ -21,6 +21,19 @@ struct class_declaration_generator
bool generate(OutputIterator sink, attributes::klass_def const& cls, 
Context const& context) const
{
  std::vector cpp_namespaces = 
attributes::cpp_namespaces(cls.namespaces);
+
+ std::string guard_symbol;
+
+ if(!as_generator(*(string << "_") << string << "_FWD_GUARD")
+.generate(std::back_inserter(guard_symbol)
+  , std::make_tuple(cpp_namespaces, cls.cxx_name), 
add_upper_case_context(context)))
+   return false;
+
+ if(!as_generator(   "#ifndef " << guard_symbol << "\n"
+  << "#define " << guard_symbol << "\n")
+.generate(sink, std::make_tuple(), context))
+   return false;
+ 
  auto open_namespace = *("namespace " << string << " { ") << "\n";
  if(!as_generator(open_namespace).generate(sink, cpp_namespaces, 
add_lower_case_context(context))) return false;
 
@@ -32,7 +45,7 @@ struct class_declaration_generator
  auto close_namespace = *(lit("} ")) << "\n";
  if(!as_generator(close_namespace).generate(sink, cpp_namespaces, 
context)) return false;
 
- if(type_traits)
+ // if(type_traits)
if(!as_generator
   (
"namespace efl { namespace eo { template<> struct is_eolian_object< 
"
@@ -49,6 +62,10 @@ struct class_declaration_generator
, cpp_namespaces, cls.cxx_name, cpp_namespaces, 
cls.cxx_name
   ), context)) return false;
 
+ if(!as_generator("#endif\n")
+.generate(sink, std::make_tuple(), context))
+   return false;
+
  
  return true;
}

-- 




[EGIT] [core/efl] master 01/01: eina: Add progress notify callback feature for Promise Owners

2016-05-06 Thread Felipe Magno de Almeida
felipealmeida pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=236c13df34576c51473463d9f0ef5247810e89e3

commit 236c13df34576c51473463d9f0ef5247810e89e3
Author: Felipe Magno de Almeida <fel...@expertisesolutions.com.br>
Date:   Sun Apr 17 15:47:33 2016 -0300

eina: Add progress notify callback feature for Promise Owners

Add a way for users of the promise owner to get notified when a
promise progress is registered. Also added a convenience composition
function that creates a promise which is fulfilled when another
promise has a progress notification.
---
 src/lib/eina/eina_main.c   |   3 ++
 src/lib/eina/eina_promise.c| 101 +
 src/lib/eina/eina_promise.h|  44 
 src/tests/eina/eina_test_promise.c |  87 
 4 files changed, 235 insertions(+)

diff --git a/src/lib/eina/eina_main.c b/src/lib/eina/eina_main.c
index 8c084db..ffa9c98 100644
--- a/src/lib/eina/eina_main.c
+++ b/src/lib/eina/eina_main.c
@@ -87,6 +87,7 @@ static int _eina_main_count = 0;
 static int _eina_main_thread_count = 0;
 #endif
 static int _eina_log_dom = -1;
+void _eina_promise_init(void);
 
 #ifdef ERR
 #undef ERR
@@ -299,6 +300,8 @@ eina_init(void)
   }
  }
 
+   _eina_promise_init();
+   
eina_cpu_count_internal();
 
eina_log_timing(_eina_log_dom, EINA_LOG_STATE_STOP, EINA_LOG_STATE_INIT);
diff --git a/src/lib/eina/eina_promise.c b/src/lib/eina/eina_promise.c
index 459f686..2f83dc4 100644
--- a/src/lib/eina/eina_promise.c
+++ b/src/lib/eina/eina_promise.c
@@ -9,6 +9,7 @@
 typedef struct _Eina_Promise_Then_Cb _Eina_Promise_Then_Cb;
 typedef struct _Eina_Promise_Progress_Cb _Eina_Promise_Progress_Cb;
 typedef struct _Eina_Promise_Cancel_Cb _Eina_Promise_Cancel_Cb;
+typedef struct _Eina_Promise_Owner_Progress_Notify_Data 
_Eina_Promise_Owner_Progress_Notify_Data;
 typedef struct _Eina_Promise_Default _Eina_Promise_Default;
 typedef struct _Eina_Promise_Default_Owner _Eina_Promise_Default_Owner;
 typedef struct _Eina_Promise_Iterator _Eina_Promise_Iterator;
@@ -40,6 +41,15 @@ struct _Eina_Promise_Cancel_Cb
void* data;
 };
 
+struct _Eina_Promise_Owner_Progress_Notify_Data
+{
+   EINA_INLIST;
+
+   Eina_Promise_Progress_Notify_Cb callback;
+   Eina_Promise_Free_Cb free_cb;
+   void* data;
+};
+
 struct _Eina_Promise_Default
 {
Eina_Promise vtable;
@@ -49,6 +59,7 @@ struct _Eina_Promise_Default
Eina_Inlist *then_callbacks;
Eina_Inlist *progress_callbacks;
Eina_Inlist *cancel_callbacks;
+   Eina_Inlist *progress_notify_callbacks;
Eina_Promise_Free_Cb value_free_cb;
 
int ref;
@@ -89,6 +100,21 @@ static void _eina_promise_unref(_Eina_Promise_Default* 
promise);
 
 static void _eina_promise_iterator_setup(_Eina_Promise_Iterator* iterator, 
Eina_Array* promises);
 
+static void _eina_promise_free_callback_list(Eina_Inlist** list, 
void(*free_cb)(void* node))
+{
+  struct node
+  {
+EINA_INLIST;
+  } *node;
+  Eina_Inlist *list2;
+  
+  EINA_INLIST_FOREACH_SAFE(*list, list2, node)
+{
+  free_cb(node);
+}  
+  *list = NULL;
+}
+
 static void
 _eina_promise_then_calls(_Eina_Promise_Default_Owner* promise)
 {
@@ -188,6 +214,7 @@ _eina_promise_then(_Eina_Promise_Default* p, 
Eina_Promise_Cb callback,
 {
_Eina_Promise_Default_Owner* promise;
_Eina_Promise_Then_Cb* cb;
+   _Eina_Promise_Owner_Progress_Notify_Data* notify_data;
 
promise = EINA_PROMISE_GET_OWNER(p);
 
@@ -198,6 +225,12 @@ _eina_promise_then(_Eina_Promise_Default* p, 
Eina_Promise_Cb callback,
cb->data = data;
promise->promise.then_callbacks = 
eina_inlist_append(promise->promise.then_callbacks, EINA_INLIST_GET(cb));
 
+   EINA_INLIST_FOREACH(promise->promise.progress_notify_callbacks, notify_data)
+ {
+(*notify_data->callback)(notify_data->data, >owner_vtable);
+ }
+   
_eina_promise_free_callback_list(>promise.progress_notify_callbacks, 
);
+   
if (!promise->promise.is_first_then)
  {
 _eina_promise_ref(p);
@@ -263,11 +296,19 @@ static void
 _eina_promise_progress_cb_add(_Eina_Promise_Default* promise, 
Eina_Promise_Progress_Cb callback, void* data)
 {
_Eina_Promise_Progress_Cb* cb;
+   _Eina_Promise_Owner_Progress_Notify_Data* notify_data;
+   _Eina_Promise_Default_Owner* owner = EINA_PROMISE_GET_OWNER(promise);
 
cb = malloc(sizeof(struct _Eina_Promise_Progress_Cb));
cb->callback = callback;
cb->data = data;
promise->progress_callbacks = 
eina_inlist_append(promise->progress_callbacks, EINA_INLIST_GET(cb));
+
+   EINA_INLIST_FOREACH(owner->promise.progress_notify_callbacks, notify_data)
+ {
+   (*notify_data->callback)(notify_data->data, >owner_vtable);
+ }
+   _eina_promise_free_callback_list(>promise.progress_notify_callbacks, 
);
 }
 
 static void
@@ -356,6 +397,20 @@ _eina_promise_owne

[EGIT] [core/efl] master 01/01: eolian-cxx: Added test for the removal of the .Base class requirement

2016-05-04 Thread Felipe Magno de Almeida
felipealmeida pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=6124039c8f11936f78c08fd9b8dfd9c128c05ea2

commit 6124039c8f11936f78c08fd9b8dfd9c128c05ea2
Author: Felipe Magno de Almeida <fel...@expertisesolutions.com.br>
Date:   Wed May 4 21:13:48 2016 -0300

eolian-cxx: Added test for the removal of the .Base class requirement

Test creates class with the same name as the namespace of another class
---
 src/Makefile_Eolian_Cxx.am| 19 +++
 src/tests/eolian_cxx/name_name.c  | 10 ++
 src/tests/eolian_cxx/name_name_cxx.cc |  4 
 src/tests/eolian_cxx/ns_name.eo   |  4 
 src/tests/eolian_cxx/ns_name_other.eo |  4 
 5 files changed, 37 insertions(+), 4 deletions(-)

diff --git a/src/Makefile_Eolian_Cxx.am b/src/Makefile_Eolian_Cxx.am
index 5132a18..2e08a84 100644
--- a/src/Makefile_Eolian_Cxx.am
+++ b/src/Makefile_Eolian_Cxx.am
@@ -93,8 +93,8 @@ 
tests/eolian_cxx/tests_eolian_cxx_eolian_cxx_suite-b.$(OBJEXT): tests/eolian_cxx
 tests/eolian_cxx/tests_eolian_cxx_eolian_cxx_suite-c.$(OBJEXT): 
tests/eolian_cxx/c.eo.c tests/eolian_cxx/c.eo.h
 tests/eolian_cxx/tests_eolian_cxx_eolian_cxx_suite-d.$(OBJEXT): 
tests/eolian_cxx/d.eo.c tests/eolian_cxx/d.eo.h
 
-tests/eolian_cxx/tests_eolian_cxx_eolian_cxx_suite-name_name.$(OBJEXT): 
tests/eolian_cxx/name_name.eo.c tests/eolian_cxx/name_name.eo.h
-tests/eolian_cxx/tests_eolian_cxx_eolian_cxx_suite-name_name_cxx.$(OBJEXT): 
tests/eolian_cxx/name_name.eo.h tests/eolian_cxx/name_name.eo.hh
+tests/eolian_cxx/tests_eolian_cxx_eolian_cxx_suite-name_name.$(OBJEXT): 
tests/eolian_cxx/name_name.eo.c tests/eolian_cxx/name_name.eo.h 
tests/eolian_cxx/ns_name.eo.c tests/eolian_cxx/ns_name.eo.h 
tests/eolian_cxx/ns_name_other.eo.c tests/eolian_cxx/ns_name_other.eo.h
+tests/eolian_cxx/tests_eolian_cxx_eolian_cxx_suite-name_name_cxx.$(OBJEXT): 
tests/eolian_cxx/name_name.eo.h tests/eolian_cxx/name_name.eo.hh 
tests/eolian_cxx/ns_name.eo.h tests/eolian_cxx/ns_name.eo.hh 
tests/eolian_cxx/ns_name_other.eo.h tests/eolian_cxx/ns_name_other.eo.hh
 
 CLEANFILES += \
 tests/eolian_cxx/callback.eo.hh \
@@ -116,7 +116,16 @@ tests/eolian_cxx/d.eo.hh tests/eolian_cxx/d.eo.impl.hh 
tests/eolian_cxx/d.eo.c t
 tests/eolian_cxx/name_name.eo.hh \
 tests/eolian_cxx/name_name.eo.c \
 tests/eolian_cxx/name_name.eo.h \
-tests/eolian_cxx/name_name.eo.impl.hh
+tests/eolian_cxx/name_name.eo.impl.hh \
+tests/eolian_cxx/ns_name.eo.hh \
+tests/eolian_cxx/ns_name.eo.c \
+tests/eolian_cxx/ns_name.eo.h \
+tests/eolian_cxx/ns_name.eo.impl.hh \
+tests/eolian_cxx/ns_name_other.eo.hh \
+tests/eolian_cxx/ns_name_other.eo.c \
+tests/eolian_cxx/ns_name_other.eo.h \
+tests/eolian_cxx/ns_name_other.eo.impl.hh
+
 
 tests_eolian_cxx_eolian_cxx_suite_CXXFLAGS = \
 -I$(top_builddir)/src/lib/efl \
@@ -147,7 +156,9 @@ tests/eolian_cxx/a.eo \
 tests/eolian_cxx/b.eo \
 tests/eolian_cxx/c.eo \
 tests/eolian_cxx/d.eo \
-tests/eolian_cxx/name_name.eo
+tests/eolian_cxx/name_name.eo \
+tests/eolian_cxx/ns_name.eo \
+tests/eolian_cxx/ns_name_other.eo
 
 include Makefile_Eolian_Cxx_Helper.am
 
diff --git a/src/tests/eolian_cxx/name_name.c b/src/tests/eolian_cxx/name_name.c
index 50b65d9..a4e9c06 100644
--- a/src/tests/eolian_cxx/name_name.c
+++ b/src/tests/eolian_cxx/name_name.c
@@ -4,5 +4,15 @@
 struct Name_Name_Data {};
 typedef struct Name_Name_Data Name_Name_Data;
 
+struct Ns_Name_Data {};
+typedef struct Ns_Name_Data Ns_Name_Data;
+
+struct Ns_Name_Other_Data {};
+typedef struct Ns_Name_Other_Data Ns_Name_Other_Data;
+
 #include "name_name.eo.h"
 #include "name_name.eo.c"
+#include "ns_name.eo.h"
+#include "ns_name.eo.c"
+#include "ns_name_other.eo.h"
+#include "ns_name_other.eo.c"
diff --git a/src/tests/eolian_cxx/name_name_cxx.cc 
b/src/tests/eolian_cxx/name_name_cxx.cc
index 9908754..d5669bc 100644
--- a/src/tests/eolian_cxx/name_name_cxx.cc
+++ b/src/tests/eolian_cxx/name_name_cxx.cc
@@ -3,4 +3,8 @@
 
 #include "name_name.eo.h"
 #include "name_name.eo.hh"
+#include "ns_name.eo.h"
+#include "ns_name.eo.hh"
+#include "ns_name_other.eo.h"
+#include "ns_name_other.eo.hh"
 
diff --git a/src/tests/eolian_cxx/ns_name.eo b/src/tests/eolian_cxx/ns_name.eo
new file mode 100644
index 000..50ab890
--- /dev/null
+++ b/src/tests/eolian_cxx/ns_name.eo
@@ -0,0 +1,4 @@
+class Ns.Name {
+  legacy_prefix: null;
+}
+
diff --git a/src/tests/eolian_cxx/ns_name_other.eo 
b/src/tests/eolian_cxx/ns_name_other.eo
new file mode 100644
index 000..64a563f
--- /dev/null
+++ b/src/tests/eolian_cxx/ns_name_other.eo
@@ -0,0 +1,4 @@
+class Ns.Name.Other {
+  legacy_prefix: null;
+}
+

-- 




[EGIT] [core/efl] master 01/02: eolian: Fix promise generation with multiple parameters

2016-04-29 Thread Felipe Magno de Almeida
felipealmeida pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=46903d76f5c5c9fa9834298edff509b4b82a2e5b

commit 46903d76f5c5c9fa9834298edff509b4b82a2e5b
Author: Felipe Magno de Almeida <fel...@expertisesolutions.com.br>
Date:   Fri Apr 29 17:14:54 2016 -0300

eolian: Fix promise generation with multiple parameters

When generating multiple parameters, they inadvertedly got
replaced by __eo_promise. Replacing all arguments to the
promise pointer.
---
 src/bin/eolian/eo_generator.c |  8 +++-
 src/tests/eolian/generated_promise.eo | 12 
 2 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/src/bin/eolian/eo_generator.c b/src/bin/eolian/eo_generator.c
index 0d80cc2..aa73bcc 100644
--- a/src/bin/eolian/eo_generator.c
+++ b/src/bin/eolian/eo_generator.c
@@ -383,6 +383,7 @@ eo_bind_func_generate(const Eolian_Class *class, const 
Eolian_Function *funcid,
  Eina_Bool had_star = !!strchr(ptype, '*');
 
  if (ftype == EOLIAN_UNRESOLVED || ftype == EOLIAN_METHOD) 
add_star = (pdir == EOLIAN_OUT_PARAM || pdir == EOLIAN_INOUT_PARAM);
+ if (eina_strbuf_length_get(params)) eina_strbuf_append(params, ", 
");
 
  if(!has_promise && !strcmp(ptype, "Eina_Promise *") &&
 (ftype == EOLIAN_UNRESOLVED || ftype == EOLIAN_METHOD) && pdir 
== EOLIAN_INOUT_PARAM)
@@ -396,18 +397,15 @@ eo_bind_func_generate(const Eolian_Class *class, const 
Eolian_Function *funcid,
   promise_value_type = eolian_type_c_type_get(subtype);
   eina_strbuf_append_printf(impl_full_params, ", 
Eina_Promise_Owner *%s%s",
  pname, is_empty && !dflt_value ?" EINA_UNUSED":"");
+  eina_strbuf_append_printf(params, "__eo_promise");
}
  else
{
   eina_strbuf_append_printf(impl_full_params, ", %s%s%s%s%s",
 ptype, had_star?"":" ", add_star?"*":"", pname, 
is_empty && !dflt_value ?" EINA_UNUSED":"");
+  eina_strbuf_append_printf(params, "%s", pname);
}
 
- if (eina_strbuf_length_get(params)) eina_strbuf_append(params, ", 
");
- if(has_promise)
-   eina_strbuf_append_printf(params, "%s", "__eo_promise");
- else
-   eina_strbuf_append_printf(params, "%s", pname);
  eina_strbuf_append_printf(full_params, ", %s%s%s%s%s",
ptype, had_star?"":" ", add_star?"*":"", pname, is_empty && 
!dflt_value ?" EINA_UNUSED":"");
  if (is_auto)
diff --git a/src/tests/eolian/generated_promise.eo 
b/src/tests/eolian/generated_promise.eo
index 66c1a68..60fbe3e 100644
--- a/src/tests/eolian/generated_promise.eo
+++ b/src/tests/eolian/generated_promise.eo
@@ -7,6 +7,18 @@ class Generated_Promise (Eo.Base)
 @inout promise1: promise*;
  }
   }
+  method_multiple_args_1 {
+ params {
+@inout promise1: promise*;
+@in data: void*;
+ }
+  }
+  method_multiple_args_2 {
+ params {
+@in data: void*;
+@inout promise1: promise*;
+ }
+  }
   method2 {
  params {
 @out promise1: promise*;

-- 




[EGIT] [core/efl] master 02/02: eio: Fix unused variable warnings in test

2016-04-29 Thread Felipe Magno de Almeida
felipealmeida pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=e69f41001baa664b6021362319810e3701e808b5

commit e69f41001baa664b6021362319810e3701e808b5
Author: Felipe Magno de Almeida <fel...@expertisesolutions.com.br>
Date:   Fri Apr 29 17:32:23 2016 -0300

eio: Fix unused variable warnings in test

Use of EINA_UNUSED in unused parameters
---
 src/tests/eio/eio_model_test_file.c | 13 +++--
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/src/tests/eio/eio_model_test_file.c 
b/src/tests/eio/eio_model_test_file.c
index b09df89..63f7b93 100644
--- a/src/tests/eio/eio_model_test_file.c
+++ b/src/tests/eio/eio_model_test_file.c
@@ -58,16 +58,18 @@ static Eina_Bool
  }
 
 static void
-promise_then_count(Eo* obj EINA_UNUSED, int *total)
+promise_then_count(void *data EINA_UNUSED, void *p)
 {
+  int *total = p;
   ck_assert_ptr_ne(total, NULL);
   printf("efl_model_loaded count %d\n", *total); fflush(stdout);
   ecore_main_loop_quit();
 }
 
 static void
-promise_then_accessor(Eo* obj EINA_UNUSED, Eina_Accessor **accessor)
+promise_then_accessor(void *data EINA_UNUSED, void* p)
 {
+  Eina_Accessor **accessor = (Eina_Accessor**)p;
   ck_assert_ptr_ne(accessor, NULL);
   printf("efl_model_loaded accessor %p\n", *accessor); fflush(stdout);
 
@@ -82,8 +84,9 @@ promise_then_accessor(Eo* obj EINA_UNUSED, Eina_Accessor 
**accessor)
 }
 
 static void
-promise_then_value(void *user EINA_UNUSED, Eina_Value *value)
+promise_then_value(void *user EINA_UNUSED, void *p)
 {
+  Eina_Value* value = p;
   ck_assert_ptr_ne(value, NULL);
   char *str = eina_value_to_string(value);
 
@@ -95,7 +98,7 @@ promise_then_value(void *user EINA_UNUSED, Eina_Value *value)
 }
 
 static void
-error_promise_then(void* data, Eina_Error const* error)
+error_promise_then(void* data EINA_UNUSED, Eina_Error const* error EINA_UNUSED)
 {
   ck_abort_msg(0, "Error Promise cb");
   ecore_main_loop_quit();
@@ -104,8 +107,6 @@ error_promise_then(void* data, Eina_Error const* error)
 START_TEST(eio_model_test_test_file)
 {
Eo *filemodel = NULL;
-   Eina_Array *properties_list = NULL;
-   unsigned int i;
 
memset(, 0, sizeof(struct reqs_t));
 

-- 




[EGIT] [core/efl] master 01/01: eolian-cxx: Remove .Base requirement

2016-04-21 Thread Felipe Magno de Almeida
felipealmeida pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=535a069a2312acc7b217f8150e6c0cfc469fd5f2

commit 535a069a2312acc7b217f8150e6c0cfc469fd5f2
Author: Felipe Magno de Almeida <fel...@expertisesolutions.com.br>
Date:   Fri Mar 18 17:48:47 2016 -0300

eolian-cxx: Remove .Base requirement

Remove requirement that class can't have the same name as another
class's namespace.
---
 src/Makefile_Eolian_Cxx.am |  5 +++
 src/bin/eolian_cxx/convert.cc  |  6 ++-
 src/bin/eolian_cxx/eolian_wrappers.hh  |  4 +-
 src/bin/eolian_cxx/type_lookup.hh  | 46 +-
 src/bindings/eo_cxx/eo_private.hh  |  8 ++--
 src/tests/ecore_audio_cxx/cxx_compile_test.cc  |  1 +
 src/tests/eina_cxx/eina_cxx_test_iterator.cc   | 14 +++
 src/tests/eolian_cxx/eolian_cxx_test_address_of.cc | 12 +++---
 src/tests/eolian_cxx/eolian_cxx_test_binding.cc|  4 +-
 src/tests/eolian_cxx/eolian_cxx_test_callback.cc   | 10 ++---
 .../eolian_cxx/eolian_cxx_test_inheritance.cc  |  4 +-
 src/tests/eolian_cxx/eolian_cxx_test_wrapper.cc|  2 +-
 src/tests/eolian_cxx/name_name.c   |  8 
 src/tests/eolian_cxx/name_name.eo  |  4 ++
 src/tests/eolian_cxx/name_name_cxx.cc  |  6 +++
 15 files changed, 94 insertions(+), 40 deletions(-)

diff --git a/src/Makefile_Eolian_Cxx.am b/src/Makefile_Eolian_Cxx.am
index 89111c1..c9da3f0 100644
--- a/src/Makefile_Eolian_Cxx.am
+++ b/src/Makefile_Eolian_Cxx.am
@@ -72,6 +72,8 @@ tests/eolian_cxx/eolian_cxx_test_callback.cc \
 tests/eolian_cxx/eolian_cxx_test_address_of.cc \
 tests/eolian_cxx/eolian_cxx_test_wrapper.cc \
 tests/eolian_cxx/simple.c \
+tests/eolian_cxx/name_name.c \
+tests/eolian_cxx/name_name_cxx.cc \
 tests/eolian_cxx/generic.c \
 tests/eolian_cxx/eolian_cxx_test_inheritance.cc \
 tests/eolian_cxx/eolian_cxx_test_generate.cc \
@@ -91,6 +93,9 @@ 
tests/eolian_cxx/tests_eolian_cxx_eolian_cxx_suite-b.$(OBJEXT): tests/eolian_cxx
 tests/eolian_cxx/tests_eolian_cxx_eolian_cxx_suite-c.$(OBJEXT): 
tests/eolian_cxx/c.eo.c tests/eolian_cxx/c.eo.h
 tests/eolian_cxx/tests_eolian_cxx_eolian_cxx_suite-d.$(OBJEXT): 
tests/eolian_cxx/d.eo.c tests/eolian_cxx/d.eo.h
 
+tests/eolian_cxx/tests_eolian_cxx_eolian_cxx_suite-name_name.$(OBJEXT): 
tests/eolian_cxx/name_name.eo.c tests/eolian_cxx/name_name.eo.h
+tests/eolian_cxx/tests_eolian_cxx_eolian_cxx_suite-name_name_cxx.$(OBJEXT): 
tests/eolian_cxx/name_name.eo.h tests/eolian_cxx/name_name.eo.hh
+
 CLEANFILES += \
 tests/eolian_cxx/callback.eo.hh \
 tests/eolian_cxx/callback.eo.c \
diff --git a/src/bin/eolian_cxx/convert.cc b/src/bin/eolian_cxx/convert.cc
index 1b42e66..97e88c9 100644
--- a/src/bin/eolian_cxx/convert.cc
+++ b/src/bin/eolian_cxx/convert.cc
@@ -38,7 +38,7 @@ add_ancestor_recursive(const char* klass_name, 
std::set& ancestor)
 return;
  }
 
-   ancestor.insert(class_format_cxx(safe_lower(klass_name)));
+   ancestor.insert(class_format_cxx(safe_str(klass_name)));
 
Eina_Iterator* inheritances = ::eolian_class_inherits_get(klass);
void* curr = 0;
@@ -236,7 +236,7 @@ convert_eolian_inheritances(efl::eolian::eo_class& cls, 
Eolian_Class const& klas
EINA_ITERATOR_FOREACH(inheritances, curr)
  {
 const char* klass_name = static_cast(curr);
-cls.parents.push_back(class_format_cxx(safe_lower(klass_name)));
+cls.parents.push_back(class_format_cxx(safe_str(klass_name)));
 add_ancestor_recursive(klass_name, ancestors);
  }
eina_iterator_free(inheritances);
@@ -275,6 +275,8 @@ convert_eolian_class_new(Eolian_Class const& klass)
cls.type = class_type(klass);
cls.name = class_name(klass);
cls.name_space = class_namespace_full(klass);
+   if(cls.name_space.empty())
+ cls.name_space = "nonamespace";
cls.eo_name = class_eo_name(klass);
cls.comment = convert_comments_class(klass);
return cls;
diff --git a/src/bin/eolian_cxx/eolian_wrappers.hh 
b/src/bin/eolian_cxx/eolian_wrappers.hh
index 0b78020..8be5f9b 100644
--- a/src/bin/eolian_cxx/eolian_wrappers.hh
+++ b/src/bin/eolian_cxx/eolian_wrappers.hh
@@ -59,7 +59,7 @@ class_base_file(Eolian_Class const& klass)
 inline std::string
 class_name(Eolian_Class const& klass)
 {
-   return safe_lower(::eolian_class_name_get());
+  return ::eolian_class_name_get();
 }
 
 inline std::string
@@ -347,7 +347,7 @@ event_create(Eolian_Class const& klass, const Eolian_Event 
*event_)
 event.is_beta = (::eolian_event_is_beta(event_) != EINA_FALSE);
 event.name = normalize_spaces(name_);
 event.eo_name = safe_upper
-  (find_replace(class_full_name(klass), ".", "_") + "_EVENT_" + 
event.name);
+  (find_replace(safe_lower(class_full_name(klass)), ".", "_") + 
"_EVENT_" + event.name

[EGIT] [core/efl] master 01/01: eolian-cxx: Remove deprecated examples

2016-04-21 Thread Felipe Magno de Almeida
felipealmeida pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=bd5c1f72407c23f87f72556f5a3fe1b2cdcc079d

commit bd5c1f72407c23f87f72556f5a3fe1b2cdcc079d
Author: Felipe Magno de Almeida <fel...@expertisesolutions.com.br>
Date:   Thu Apr 21 14:58:40 2016 -0300

eolian-cxx: Remove deprecated examples

Removed deprecated and non-compilable examples for C++ using
Evas. Users should look into C++ Elementary's examples instead.
---
 src/examples/eolian_cxx/Makefile.am|  10 +-
 .../eolian_cxx/eolian_cxx_complex_types_01.cc  | 126 -
 src/examples/eolian_cxx/eolian_cxx_eo_events_01.cc | 109 --
 3 files changed, 1 insertion(+), 244 deletions(-)

diff --git a/src/examples/eolian_cxx/Makefile.am 
b/src/examples/eolian_cxx/Makefile.am
index ebc13c2..26e3e4b 100644
--- a/src/examples/eolian_cxx/Makefile.am
+++ b/src/examples/eolian_cxx/Makefile.am
@@ -97,17 +97,13 @@ SRCS = \
eolian_cxx_simple_01.cc \
eolian_cxx_inherit_01.cc \
eolian_cxx_callbacks_01.cc \
-   eolian_cxx_eo_events_01.cc \
-   eolian_cxx_complex_types_01.cc \
$(IMPL)
 
 EXTRA_PROGRAMS = \
eolian_cxx_simple_01 \
eolian_cxx_simple_01_cxx_impl \
eolian_cxx_inherit_01 \
-   eolian_cxx_callbacks_01 \
-   eolian_cxx_eo_events_01 \
-   eolian_cxx_complex_types_01
+   eolian_cxx_callbacks_01
 
 DATA_FILES = Makefile.examples $(ECXX_EXAMPLE_EOS)
 EXTRA_DIST = $(DATA_FILES)
@@ -136,10 +132,6 @@ eolian_cxx_inherit_01.$(OBJEXT): $(GENERATED)
 
 eolian_cxx_callbacks_01_SOURCES = eolian_cxx_callbacks_01.cc
 
-eolian_cxx_eo_events_01_SOURCES = eolian_cxx_eo_events_01.cc
-
-eolian_cxx_complex_types_01_SOURCES = eolian_cxx_complex_types_01.cc
-
 %.eo.hh: %.eo
$(AM_V_EOLCXX)$(EOLIAN_CXX) $(EOLIAN_FLAGS) -I${abs_srcdir} -o $@ $<
 
diff --git a/src/examples/eolian_cxx/eolian_cxx_complex_types_01.cc 
b/src/examples/eolian_cxx/eolian_cxx_complex_types_01.cc
deleted file mode 100644
index 04ed7fe..000
--- a/src/examples/eolian_cxx/eolian_cxx_complex_types_01.cc
+++ /dev/null
@@ -1,126 +0,0 @@
-#include 
-#include 
-#include 
-#include 
-
-#ifdef HAVE_CONFIG_H
-# include 
-#endif
-
-#include 
-#include 
-#include 
-#include 
-
-#include 
-#include 
-#include 
-#include 
-
-#warning TEST CASE DISABLED: EVAS TYPES NO MORE IN EO API
-
-#if 0
-#include 
-#include 
-#include 
-#include 
-#include 
-
-namespace efl { namespace evas { // XXX only while we don't have namespaces in 
EFL
-using ::evas::canvas;
-using ::evas::object;
-using ::evas::text;
-using ::evas::grid;
-using ::evas::rectangle;
-using ::evas::common_interface;
-using ::evas::zoomable_interface;
-} }
-
-namespace {
-
-// EFL Ecore-Evas doesn't have C++ bindings yet.
-Ecore_Evas *ee;
-void
-_ecore_evas_init()
-{
-   if (!ee)
- {
-::ecore_evas_init();
-::evas_init();
-ee = ::ecore_evas_new(NULL, 0, 0, 500, 380, NULL);
-::ecore_evas_show(ee);
-   }
-}
-void
-_ecore_evas_shutdown()
-{
-   if (ee)
- {
-::ecore_evas_free(ee);
-::ecore_evas_shutdown();
-ee = NULL;
- }
-}
-
-}
-
-void
-example_complex_types()
-{
-   _ecore_evas_init();
-   efl::evas::canvas canvas(::eo_ref(::ecore_evas_get(ee)));
-
-   efl::evas::rectangle bg(efl::eo::parent = canvas);
-   bg.color_set(255, 255, 255, 255);
-   bg.position_set(0, 0);
-   bg.size_set(500, 250);
-   bg.visible_set(true);
-
-   efl::evas::grid grid(efl::eo::parent = canvas);
-   grid.position_set(0, 0);
-   grid.object_smart::color_set(0, 0, 0, 255);
-   grid.size_set(5, 5);
-   grid.visible_set(true);
-
-   efl::evas::text text1(efl::eo::parent = canvas);
-   text1.style_set(EVAS_TEXT_STYLE_OUTLINE);
-   text1.color_set(255, 0, 0, 255);
-   text1.font_set("DejaVu", 32);
-   text1.text_set("EFL++ Examples");
-   text1.visible_set(true);
-   int t1w, t1h;
-   text1.size_get(, );
-   grid.pack(text1, 1, 1, t1w, t1h);
-
-   efl::evas::text text2(efl::eo::parent = canvas);
-   text2.style_set(EVAS_TEXT_STYLE_PLAIN);
-   text2.color_set(0, 120, 0, 255);
-   text2.position_set(t1w+50, t1h+50);
-   text2.font_set("Courier", 16);
-   std::stringstream ss;
-   ss << "version " << EFL_VERSION_MAJOR << "." << EFL_VERSION_MINOR;
-   text2.text_set(ss.str().c_str());
-   text2.visible_set(true);
-   int t2w, t2h;
-   text2.size_get(, );
-
-   canvas.render();
-   ::ecore_main_loop_begin();
-   _ecore_evas_shutdown();
-}
-
-int main()
-{
-   efl::eina::eina_init eina_;
-   efl::eo::eo_init eo_;
-   efl::ecore::ecore_init ecore_;
-
-   std::cerr << "[+] Running ELF++ example: Complex Types" << std::endl;
-   example_complex_types();
-
-   return 0;
-}
-#else
-int main() { abort(); }
-#endif
-
diff --git a/src/examples/eolian_cxx/eolian_cxx_eo_events_01.cc 
b/src/examples/eolian_cxx/eolian_cxx_eo_events_01.cc
deleted file 

[EGIT] [core/efl] master 01/01: eolian: Make promise eolian generation use macros for hooks

2016-04-10 Thread Felipe Magno de Almeida
felipealmeida pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=62841aee3ce838321149b329008a54185341f9f8

commit 62841aee3ce838321149b329008a54185341f9f8
Author: Felipe Magno de Almeida <fel...@expertisesolutions.com.br>
Date:   Mon Apr 11 00:53:03 2016 -0300

eolian: Make promise eolian generation use macros for hooks

Modify the way hooks are defined and used by promise generation in
Eolian in the Eo API.

Instead of passing macro names as parameters to EO_FUNC_BODY macros,
just re-define the actual hooks when it is needed.
---
 src/bin/eolian/eo_generator.c  |  32 +++--
 src/bindings/eo_cxx/eo_inherit.hh  |   2 +-
 src/lib/eina/eina_promise.h|  19 +--
 src/lib/eo/Eo.h|  52 
 src/tests/eo/access/access_inherit.c   |   2 +-
 src/tests/eo/access/access_simple.c|   2 +-
 .../composite_objects/composite_objects_simple.c   | 132 ++---
 src/tests/eo/constructors/constructors_mixin.c |   2 +-
 src/tests/eo/constructors/constructors_simple.c|   6 +-
 .../function_overrides_inherit2.c  |   4 +-
 .../function_overrides/function_overrides_simple.c |   8 +-
 src/tests/eo/interface/interface_interface.c   |   2 +-
 src/tests/eo/interface/interface_interface2.c  |   2 +-
 src/tests/eo/interface/interface_simple.c  |   4 +-
 src/tests/eo/mixin/mixin_mixin.c   |   2 +-
 src/tests/eo/mixin/mixin_simple.c  |   4 +-
 src/tests/eo/signals/signals_simple.c  |   2 +-
 src/tests/eo/suite/eo_test_class_simple.c  |  18 +--
 src/tests/eo/suite/eo_test_general.c   |   4 +-
 src/tests/eo/suite/eo_test_threaded_calls.c|   6 +-
 src/tests/eolian/data/class_simple_ref.c   |  10 +-
 src/tests/eolian/data/override_ref.c   |  16 +--
 22 files changed, 174 insertions(+), 157 deletions(-)

diff --git a/src/bin/eolian/eo_generator.c b/src/bin/eolian/eo_generator.c
index 78e8108..c367027 100644
--- a/src/bin/eolian/eo_generator.c
+++ b/src/bin/eolian/eo_generator.c
@@ -546,16 +546,6 @@ eo_bind_func_generate(const Eolian_Class *class, const 
Eolian_Function *funcid,
   (ftype == EOLIAN_PROP_GET ||
eolian_function_object_is_const(funcid) ||
eolian_function_is_class(funcid))?"_CONST":"", 
func_env.lower_eo_func);
-if(has_promise)
-  {
- eina_strbuf_append_printf(eo_func_decl,
-   ", _EINA_PROMISE_BEFORE_HOOK(%s, %s%s) _EO_EMPTY_HOOK, 
_EINA_PROMISE_AFTER_HOOK(%s) _EO_EMPTY_HOOK",
-   promise_value_type, !rettype ? "void" : rettype,
-   eina_strbuf_string_get(impl_full_params),
-   promise_param_name);
-  }
-else
-  eina_strbuf_append_printf(eo_func_decl, ", _EO_EMPTY_HOOK, 
_EO_EMPTY_HOOK");
 if (!ret_is_void)
   {
  const char *val_str = NULL;
@@ -583,7 +573,29 @@ eo_bind_func_generate(const Eolian_Class *class, const 
Eolian_Function *funcid,
eina_strbuf_string_get(full_params));
   }
 eina_strbuf_append_printf(eo_func_decl, ");");
+
+if(has_promise)
+  {
+ eina_strbuf_append_printf(fbody,
+   "#undef _EO_API_BEFORE_HOOK\n#undef 
_EO_API_AFTER_HOOK\n#undef _EO_API_CALL_HOOK\n"
+   "#define _EO_API_BEFORE_HOOK 
_EINA_PROMISE_BEFORE_HOOK(%s, %s%s)\n"
+   "#define _EO_API_AFTER_HOOK 
_EINA_PROMISE_AFTER_HOOK(%s)\n"
+   "#define _EO_API_CALL_HOOK(x) 
_EINA_PROMISE_CALL_HOOK(EO_FUNC_CALL(%s))\n\n",
+   promise_value_type, !rettype ? "void" : 
rettype,
+   
eina_strbuf_string_get(impl_full_params),
+   promise_param_name,
+   eina_strbuf_string_get(params));
+  }
+
 eina_strbuf_append_printf(fbody, "%s\n", 
eina_strbuf_string_get(eo_func_decl));
+
+if(has_promise)
+  {
+ eina_strbuf_append_printf(fbody, "\n#undef 
_EO_API_BEFORE_HOOK\n#undef _EO_API_AFTER_HOOK\n#undef _EO_API_CALL_HOOK\n"
+   "#define _EO_API_BEFORE_HOOK\n#define 
_EO_API_AFTER_HOOK\n"
+   "#define _EO_API_CALL_HOOK(x) x\n");
+  }
+
 eina_strbuf_free(eo_func_decl);
  }
 
diff --git a/src/bindings/eo_cxx/eo_inherit.hh 
b/src/bindings/eo_cxx/eo_inherit.hh
index a73de37..a05d11f 100644
--- a/src/bindings/eo_cxx/eo_inherit.h

[EGIT] [core/efl] master 02/03: eolian: add Eolian support for Eina Promises

2016-04-06 Thread Felipe Magno de Almeida
cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=dc954d8dba4538ef6cc70cb28bd6c622031825b5

commit dc954d8dba4538ef6cc70cb28bd6c622031825b5
Author: Felipe Magno de Almeida <fel...@expertisesolutions.com.br>
Date:   Fri Apr 1 22:50:28 2016 -0300

eolian: add Eolian support for Eina Promises

Add a promise object to allows Eolian interface to include promises
as a way to have asynchronous value return and composibility.

The usage is like this in a .eo file:

class Foo {
   methods {
  bar {
 params {
@inout promise: Promise;
 }
  }
   }
}

Which will create the following API interface:

void foo_bar(Eo* obj, Eina_Promise** promise);

and a Eina_Promise_Owner for the implementation, like this:

void _foo_bar(Eo* obj, Private_Data* pdata, Eina_Promise_Owner* promise);

Signed-off-by: Cedric Bail <ced...@osg.samsung.com>
---
 src/Makefile_Eolian.am  | 13 +---
 src/bin/eolian/eo_generator.c   | 48 ++---
 src/lib/eina/eina_promise.h | 20 
 src/lib/eolian/eo_lexer.c   |  3 +-
 src/lib/eolian/eo_lexer.h   |  9 --
 src/lib/eolian/eo_parser.c  |  2 +-
 src/tests/eolian/eolian_generated_promise.c | 46 +++
 src/tests/eolian/generated_promise.eo   | 42 +
 8 files changed, 170 insertions(+), 13 deletions(-)

diff --git a/src/Makefile_Eolian.am b/src/Makefile_Eolian.am
index 2f4554c..a542127 100644
--- a/src/Makefile_Eolian.am
+++ b/src/Makefile_Eolian.am
@@ -111,19 +111,24 @@ tests/eolian/eolian_suite
 tests_eolian_eolian_suite_SOURCES = \
 tests/eolian/eolian_parsing.c \
 tests/eolian/eolian_generation.c \
+tests/eolian/eolian_generated_promise.c \
 tests/eolian/eolian_suite.c \
 tests/eolian/eolian_suite.h
 
-tests_eolian_eolian_suite_CPPFLAGS = -I$(top_builddir)/src/lib/efl \
+tests/eolian/tests_eolian_eolian_suite-eolian_generated_promise.$(OBJEXT): 
tests/eolian/generated_promise.eo.h tests/eolian/generated_promise.eo.c
+
+CLEANFILES += tests/eolian/generated_promise.eo.h 
tests/eolian/generated_promise.eo.c
+
+tests_eolian_eolian_suite_CPPFLAGS = -I$(top_builddir)/src/lib/efl 
-I$(top_builddir)/src/tests/eolian \
 -DTESTS_BUILD_DIR=\"$(top_builddir)/src/tests/eolian\" \
 -DPACKAGE_DATA_DIR=\"$(top_srcdir)/src/tests/eolian\" \
 -DPACKAGE_BUILD_DIR=\"$(abs_top_builddir)\" \
 @CHECK_CFLAGS@ \
-@EOLIAN_CFLAGS@
+@EOLIAN_CFLAGS@ @EO_CFLAGS@
 TESTS += tests/eolian/eolian_suite
 
-tests_eolian_eolian_suite_LDADD = @CHECK_LIBS@ @USE_EOLIAN_LIBS@
-tests_eolian_eolian_suite_DEPENDENCIES = @USE_EOLIAN_INTERNAL_LIBS@
+tests_eolian_eolian_suite_LDADD = @CHECK_LIBS@ @USE_EOLIAN_LIBS@ @USE_EO_LIBS@
+tests_eolian_eolian_suite_DEPENDENCIES = @USE_EOLIAN_INTERNAL_LIBS@ 
@USE_EO_INTERNAL_LIBS@
 tests_eolian_eolian_suite.$(OBJEXT): $(EOLIAN_TESTS_EOS_GENERATED)
 
 endif
diff --git a/src/bin/eolian/eo_generator.c b/src/bin/eolian/eo_generator.c
index 22efb10..78e8108 100644
--- a/src/bin/eolian/eo_generator.c
+++ b/src/bin/eolian/eo_generator.c
@@ -311,6 +311,9 @@ eo_bind_func_generate(const Eolian_Class *class, const 
Eolian_Function *funcid,
if (ftype != EOLIAN_PROP_GET && ftype != EOLIAN_PROP_SET) ftype = 
eolian_function_type_get(funcid);
Eina_Bool is_prop = (ftype == EOLIAN_PROP_GET || ftype == EOLIAN_PROP_SET);
 
+   Eina_Bool has_promise = EINA_FALSE;
+   const char* promise_param_name = NULL;
+   const char* promise_value_type = NULL;
Eina_Bool need_implementation = EINA_TRUE;
if (!impl_env && eolian_function_is_virtual_pure(funcid, ftype)) 
need_implementation = EINA_FALSE;
 
@@ -318,6 +321,7 @@ eo_bind_func_generate(const Eolian_Class *class, const 
Eolian_Function *funcid,
Eina_Strbuf *va_args = eina_strbuf_new();
Eina_Strbuf *params = eina_strbuf_new(); /* only variables names */
Eina_Strbuf *full_params = eina_strbuf_new(); /* variables types + names */
+   Eina_Strbuf *impl_full_params = eina_strbuf_new(); /* variables types + 
names */
Eina_Strbuf *params_init = eina_strbuf_new(); /* init of variables to 
default */
 
rettypet = eolian_function_return_type_get(funcid, ftype);
@@ -360,6 +364,8 @@ eo_bind_func_generate(const Eolian_Class *class, const 
Eolian_Function *funcid,
 eina_strbuf_append_printf(params, "%s", pname);
 eina_strbuf_append_printf(full_params, ", %s %s%s",
   ptype, pname, is_empty || is_auto?" EINA_UNUSED":"");
+eina_strbuf_append_printf(impl_full_params, ", %s %s%s",
+  ptype, pname, is_empty || is_auto?" EINA_UNUSED":"");
 eina_stringshare_del(ptype);
  }
eina_iterator_free(itr);
@@ -3

[EGIT] [core/efl] master 01/03: eo: add before and after macro hooks for API generation functions

2016-04-06 Thread Felipe Magno de Almeida
cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=944e11559c34fd342550648c2dd9b3de270d3fa8

commit 944e11559c34fd342550648c2dd9b3de270d3fa8
Author: Felipe Magno de Almeida <fel...@expertisesolutions.com.br>
Date:   Fri Mar 11 17:22:59 2016 -0300

eo: add before and after macro hooks for API generation functions

Add two parameters for macros that generate API functions in Eo so
that the generation can be customized with macros used by Eolian.

Signed-off-by: Cedric Bail <ced...@osg.samsung.com>
---
 src/bin/eolian/eo_generator.c  |   2 +-
 src/bindings/eo_cxx/eo_inherit.hh  |   2 +-
 src/lib/eo/Eo.h|  36 --
 src/tests/eo/access/access_inherit.c   |   2 +-
 src/tests/eo/access/access_simple.c|   2 +-
 .../composite_objects/composite_objects_simple.c   | 132 ++---
 src/tests/eo/constructors/constructors_mixin.c |   2 +-
 src/tests/eo/constructors/constructors_simple.c|   6 +-
 .../function_overrides_inherit2.c  |   4 +-
 .../function_overrides/function_overrides_simple.c |   8 +-
 src/tests/eo/interface/interface_interface.c   |   2 +-
 src/tests/eo/interface/interface_interface2.c  |   2 +-
 src/tests/eo/interface/interface_simple.c  |   4 +-
 src/tests/eo/mixin/mixin_mixin.c   |   2 +-
 src/tests/eo/mixin/mixin_simple.c  |   4 +-
 src/tests/eo/signals/signals_simple.c  |   2 +-
 src/tests/eo/suite/eo_test_class_simple.c  |  18 +--
 src/tests/eo/suite/eo_test_general.c   |   4 +-
 src/tests/eo/suite/eo_test_threaded_calls.c|   6 +-
 src/tests/eolian/data/class_simple_ref.c   |  10 +-
 src/tests/eolian/data/override_ref.c   |  18 +--
 21 files changed, 139 insertions(+), 129 deletions(-)

diff --git a/src/bin/eolian/eo_generator.c b/src/bin/eolian/eo_generator.c
index d718775..22efb10 100644
--- a/src/bin/eolian/eo_generator.c
+++ b/src/bin/eolian/eo_generator.c
@@ -511,7 +511,7 @@ eo_bind_func_generate(const Eolian_Class *class, const 
Eolian_Function *funcid,
 Eina_Bool ret_is_void = (!rettype || !strcmp(rettype, "void"));
 _class_func_env_create(class, eolian_function_name_get(funcid), ftype, 
_env);
 eina_strbuf_append_printf(eo_func_decl,
-  "EOAPI EO_%sFUNC_BODY%s%s(%s",
+  "EOAPI EO_%sFUNC_BODY%s%s(%s, _EO_EMPTY_HOOK, _EO_EMPTY_HOOK",
   ret_is_void?"VOID_":"", has_params?"V":"",
   (ftype == EOLIAN_PROP_GET ||
eolian_function_object_is_const(funcid) ||
diff --git a/src/bindings/eo_cxx/eo_inherit.hh 
b/src/bindings/eo_cxx/eo_inherit.hh
index a05d11f..a73de37 100644
--- a/src/bindings/eo_cxx/eo_inherit.hh
+++ b/src/bindings/eo_cxx/eo_inherit.hh
@@ -30,7 +30,7 @@ Eo_Class const* create_class(eina::index_sequence);
 /// @param this_ The user data to be passed to the resolved function.
 /// @param args An heterogeneous sequence of arguments.
 ///
-inline EO_VOID_FUNC_BODYV(inherit_constructor, EO_FUNC_CALL(this_), void* 
this_);
+inline EO_VOID_FUNC_BODYV(inherit_constructor, _EO_EMPTY_HOOK, _EO_EMPTY_HOOK, 
EO_FUNC_CALL(this_), void* this_);
 
 }
 
diff --git a/src/lib/eo/Eo.h b/src/lib/eo/Eo.h
index f890b83..4992b21 100644
--- a/src/lib/eo/Eo.h
+++ b/src/lib/eo/Eo.h
@@ -515,60 +515,70 @@ typedef struct _Eo_Call_Cache
__FILE__, __LINE__)) return DefRet;  \
  _Eo_##Name##_func _func_ = (_Eo_##Name##_func) ___call.func;   \
 
+#define _EO_EMPTY_HOOK()
+
 // to define an EAPI function
-#define _EO_FUNC_BODY(Name, ObjType, Ret, DefRet)  
   \
+#define _EO_FUNC_BODY(Name, ObjType, BeforeHook, AfterHook, Ret, DefRet) \
   Ret   \
   Name(ObjType obj)
\
   { \
  typedef Ret (*_Eo_##Name##_func)(Eo *, void *obj_data);\
  Ret _r;\
  EO_FUNC_COMMON_OP(obj, Name, DefRet);   \
+ BeforeHook()   \
  _r = _func_(___call.eo_id, ___call.data);\
  _eo_call_end(&___call); \
+ AfterHook()   \
  return _r; \
   }
 
-#define _EO_VOID_FUNC_BODY(Name, ObjType)  
\
+#define _EO_VOID_FUNC_BODY(Name, ObjType, BeforeHook, AfterHook)\
   void

  1   2   >