Summary:
OSX libs end with `.dylib`, so it made failed to load libs, for instance
dl name is `dl.dylib` making it unable to load as it was before
(`libdl.so`).
Test Plan:
Compare with master and note that this diff is able to fail on tests, and
not about importing libs.
- Configure as especified by Enlightenment man page + `-Dbindigns=mono -Ddotnet=true`:
```
meson -Dsystemd=false -Dv4l2=false -Davahi=false -Deeze=false -Dx11=false -Dopengl=full -Dcocoa=true -Dnls=false -Demotion-loaders-disabler=gstreamer1,libvlc,xine -Decore-imf-loaders-disabler=scim,ibus -Dbindigns=cxx,mono -Ddotnet=true --prefix=$PWD/prefix build
```
- Build normally
- Test `efl-mono-suite`
Reviewers: felipealmeida
Reviewed By: felipealmeida
Subscribers: stefan_schmidt, cedric, #reviewers, #committers, woohyun
Tags: #efl, #expertise_solutions
Differential Revision: https://phab.enlightenment.org/D12156
Make Get and Set methods internal for properties that get the
property syntax generated.
Reviewed-by: João Paulo Taylor Ienczak Zanette <joao.tiz@expertisesolutions.com.br>
Differential Revision: https://phab.enlightenment.org/D11252
Extension Methods' classes have methods with same names and parameters.
e.g. Text<T>(this Efl.Ui.ItemFactory<T> fac)
Although the where clause contains different classes, they cannot be
identified as different methods by C# compiler.
e.g. Text<T>(this Efl.Ui.ItemFactory<T> fac) where T : Efl.Ui.Button
e.g. Text<T>(this Efl.Ui.ItemFactory<T> fac) where T : Efl.Ui.Check
As a result, to avoid ambiguous methods, ExtensionTag should be used as
a second parameter of each method.
e.g. Text<T>(this Efl.Ui.ItemFactory<T> fac, ExtensionTag<Efl.Ui.Button, T>magic = null) where T : Efl.Ui.Button
e.g. Text<T>(this Efl.Ui.ItemFactory<T> fac, ExtensionTag<Efl.Ui.Check, T>magic = null) where T : Efl.Ui.Check
This reverts commit 76631f502a.
Summary:
Since class BindablePart and class BindableProperty use generic type
constraint as "where T : <class name>", class ExtensionTag is no longer
needed.
Reviewers: SanghyeonLee, felipealmeida, YOhoho
Reviewed By: YOhoho
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11101
Use Indexers to use brackets, eg [i], syntax.
Keys now can be used as following:
var someVal = obj.SomeProperty[key];
obj.SomeProperty[key] = someNewVal;
And for multiple keys:
var someVal = obj.SomeProperty[(key1, key2)];
obj.SomeProperty[(key1, key2)] = someNewVal;
T8384
Reviewed-by: WooHyun Jung <wh0705.jung@samsung.com>
Differential Revision: https://phab.enlightenment.org/D10791
Summary:
When passing an owned acessor from a converted collection we need a way
to unpin the passed data when the accessor is freed.
This commits adds a thin wrapper around the CArray accessor that unpins
the data when freed.
Depends on D10900
Reviewers: YOhoho, felipealmeida
Reviewed By: YOhoho
Subscribers: cedric, #reviewers, #committers, jptiz, brunobelo
Tags: #efl
Maniphest Tasks: T8486
Differential Revision: https://phab.enlightenment.org/D10901
Summary:
For eldbus.Proxy.Send, as the native function takes ownership of the
message, we Ref it so it can still be used afterwards.
Ref T8423
Reviewers: brunobelo, felipealmeida, YOhoho
Reviewed By: brunobelo
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8423
Differential Revision: https://phab.enlightenment.org/D10670
Summary:
CoreCLR, the runtime of dotnet, has some issues regarding storing
environment variables (see dotnet/coreclr issue #15812), keeping them in
a local cache instead of flushing to the native `setenv`.
This commit replaces the usage of
`System.Environment.SetEnvironmentVariable` with a `setenv` wrapper.
Test Plan: Run without DISPLAY set and with dotnet.
Reviewers: felipealmeida, brunobelo, segfaultxavi, YOhoho
Reviewed By: brunobelo
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10619
Summary:
Instead of building with a patched meson version, make use of custom
targets and generated csproj files so we can used upstream meson
normally.
This avoids digging into "non official" dotnet stuff like calling
the CSC.dll directly that the patched meson tried to do.
To enable, run meson with `-Ddotnet=true`.
Regarding source file dependencies, Meson has a limitation[1]
about generated artifacts being placed in subdirectories.
In order to correctly track these generated artifacts for dotnet, we
generated them in the same folder as the csproj file through
`dotnet build -o`.
Instead of installing the dll like we do for mono, a nupkg is generated
and installed in the same folder as the dll would be
(<prefix>/lib/x86_64-linux-gnu/efl-mono-1)
To avoid messing around with Nupkg caches, we reference the source
project for the library directly instead of the nupkg when building the
test suite.
[1] https://github.com/mesonbuild/meson/issues/2320
Fixes T8168
Reviewers: bu5hm4n, woohyun, Jaehyun_Cho
Reviewed By: Jaehyun_Cho
Subscribers: cedric, brunobelo, felipealmeida, segfaultxavi
Tags: #efl, #do_not_merge
Maniphest Tasks: T8168
Differential Revision: https://phab.enlightenment.org/D9717
Summary:
C# bindings will be lincensed under Apache Sofware License 2.0.
This commit adds the license text to the licenses folder and a copyright
notice to the binding files.
Fixes T8039
Reviewers: woohyun, felipealmeida, vitor.sousa
Reviewed By: felipealmeida
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8039
Differential Revision: https://phab.enlightenment.org/D9414
Summary:
C# language binding generates C# method name beginning with verb by
checking verb list in name_helpers.hh.
Some verbs used in eo method are missing in the current verb list. So
they are added into the verb list.
In this scheme, there is a problem that some words can be used as a verb
in some methods but they also can be used as a noun in other methods.
(e.g. drag_start as a verb / cursor_word_start as a noun)
So "start" and "scroll" are not added to verb list in this patch.
To resolve the above problem, we may need a new eo syntax to rename or
reverse the name in language bindings.
Test Plan: Check C# method names in .eo.cs files if the name begins with verb.
Reviewers: felipealmeida, SanghyeonLee, woohyun, Jaehyun_Cho, segfaultxavi
Reviewed By: segfaultxavi
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10001
Summary:
Eolian allows non-public members in interfaces and mixins (usually
@protected). As both kinds are converted to C# interfaces, this
causes problem as non-public members are forbidden in C# interfaces.
This commit changes eolian_mono by removing those members from the C#
interfaces. If a generated class implements the interface, the method is
generated as if it were a protected member of the class directly.
For mixed properties like `Efl.Io.Reader.CanRead { get; set @protected; }`,
the interface has only the public getter and the the implementing class has both
the public getter and the protected setter.
With this, C# devs won't be able to directly implement protected Eo
methods from interfaces. (But this really does not make sense from the
C# point of view).
ref T7494
Reviewers: segfaultxavi, felipealmeida, YOhoho
Reviewed By: YOhoho
Subscribers: cedric, brunobelo, Jaehyun_Cho, #reviewers, woohyun, #committers
Tags: #efl
Maniphest Tasks: T7494
Differential Revision: https://phab.enlightenment.org/D9800
Summary:
C#'s factory must inherit from `LayoutFactory` so we can access its
implementation of `FactoryBind`.
Depends on D9759 to avoid test failure on PropertyBound events.
Reviewers: felipealmeida, cedric, SanghyeonLee
Reviewed By: SanghyeonLee
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9760