summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLauro Moura <lauromoura@expertisesolutions.com.br>2017-11-23 22:10:05 -0300
committerFelipe Magno de Almeida <felipe@expertisesolutions.com.br>2017-11-29 23:06:07 -0200
commit9b2e5bda366608e6996615068467f35f2e368d36 (patch)
tree03b3f31a339b7d7453516522354da323231b125e
parent1da192290f5785a7b2aabdb81842e970cb62f115 (diff)
efl_mono: Add buildystem integration.
The C# bindings are built using the --enable-csharp-bindings (disabled by default).
-rw-r--r--.gitignore2
-rw-r--r--Makefile.am14
-rw-r--r--configure.ac130
-rw-r--r--m4/efl_mono.m495
-rw-r--r--pc/.gitignore1
-rw-r--r--pc/efl-mono.pc.in15
-rw-r--r--src/Makefile.am5
-rw-r--r--src/Makefile_Efl_Mono.am365
-rw-r--r--src/Makefile_Efl_Mono_MSBuild_Gen_Helper.am17
-rw-r--r--src/Makefile_Eolian_Mono_Helper.am17
-rw-r--r--src/examples/eina/Makefile.am56
-rw-r--r--src/examples/elementary/Makefile.am24
-rw-r--r--src/examples/evas/Makefile.am55
13 files changed, 796 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index c10b14de45..b0fe06ce2a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -37,6 +37,8 @@ tags
37*.eo.hh 37*.eo.hh
38*.eo.impl.hh 38*.eo.impl.hh
39*.eo.js.cc 39*.eo.js.cc
40*.eo.cs
41*.eot.cs
40*.eo.lua 42*.eo.lua
41*.luac 43*.luac
42.dir-locals.el 44.dir-locals.el
diff --git a/Makefile.am b/Makefile.am
index 8fb921c734..8fd7776ff6 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -188,6 +188,11 @@ pc/eo-js.pc \
188pc/eina-js.pc 188pc/eina-js.pc
189endif 189endif
190 190
191if HAVE_CSHARP
192pkgconfig_DATA += \
193pc/efl-mono.pc
194endif
195
191if BUILD_ENGINE_SOFTWARE_X11 196if BUILD_ENGINE_SOFTWARE_X11
192pkgconfig_DATA += pc/evas-software-x11.pc 197pkgconfig_DATA += pc/evas-software-x11.pc
193endif 198endif
@@ -434,6 +439,15 @@ EXTRA_DIST += $(systemdunits_DATA)
434 439
435.PHONY: doc benchmark examples install-examples 440.PHONY: doc benchmark examples install-examples
436 441
442# MSBuild C Sharp projects generation:
443
444if HAVE_CSHARP
445
446msbuildcsprojs:
447 @$(MAKE) $(AM_MAKEFLAGS) -C src msbuildcsprojs
448
449endif
450
437# Documentation 451# Documentation
438 452
439doc: 453doc:
diff --git a/configure.ac b/configure.ac
index 003190ba26..69ea681848 100644
--- a/configure.ac
+++ b/configure.ac
@@ -163,6 +163,7 @@ EFL_WITH_BIN([eet], [eet-eet])
163EFL_WITH_BIN([edje], [edje-cc]) 163EFL_WITH_BIN([edje], [edje-cc])
164EFL_WITH_BIN([eolian], [eolian-gen]) 164EFL_WITH_BIN([eolian], [eolian-gen])
165EFL_WITH_BIN([eolian_cxx], [eolian-cxx]) 165EFL_WITH_BIN([eolian_cxx], [eolian-cxx])
166EFL_WITH_BIN([eolian_mono], [eolian-mono])
166EFL_WITH_BIN([eolian-js], [eolian-js]) 167EFL_WITH_BIN([eolian-js], [eolian-js])
167EFL_WITH_BIN_SUFFIX([elua], [elua], [_bin]) 168EFL_WITH_BIN_SUFFIX([elua], [elua], [_bin])
168EFL_WITH_BIN([eldbus], [eldbus_codegen]) 169EFL_WITH_BIN([eldbus], [eldbus_codegen])
@@ -329,6 +330,7 @@ AC_LANG(C)
329AC_PROG_CC_C99 330AC_PROG_CC_C99
330AM_PROG_CC_C_O 331AM_PROG_CC_C_O
331AC_PROG_SED 332AC_PROG_SED
333AC_PROG_MCS
332 334
333AM_CONDITIONAL([BUILD_EFL_NATIVE], [test "x${cross_compiling}" = "xno"]) 335AM_CONDITIONAL([BUILD_EFL_NATIVE], [test "x${cross_compiling}" = "xno"])
334 336
@@ -1329,6 +1331,129 @@ EFL_EVAL_PKGS([EO_JS])
1329EFL_LIB_END_OPTIONAL([Eo_Js]) 1331EFL_LIB_END_OPTIONAL([Eo_Js])
1330#### End of Eo JS 1332#### End of Eo JS
1331 1333
1334#### Efl C Sharp Bindings
1335
1336want_csharp="no"
1337AC_ARG_ENABLE([csharp-bindings],
1338 [AS_HELP_STRING([--enable-csharp-bindings],[enable C Sharp bindings. @<:@default=disabled@:>@])],
1339 [
1340 if test "x${enableval}" = "xyes" ; then
1341 want_csharp="yes"
1342 else
1343 want_csharp="no"
1344 fi
1345 ],
1346 [want_csharp="no"])
1347
1348if test "x${want_csharp}" = "xyes" -a "x${HAVE_MCS}" != "x1"; then
1349 want_csharp="no"
1350 AC_MSG_ERROR([C Sharp bindings requested but C Sharp compiler could not be found])
1351fi
1352
1353AM_CONDITIONAL([HAVE_CSHARP], [test "x${want_csharp}" = "xyes"])
1354AC_DEFINE_IF([HAVE_CSHARP], [test "x${want_csharp}" = "xyes"],
1355 [1], [Compiling bindings for C Sharp])
1356AC_SUBST([want_csharp])
1357
1358# Efl Mono
1359EFL_LIB_START_OPTIONAL([Efl_Mono], [test "x${want_csharp}" = "xyes"])
1360
1361EFL_PLATFORM_DEPEND([EFL_MONO], [evil])
1362EFL_INTERNAL_DEPEND_PKG([EFL_MONO], [Eina])
1363EFL_INTERNAL_DEPEND_PKG([EFL_MONO], [Eo])
1364EFL_INTERNAL_DEPEND_PKG([EFL_MONO], [Ecore])
1365EFL_INTERNAL_DEPEND_PKG([EFL_MONO], [Eet])
1366EFL_INTERNAL_DEPEND_PKG([EFL_MONO], [Ecore_Evas])
1367EFL_INTERNAL_DEPEND_PKG([EFL_MONO], [Ecore_Con])
1368EFL_INTERNAL_DEPEND_PKG([EFL_MONO], [Ecore_Audio])
1369EFL_INTERNAL_DEPEND_PKG([EFL_MONO], [Efl])
1370EFL_INTERNAL_DEPEND_PKG([EFL_MONO], [Evas])
1371EFL_INTERNAL_DEPEND_PKG([EFL_MONO], [Edje])
1372EFL_INTERNAL_DEPEND_PKG([EFL_MONO], [Emotion])
1373EFL_INTERNAL_DEPEND_PKG([EFL_MONO], [Eldbus])
1374EFL_INTERNAL_DEPEND_PKG([EFL_MONO], [Emile])
1375EFL_INTERNAL_DEPEND_PKG([EFL_MONO], [Ethumb])
1376EFL_INTERNAL_DEPEND_PKG([EFL_MONO], [Ethumb_Client])
1377EFL_INTERNAL_DEPEND_PKG([EFL_MONO], [Eio])
1378EFL_INTERNAL_DEPEND_PKG([EFL_MONO], [Elementary])
1379EFL_INTERNAL_DEPEND_PKG([EFL_MONO], [Efl_Custom_Exports_Mono])
1380
1381EFL_EVAL_PKGS([EFL_MONO])
1382
1383EFL_LIB_END_OPTIONAL([Efl_Mono])
1384
1385# Efl Custom Exports Mono
1386EFL_LIB_START_OPTIONAL([Efl_Custom_Exports_Mono], [test "x${want_csharp}" = "xyes"])
1387
1388EFL_PLATFORM_DEPEND([EFL_CUSTOM_EXPORTS_MONO], [evil])
1389EFL_INTERNAL_DEPEND_PKG([EFL_CUSTOM_EXPORTS_MONO], [Eina])
1390EFL_INTERNAL_DEPEND_PKG([EFL_CUSTOM_EXPORTS_MONO], [Eo])
1391EFL_INTERNAL_DEPEND_PKG([EFL_CUSTOM_EXPORTS_MONO], [Efl])
1392EFL_INTERNAL_DEPEND_PKG([EFL_CUSTOM_EXPORTS_MONO], [Eldbus])
1393
1394EFL_EVAL_PKGS([EFL_CUSTOM_EXPORTS_MONO])
1395
1396EFL_LIB_END_OPTIONAL([Efl_Custom_Exports_Mono])
1397
1398# Libtool versioning stuff.
1399# On windows, the version of the library goes into the filename.
1400# See https://autotools.io/libtool/windows.html#libtool.windows.version
1401# Based on the current:revision:age string passed to libtool, the generated suffix
1402# has the value of (current - age).
1403# To get the current and age, we use the same calculation from m4/efl.m4 (lt_cur, lt_age)
1404DLIB_PREFIX_MONO=""
1405DLIB_SUFFIX_MONO=""
1406if test "x${have_windows}" = "xyes"; then
1407 DLIB_PREFIX_MONO="lib"
1408 if test "x${EFL_VERSION_MAJOR}" = "x1"; then
1409 DLIB_SUFFIX_MONO="-${EFL_VERSION_MAJOR}"
1410 else
1411 DLIB_SUFFIX_MONO="-${EFL_VERSION_MAJOR}00"
1412 fi
1413fi
1414AC_SUBST([DLIB_PREFIX_MONO])
1415AC_SUBST([DLIB_SUFFIX_MONO])
1416
1417EFL_DL_MONO="${DLIB_PREFIX_MONO}efl${DLIB_SUFFIX_MONO}";
1418ECORE_DL_MONO="${DLIB_PREFIX_MONO}ecore${DLIB_SUFFIX_MONO}";
1419EINA_DL_MONO="${DLIB_PREFIX_MONO}eina${DLIB_SUFFIX_MONO}"
1420EO_DL_MONO="${DLIB_PREFIX_MONO}eo${DLIB_SUFFIX_MONO}"
1421EVAS_DL_MONO="${DLIB_PREFIX_MONO}evas${DLIB_SUFFIX_MONO}"
1422if test "x${have_windows}" = "xyes"; then
1423 EVIL_DL_MONO="${DLIB_PREFIX_MONO}evil${DLIB_SUFFIX_MONO}"
1424else
1425 EVIL_DL_MONO="dl"
1426fi
1427ECORE_EVAS_DL_MONO="${DLIB_PREFIX_MONO}ecore_evas${DLIB_SUFFIX_MONO}"
1428EDJE_DL_MONO="${DLIB_PREFIX_MONO}edje${DLIB_SUFFIX_MONO}"
1429ELEMENTARY_DL_MONO="${DLIB_PREFIX_MONO}elementary${DLIB_SUFFIX_MONO}"
1430ELDBUS_DL_MONO="${DLIB_PREFIX_MONO}eldbus${DLIB_SUFFIX_MONO}"
1431CUSTOM_EXPORTS_MONO_DL_MONO="${DLIB_PREFIX_MONO}eflcustomexportsmono${DLIB_SUFFIX_MONO}"
1432
1433AC_SUBST([EFL_DL_MONO])
1434AC_SUBST([ECORE_DL_MONO])
1435AC_SUBST([EINA_DL_MONO])
1436AC_SUBST([EO_DL_MONO])
1437AC_SUBST([EVAS_DL_MONO])
1438AC_SUBST([EVIL_DL_MONO])
1439AC_SUBST([ECORE_EVAS_DL_MONO])
1440AC_SUBST([EDJE_DL_MONO])
1441AC_SUBST([ELEMENTARY_DL_MONO])
1442AC_SUBST([ELDBUS_DL_MONO])
1443AC_SUBST([CUSTOM_EXPORTS_MONO_DL_MONO])
1444
1445# Eos file/library mapping
1446
1447# Unescaped sed pattern: sed -n 's/src\/lib\/\([a-z0-9_]*\)\/[a-z\/]*\/\([a-z0-9\._]*\)/\2,\1/pg'
1448_configure_path=`realpath $0`
1449efl_mono_top_srcdir=`dirname ${_configure_path}`
1450EFL_MONO_LIBRARY_MAP=`find ${efl_mono_top_srcdir}/src/lib/ -iname "*\.eo" | sed -n 's/.*\/src\/lib\/\(@<:@a-z0-9_@:>@*\)@<:@\/a-z@:>@*\/\(@<:@a-z0-9\._@:>@*\)/\2,\1/pg'`
1451
1452AC_SUBST([EFL_MONO_LIBRARY_MAP])
1453AM_SUBST_NOTMAKE([EFL_MONO_LIBRARY_MAP])
1454
1455#### End of Efl C Sharp Bindings
1456
1332#### Eo 1457#### Eo
1333 1458
1334EFL_LIB_START([Eo]) 1459EFL_LIB_START([Eo])
@@ -5560,6 +5685,8 @@ doc/Doxyfile
5560doc/previews/Makefile 5685doc/previews/Makefile
5561doc/widgets/Makefile 5686doc/widgets/Makefile
5562src/Makefile 5687src/Makefile
5688src/bindings/mono/efl_mono/efl_libs.cs
5689src/bindings/mono/efl_mono/efl_libs.csv
5563src/benchmarks/eina/Makefile 5690src/benchmarks/eina/Makefile
5564src/benchmarks/eo/Makefile 5691src/benchmarks/eo/Makefile
5565src/benchmarks/evas/Makefile 5692src/benchmarks/evas/Makefile
@@ -5578,6 +5705,7 @@ src/examples/emile/Makefile
5578src/examples/ethumb_client/Makefile 5705src/examples/ethumb_client/Makefile
5579src/examples/elua/Makefile 5706src/examples/elua/Makefile
5580src/examples/eolian_cxx/Makefile 5707src/examples/eolian_cxx/Makefile
5708src/examples/efl_mono/Makefile
5581src/examples/elocation/Makefile 5709src/examples/elocation/Makefile
5582src/examples/elementary/Makefile 5710src/examples/elementary/Makefile
5583src/lib/eina/eina_config.h 5711src/lib/eina/eina_config.h
@@ -5603,6 +5731,7 @@ pc/eolian-js.pc
5603pc/eo-js.pc 5731pc/eo-js.pc
5604pc/efl.pc 5732pc/efl.pc
5605pc/efl-cxx.pc 5733pc/efl-cxx.pc
5734pc/efl-mono.pc
5606pc/efl-wl.pc 5735pc/efl-wl.pc
5607pc/efl-core.pc 5736pc/efl-core.pc
5608pc/efl-net.pc 5737pc/efl-net.pc
@@ -5789,6 +5918,7 @@ echo " Cryptography..: ${build_crypto}"
5789echo " X11...........: ${with_x11}" 5918echo " X11...........: ${with_x11}"
5790echo " OpenGL........: ${with_opengl} ${opengl_egl}" 5919echo " OpenGL........: ${with_opengl} ${opengl_egl}"
5791echo " C++11.........: ${have_cxx11}" 5920echo " C++11.........: ${have_cxx11}"
5921echo " C#............: ${want_csharp}"
5792echo " JavaScript....: ${want_js}" 5922echo " JavaScript....: ${want_js}"
5793echo " JavaScript flg: $EINA_JS_LIBS" 5923echo " JavaScript flg: $EINA_JS_LIBS"
5794echo "Eina............: yes (${features_eina} unwind=$have_unwind)" 5924echo "Eina............: yes (${features_eina} unwind=$have_unwind)"
diff --git a/m4/efl_mono.m4 b/m4/efl_mono.m4
new file mode 100644
index 0000000000..807526ee24
--- /dev/null
+++ b/m4/efl_mono.m4
@@ -0,0 +1,95 @@
1# # ============================================================================
2# # http://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx_11.html
3# # ============================================================================
4# #
5# # SYNOPSIS
6# #
7# # AX_CXX_COMPILE_STDCXX_11([ext|noext],[mandatory|optional])
8# #
9# # DESCRIPTION
10# #
11# # Check for baseline language coverage in the compiler for the C++11
12# # standard; if necessary, add switches to CXXFLAGS to enable support.
13# #
14# # The first argument, if specified, indicates whether you insist on an
15# # extended mode (e.g. -std=gnu++11) or a strict conformance mode (e.g.
16# # -std=c++11). If neither is specified, you get whatever works, with
17# # preference for an extended mode.
18# #
19# # The second argument, if specified 'mandatory' or if left unspecified,
20# # indicates that baseline C++11 support is required and that the macro
21# # should error out if no mode with that support is found. If specified
22# # 'optional', then configuration proceeds regardless, after defining
23# # HAVE_CXX11 if and only if a supporting mode is found.
24# #
25# # LICENSE
26# #
27# # Copyright (c) 2016 Felipe Magno de Almeida <felipe@expertisesolutions.com.br>
28# #
29# # Copying and distribution of this file, with or without modification, are
30# # permitted in any medium without royalty provided the copyright notice
31# # and this notice are preserved. This file is offered as-is, without any
32# # warranty.
33
34# AC_LANG(CSHARP)
35# -----------
36AC_LANG_DEFINE([CSHARP], [csharp], [MCS], [],
37[ac_ext=cs
38ac_compile='$MCS $MCSFLAGS conftest.$ac_ext >&AS_MESSAGE_LOG_FD'
39])
40
41AU_DEFUN([AC_LANG_CSHARP], [AC_LANG(CSHARP)])
42
43m4_define([AC_LANG_PROGRAM(CSHARP)],
44[$1
45class MyClass
46{
47 static void Main(string[] args)
48 {
49 $2
50 }
51}])
52
53AC_DEFUN([AC_LANG_COMPILER(CSHARP)],
54[AC_REQUIRE([AC_PROG_MCS])])
55
56AN_MAKEVAR([MCS], [AC_PROG_MCS])
57AN_PROGRAM([mcs], [AC_PROG_MCS])
58AC_DEFUN([AC_PROG_MCS],
59[AC_LANG_PUSH(CSHARP)dnl
60AC_ARG_VAR([MCS], [MCS (C#) compiler command])dnl
61AC_ARG_VAR([MCSFLAGS], [MCS (C#) compiler flags])dnl
62dnl _AC_ARG_VAR_LDFLAGS()dnl
63m4_ifval([$1],
64 [AC_CHECK_TOOLS(MCS, [$1])],
65[AC_CHECK_TOOL(MCS, mcs)
66if test -z "$MCS"; then
67 if test -n "$ac_tool_prefix"; then
68 AC_CHECK_PROG(MCS, [${ac_tool_prefix}mcs], [$ac_tool_prefix}mcs])
69 fi
70fi
71if test -z "$MCS"; then
72 AC_CHECK_PROG(MCS, mcs, mcs, , , false)
73fi
74if test -z "$MCS"; then
75 HAVE_MCS=0
76 AC_MSG_NOTICE([No C sharp compiler was found])
77else
78 HAVE_MCS=1
79 AC_DEFINE(HAVE_MCS,1,
80 [define if the MCS compiler is available])
81fi
82AC_SUBST(HAVE_MCS)
83])
84
85# Provide some information about the compiler.
86_AS_ECHO_LOG([checking for _AC_LANG compiler version])
87set X $ac_compile
88ac_compiler=$[2]
89_AC_DO_LIMIT([$ac_compiler --version >&AS_MESSAGE_LOG_FD])
90m4_expand_once([_AC_COMPILER_EXEEXT])[]dnl
91m4_expand_once([_AC_COMPILER_OBJEXT])[]dnl
92AC_LANG_POP(CSHARP)dnl
93])# AC_PROG_MCS
94
95
diff --git a/pc/.gitignore b/pc/.gitignore
index 5657ab6a68..8756bce99d 100644
--- a/pc/.gitignore
+++ b/pc/.gitignore
@@ -70,6 +70,7 @@
70/elua.pc 70/elua.pc
71/emile.pc 71/emile.pc
72/efl-js.pc 72/efl-js.pc
73/efl-mono.pc
73/elementary-cxx.pc 74/elementary-cxx.pc
74/elput.pc 75/elput.pc
75/ecore-drm2.pc 76/ecore-drm2.pc
diff --git a/pc/efl-mono.pc.in b/pc/efl-mono.pc.in
new file mode 100644
index 0000000000..8b4a147af3
--- /dev/null
+++ b/pc/efl-mono.pc.in
@@ -0,0 +1,15 @@
1prefix=@prefix@
2exec_prefix=@exec_prefix@
3libdir=@libdir@
4includedir=@includedir@
5datarootdir=@datarootdir@
6datadir=@datadir@
7
8#variable to be used with meson
9mono_libs=-r:@prefix@/bin/libefl_mono.dll
10
11Name: EFL-Mono
12Description: EFL's C-Sharp bindings
13Version: @PACKAGE_VERSION@
14Libs: -r:${prefix}/bin/libefl_mono.dll
15
diff --git a/src/Makefile.am b/src/Makefile.am
index 74ec6cdb2b..dffa069ab3 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -77,6 +77,7 @@ include Makefile_efl_wl.am
77 77
78include Makefile_Cxx.am 78include Makefile_Cxx.am
79include Makefile_Eolian_Cxx.am 79include Makefile_Eolian_Cxx.am
80include Makefile_Efl_Mono.am
80 81
81include Makefile_Elua.am 82include Makefile_Elua.am
82 83
@@ -140,6 +141,10 @@ if HAVE_CXX11
140EXAMPLES_SUBDIRS += $(EXAMPLES_CXX) 141EXAMPLES_SUBDIRS += $(EXAMPLES_CXX)
141endif 142endif
142 143
144if HAVE_CSHARP
145EXAMPLES_SUBDIRS += examples/efl_mono
146endif
147
143if ALWAYS_BUILD_EXAMPLES 148if ALWAYS_BUILD_EXAMPLES
144SUBDIRS += . $(EXAMPLES_SUBDIRS) 149SUBDIRS += . $(EXAMPLES_SUBDIRS)
145endif 150endif
diff --git a/src/Makefile_Efl_Mono.am b/src/Makefile_Efl_Mono.am
new file mode 100644
index 0000000000..3101be5ca8
--- /dev/null
+++ b/src/Makefile_Efl_Mono.am
@@ -0,0 +1,365 @@
1if HAVE_CSHARP
2
3bin_PROGRAMS += bin/eolian_mono/eolian_mono
4
5bin_eolian_mono_eolian_mono_SOURCES = \
6 bin/eolian_mono/eolian_mono.cc
7bin_eolian_mono_eolian_mono_CXXFLAGS = -I$(top_builddir)/src/lib/efl \
8-I$(top_srcdir)/src/lib/eolian_cxx/ \
9-I$(top_srcdir)/src/bin/eolian_mono/ \
10@CHECK_CFLAGS@ @EINA_CFLAGS@ @EINA_CXX_CFLAGS@ @EO_CXX_CFLAGS@ @ECORE_CXX_CFLAGS@ @EO_CFLAGS@ \
11-I$(top_srcdir)/src/bindings/cxx/eina_cxx \
12@EOLIAN_CXX_CFLAGS@ @EOLIAN_CFLAGS@
13
14bin_eolian_mono_eolian_mono_LDADD = @CHECK_LIBS@ @USE_EOLIAN_LIBS@
15
16bin_eolian_mono_eolian_mono_DEPENDENCIES = @USE_EOLIAN_INTERNAL_LIBS@
17
18# Helper for other modules using Eolian_Mono, include only after Makefile_Eolian_Helper.am
19include Makefile_Eolian_Mono_Helper.am
20
21### Efl C Sharp Binding
22
23evas_eolian_blacklisted_files = \
24lib/evas/canvas/efl_canvas_text.eo.cs \
25lib/evas/canvas/efl_canvas_scene3d.eo.cs \
26lib/evas/canvas/evas_canvas3d_camera.eo.cs \
27lib/evas/canvas/evas_canvas3d_light.eo.cs \
28lib/evas/canvas/evas_canvas3d_material.eo.cs \
29lib/evas/canvas/evas_canvas3d_mesh.eo.cs \
30lib/evas/canvas/evas_canvas3d_node.eo.cs \
31lib/evas/canvas/evas_canvas3d_object.eo.cs \
32lib/evas/canvas/evas_canvas3d_primitive.eo.cs \
33lib/evas/canvas/evas_canvas3d_scene.eo.cs \
34lib/evas/canvas/evas_canvas3d_texture.eo.cs \
35lib/evas/canvas/efl_canvas_vg.eo.cs \
36lib/evas/canvas/efl_vg.eo.cs \
37lib/evas/canvas/efl_vg_container.eo.cs \
38lib/evas/canvas/efl_vg_gradient.eo.cs \
39lib/evas/canvas/efl_vg_gradient_radial.eo.cs \
40lib/evas/canvas/efl_vg_gradient_linear.eo.cs \
41lib/evas/canvas/efl_vg_root_node.eo.cs \
42lib/evas/canvas/efl_vg_shape.eo.cs
43
44efl_eolian_blacklisted_files = \
45lib/efl/interfaces/efl_io_buffer.eo.cs \
46lib/efl/interfaces/efl_io_closer.eo.cs \
47lib/efl/interfaces/efl_io_positioner.eo.cs \
48lib/efl/interfaces/efl_io_queue.eo.cs \
49lib/efl/interfaces/efl_io_reader.eo.cs \
50lib/efl/interfaces/efl_io_sizer.eo.cs \
51lib/efl/interfaces/efl_io_writer.eo.cs \
52lib/efl/interfaces/efl_text_properties.eo.cs \
53lib/efl/interfaces/efl_gfx_buffer.eo.cs \
54lib/efl/interfaces/efl_gfx_shape.eo.cs \
55lib/efl/interfaces/efl_gfx_gradient.eo.cs \
56lib/efl/interfaces/efl_gfx_gradient_linear.eo.cs \
57lib/efl/interfaces/efl_gfx_gradient_radial.eo.cs
58
59ecore_eolian_blacklisted_files = \
60lib/ecore/efl_io_closer_fd.eo.cs \
61lib/ecore/efl_io_buffered_stream.eo.cs \
62lib/ecore/efl_io_positioner_fd.eo.cs \
63lib/ecore/efl_io_reader_fd.eo.cs \
64lib/ecore/efl_io_writer_fd.eo.cs \
65lib/ecore/efl_io_copier_fd.eo.cs \
66lib/ecore/efl_io_sizer_fd.eo.cs \
67lib/ecore/efl_io_stdin.eo.cs \
68lib/ecore/efl_io_stdout.eo.cs \
69lib/ecore/efl_io_stderr.eo.cs \
70lib/ecore/efl_io_file.eo.cs \
71lib/ecore/efl_io_copier.eo.cs
72
73eo_eolian_blacklisted_files = \
74lib/eo/efl_object_override.eo.cs
75
76elementary_eolian_blacklisted_files = \
77lib/elementary/elm_web.eo.cs \
78lib/elementary/elm_map.eo.cs \
79lib/elementary/elm_combobox.eo.cs \
80lib/elementary/elm_list.eo.cs \
81lib/elementary/elm_genlist.eo.cs \
82lib/elementary/elm_view_list.eo.cs \
83lib/elementary/elm_genlist_item.eo.cs \
84lib/elementary/elm_gengrid.eo.cs \
85lib/elementary/elm_glview.eo.cs
86
87efl_eolian_mono_files = \
88$(filter-out $(eo_eolian_blacklisted_files),$(eo_eolian_files:%.eo=%.eo.cs)) \
89$(filter-out $(ecore_eolian_blacklisted_files),$(ecore_eolian_files_public:%.eo=%.eo.cs)) \
90$(ecore_eolian_type_files:%.eot=%.eot.cs) \
91$(filter-out $(efl_eolian_blacklisted_files),$(efl_eolian_files:%.eo=%.eo.cs)) \
92$(filter-out $(edje_eolian_blacklisted_files),$(edje_eolian_files:%.eo=%.eo.cs)) \
93$(filter-out $(elementary_eolian_blacklisted_files),$(elm_public_eolian_files:%.eo=%.eo.cs)) \
94$(efl_eolian_type_files:%.eot=%.eot.cs) \
95$(edje_eolian_type_files:%.eot=%.eot.cs) \
96$(elm_eolian_type_files:%.eot=%.eot.cs) \
97$(filter-out $(evas_eolian_blacklisted_files),$(evas_canvas_eolian_pub_files:%.eo=%.eo.cs)) \
98lib/evas/canvas/evas_box.eo.cs \
99lib/evas/canvas/evas_image.eo.cs \
100lib/evas/canvas/efl_canvas_image.eo.cs \
101lib/evas/canvas/evas_table.eo.cs \
102lib/evas/canvas/evas_text.eo.cs \
103lib/efl/interfaces/efl_text_properties.eo.cs \
104$(evas_canvas_eolian_type_files:%.eot=%.eot.cs) \
105lib/eo/eina_types.eot.cs
106
107installed_eflmonomainheadersdir = $(includedir)/efl-mono-@VMAJ@/
108nodist_installed_eflmonomainheaders_DATA = $(efl_eolian_files:%.eo=%.eo.cs)
109
110CLEANFILES += $(efl_eolian_mono_files)
111
112if HAVE_WIN32
113
114MCS_FLAGS := $(MCS_FLAGS)
115MCS_FLAGS += -define:WIN32
116
117endif
118
119# Efl Custom Exports Mono auxiliary library
120efl_custom_exports_mono_files = \
121 lib/efl_mono/efl_custom_exports_mono.c
122
123lib_LTLIBRARIES += \
124lib/efl_mono/libeflcustomexportsmono.la
125
126lib_efl_mono_libeflcustomexportsmono_la_SOURCES = \
127 $(efl_custom_exports_mono_files)
128
129lib_efl_mono_libeflcustomexportsmono_la_CPPFLAGS = \
130-DEFL_BETA_API_SUPPORT \
131-I$(top_builddir)/src/lib/efl \
132@EFL_CUSTOM_EXPORTS_MONO_CFLAGS@
133lib_efl_mono_libeflcustomexportsmono_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@
134lib_efl_mono_libeflcustomexportsmono_la_LIBADD = @EFL_CUSTOM_EXPORTS_MONO_LIBS@
135lib_efl_mono_libeflcustomexportsmono_la_DEPENDENCIES = @EFL_CUSTOM_EXPORTS_MONO_INTERNAL_LIBS@
136
137#Efl Mono - C Sharp binding library
138bin_PROGRAMS += lib/efl_mono/libefl_mono.dll
139
140efl_eo_mono_files = \
141 bindings/mono/eo_mono/object.cs \
142 bindings/mono/eo_mono/iwrapper.cs \
143 bindings/mono/eo_mono/workaround.cs
144
145efl_eina_mono_files = \
146 bindings/mono/eina_mono/eina_config.cs \
147 bindings/mono/eina_mono/eina_array.cs \
148 bindings/mono/eina_mono/eina_hash.cs \
149 bindings/mono/eina_mono/eina_list.cs \
150 bindings/mono/eina_mono/eina_inarray.cs \
151 bindings/mono/eina_mono/eina_inlist.cs \
152 bindings/mono/eina_mono/eina_iterator.cs \
153 bindings/mono/eina_mono/eina_container_common.cs \
154 bindings/mono/eina_mono/eina_common.cs \
155 bindings/mono/eina_mono/eina_log.cs \
156 bindings/mono/eina_mono/eina_binbuf.cs \
157 bindings/mono/eina_mono/eina_slice.cs \
158 bindings/mono/eina_mono/eina_stringshare.cs \
159 bindings/mono/eina_mono/eina_error.cs \
160 bindings/mono/eina_mono/eina_value.cs
161
162efl_eldbus_mono_files = \
163 bindings/mono/eldbus_mono/eldbus_common.cs \
164 bindings/mono/eldbus_mono/eldbus_config.cs \
165 bindings/mono/eldbus_mono/eldbus_connection.cs \
166 bindings/mono/eldbus_mono/eldbus_message.cs \
167 bindings/mono/eldbus_mono/eldbus_object.cs \
168 bindings/mono/eldbus_mono/eldbus_pending.cs \
169 bindings/mono/eldbus_mono/eldbus_proxy.cs \
170 bindings/mono/eldbus_mono/eldbus_service.cs
171
172efl_ecore_evas_mono_files = \
173 bindings/mono/ecore_evas_mono/ecore_evas.cs
174
175lib_efl_mono_libefl_mono_dll_SOURCES = \
176 $(builddir)/bindings/mono/efl_mono/efl_all.cs \
177 bindings/mono/efl_mono/efl_libs.cs \
178 $(efl_eo_mono_files) \
179 $(efl_eina_mono_files) \
180 $(efl_eldbus_mono_files) \
181 $(efl_ecore_evas_mono_files)
182
183lib/efl_mono/libefl_mono.dll$(EXEEXT): $(lib_efl_mono_libefl_mono_dll_SOURCES) lib/efl_mono/$(am__dirstamp) $(efl_eolian_mono_files)
184 @rm -f lib/efl_mono/libefl_mono.dll$(EXEEXT)
185 $(AM_V_MCS) $(MCS) $(MCS_FLAGS) -out:$@ -t:library $(filter %.cs, $(^))
186
187### MSBuild
188
189bin_PROGRAMS += bin/efl_mono_msbuild_gen/efl_mono_msbuild_gen
190
191bin_efl_mono_msbuild_gen_efl_mono_msbuild_gen_SOURCES = \
192 bin/efl_mono_msbuild_gen/main.cc
193
194bin_efl_mono_msbuild_gen_efl_mono_msbuild_gen_CXXFLAGS = \
195 -I$(top_srcdir)/src/lib/efl \
196 -I$(top_builddir)/src/lib/efl \
197 -I$(top_srcdir)/src/lib/eolian_cxx/ \
198 -I$(top_srcdir)/src/bindings/cxx/eina_cxx \
199 @EINA_CFLAGS@ @EINA_CXX_CFLAGS@ @EO_CXX_CFLAGS@ \
200 @ECORE_CXX_CFLAGS@ @EO_CFLAGS@ @EOLIAN_CXX_CFLAGS@ @EOLIAN_CFLAGS@
201
202bin_efl_mono_msbuild_gen_efl_mono_msbuild_gen_LDADD = @CHECK_LIBS@ @USE_EOLIAN_LIBS@
203
204bin_efl_mono_msbuild_gen_efl_mono_msbuild_gen_DEPENDENCIES = @USE_EOLIAN_INTERNAL_LIBS@
205
206# Helper for other modules using Efl_Mono_MSBuild_Gen
207include Makefile_Efl_Mono_MSBuild_Gen_Helper.am
208
209# Efl Mono DLL for MSBuild
210../libefl_mono.csproj: $(lib_efl_mono_libefl_mono_dll_SOURCES) lib/efl_mono/$(am__dirstamp) $(efl_eolian_mono_files) $(_EFL_MONO_MSBUILD_GEN_DEP)
211 @rm -f $@
212 $(EFL_MONO_MSBUILD_GEN) $(MSBUILD_GEN_FLAGS) -o $@ -a libefl_mono.dll -t library $(patsubst %.cs,src/%.cs,$(filter %.cs, $(^)))
213
214CSPROJS_SUBDIRS = \
215examples/eina \
216examples/efl_mono
217
218msbuildcsprojs: ../libefl_mono.csproj
219 @for d in $(CSPROJS_SUBDIRS); do \
220 echo "Making MSBuild C Sharp projects in $$d"; \
221 $(MAKE) $(AM_MAKEFLAGS) -C $$d msbuildcsprojs || exit 1; \
222 done
223
224### Some hard-coded runtime dependencies for tests and examples
225TEST_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_evas/.libs:$(abs_top_builddir)/src/lib/eo/.libs:$(abs_top_builddir)/src/lib/evas/.libs:$(abs_top_builddir)/src/lib/emile/.libs:$(abs_top_builddir)/src/lib/eet/.libs:$(abs_top_builddir)/src/lib/efl/.libs:$(abs_top_builddir)/src/ecore-file/.libs:$(abs_top_builddir)/src/lib/efl-input/.libs:$(abs_top_builddir)/src/lib/edje/.libs:$(abs_top_builddir)/src/lib/ethumb/.libs:$(abs_top_builddir)/src/lib/ethumb-client/.libs:$(abs_top_builddir)/src/lib/emotion/.libs:$(abs_top_builddir)/src/lib/ecore-imf/.libs:$(abs_top_builddir)/src/lib/ecore-con/.libs:$(abs_top_builddir)/src/lib/eldbus/.libs:$(abs_top_builddir)/src/lib/efreet/.libs:$(abs_top_builddir)/src/lib/efreet-mime/.libs:$(abs_top_builddir)/src/lib/efreet-trash/.libs:$(abs_top_builddir)/src/lib/eio/.libs:$(abs_top_builddir)/src/lib/elocation/.libs:$(abs_top_builddir)/src/lib/elementary/.libs
226
227WIN_ADD_TEST_PATHS = $(abs_top_builddir)/src/lib/evil/.libs:$(abs_top_builddir)/src/lib/ecore_win32/.libs:$(abs_top_builddir)/src/lib/ector/.libs:$(abs_top_builddir)/src/lib/ecore_con/.libs:$(abs_top_builddir)/src/lib/ecore_imf/.libs:$(abs_top_builddir)/src/lib/ecore_file/.libs:$(abs_top_builddir)/src/lib/ecore_input/.libs:$(abs_top_builddir)/src/ethumb_client/.libs:$(abs_top_builddir)/src/tests/efl_mono/.libs
228
229
230### Rules for generating the .cs files
231
232if HAVE_WIN32
233ALL_EO_REFS = -r $(top_builddir)/src/bindings/mono/efl_mono/efl_libs.csv
234else
235ALL_EO_REFS=
236endif
237
238lib/eo/%.eo.cs: lib/eo/%.eo $(_EOLIAN_MONO_DEP)
239 $(AM_V_EOLMONO) \
240 $(MKDIR_P) $(dir $@); \
241 $(EOLIAN_MONO) $(EOLIAN_FLAGS) $(EOLIAN_MONO_FLAGS) --dllimport eo -o $@ $(ALL_EO_REFS) $<
242
243lib/ecore/%.eo.cs: lib/ecore/%.eo $(_EOLIAN_MONO_DEP)
244 $(AM_V_EOLMONO) \
245 $(MKDIR_P) $(dir $@); \
246 $(EOLIAN_MONO) $(EOLIAN_FLAGS) $(EOLIAN_MONO_FLAGS) --dllimport ecore -o $@ $(ALL_EO_REFS) $<
247
248lib/evas/%.eo.cs: lib/evas/%.eo $(_EOLIAN_MONO_DEP)
249 $(AM_V_EOLMONO) \
250 $(MKDIR_P) $(dir $@); \
251 $(EOLIAN_MONO) $(EOLIAN_FLAGS) $(EOLIAN_MONO_FLAGS) --dllimport evas -o $@ $(ALL_EO_REFS) $<
252
253lib/efl/%.eo.cs: lib/efl/%.eo $(_EOLIAN_MONO_DEP)
254 $(AM_V_EOLMONO) \
255 $(MKDIR_P) $(dir $@); \
256 $(EOLIAN_MONO) $(EOLIAN_FLAGS) $(EOLIAN_MONO_FLAGS) --dllimport efl -o $@ $(ALL_EO_REFS) $<
257
258lib/edje/%.eo.cs: lib/edje/%.eo $(_EOLIAN_MONO_DEP)
259 $(AM_V_EOLMONO) \
260 $(MKDIR_P) $(dir $@); \
261 $(EOLIAN_MONO) $(EOLIAN_FLAGS) $(EOLIAN_MONO_FLAGS) --dllimport edje -o $@ $(ALL_EO_REFS) $<
262
263lib/elementary/%.eo.cs: lib/elementary/%.eo $(_EOLIAN_MONO_DEP)
264 $(AM_V_EOLMONO) \
265 $(MKDIR_P) $(dir $@); \
266 $(EOLIAN_MONO) $(EOLIAN_FLAGS) $(EOLIAN_MONO_FLAGS) --dllimport elementary -o $@ $(ALL_EO_REFS) $<
267
268lib/ecore/%.eot.cs: lib/ecore/%.eot $(_EOLIAN_MONO_DEP)
269 $(AM_V_EOLMONO) \
270 $(MKDIR_P) $(dir $@); \
271 $(EOLIAN_MONO) $(EOLIAN_FLAGS) $(EOLIAN_MONO_FLAGS) --dllimport ecore -o $@ $(ALL_EO_REFS) $<
272
273lib/eo/%.eot.cs: lib/eo/%.eot $(_EOLIAN_MONO_DEP)
274 $(AM_V_EOLMONO) \
275 $(MKDIR_P) $(dir $@); \
276 $(EOLIAN_MONO) $(EOLIAN_FLAGS) $(EOLIAN_MONO_FLAGS) --dllimport eo -o $@ $(ALL_EO_REFS) $<
277
278lib/evas/%.eot.cs: lib/evas/%.eot $(_EOLIAN_MONO_DEP)
279 $(AM_V_EOLMONO) \
280 $(MKDIR_P) $(dir $@); \
281 $(EOLIAN_MONO) $(EOLIAN_FLAGS) $(EOLIAN_MONO_FLAGS) --dllimport evas -o $@ $(ALL_EO_REFS) $<
282
283lib/efl/%.eot.cs: lib/efl/%.eot $(_EOLIAN_MONO_DEP)
284 $(AM_V_EOLMONO) \
285 $(MKDIR_P) $(dir $@); \
286 $(EOLIAN_MONO) $(EOLIAN_FLAGS) $(EOLIAN_MONO_FLAGS) --dllimport efl -o $@ $(ALL_EO_REFS) $<
287
288lib/edje/%.eot.cs: lib/edje/%.eot $(_EOLIAN_MONO_DEP)
289 $(AM_V_EOLMONO) \
290 $(MKDIR_P) $(dir $@); \
291 $(EOLIAN_MONO) $(EOLIAN_FLAGS) $(EOLIAN_MONO_FLAGS) --dllimport edje -o $@ $(ALL_EO_REFS) $<
292
293lib/elementary/%.eot.cs: lib/elementary/%.eot $(_EOLIAN_MONO_DEP)
294 $(AM_V_EOLMONO) \
295 $(MKDIR_P) $(dir $@); \
296 $(EOLIAN_MONO) $(EOLIAN_FLAGS) $(EOLIAN_MONO_FLAGS) --dllimport elementary -o $@ $(ALL_EO_REFS) $<
297
298
299### Tests
300
301if EFL_ENABLE_TESTS
302
303# Intermediate C test native library
304check_LTLIBRARIES += tests/efl_mono/libefl_mono_native_test.la
305
306tests_efl_mono_libefl_mono_native_test_la_SOURCES = tests/efl_mono/libefl_mono_native_test.c
307tests_efl_mono_libefl_mono_native_test_la_CPPFLAGS = \
308-I$(builddir)/tests/efl_mono \
309@CHECK_CFLAGS@ @EINA_CFLAGS@ @EO_CFLAGS@ @ECORE_CFLAGS@ @ELDBUS_CFLAGS@
310tests_efl_mono_libefl_mono_native_test_la_LIBADD = \
311@CHECK_LIBS@ @USE_EINA_LIBS@ @USE_EO_LIBS@ @USE_ECORE_LIBS@ @USE_ELDBUS_LIBS@
312tests_efl_mono_libefl_mono_native_test_la_LDFLAGS = -rpath $(abs_top_builddir)/tests/efl_mono @EFL_LTLIBRARY_FLAGS@
313tests_efl_mono_libefl_mono_native_test_la_DEPENDENCIES = @USE_EINA_INTERNAL_LIBS@ @USE_EO_INTERNAL_LIBS@ @USE_ECORE_INTERNAL_LIBS@ @USE_ELDBUS_INTERNAL_LIBS@
314tests_efl_mono_libefl_mono_native_test_la_LIBTOOLFLAGS = --tag=disable-static
315
316tests/efl_mono/libefl_mono_native_test.c: tests/efl_mono/test_testing.eo.h tests/efl_mono/test_testing.eo.c tests/efl_mono/test_numberwrapper.eo.h tests/efl_mono/test_numberwrapper.eo.c
317
318# Intermediate C Sharp test DLL
319efl_mono_test_eolian_mono_files = tests/efl_mono/test_testing.eo.cs \
320tests/efl_mono/test_numberwrapper.eo.cs
321
322tests/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
323 @rm -f tests/efl_mono/libefl_mono_test.dll$(EXEEXT)
324 $(AM_V_MCS) $(MCS) $(MCS_FLAGS) -r:$(abs_builddir)/lib/efl_mono/libefl_mono.dll$(EXEEXT) -out:$@ -t:library $(filter %.cs, $(^))
325
326# C Sharp test executable
327AM_TESTS_ENVIRONMENT += MONO='mono'; export MONO;
328AM_TESTS_ENVIRONMENT += MONO_BUILDPATH='$(abs_top_builddir)'; export MONO_BUILDPATH;
329AM_TESTS_ENVIRONMENT += MONO_PATH='$(TEST_PATHS)'; export MONO_PATH;
330if HAVE_WIN32
331AM_TESTS_ENVIRONMENT += PATH='$(PATH):$(TEST_PATHS):$(WIN_ADD_TEST_PATHS)'; export PATH;
332else
333AM_TESTS_ENVIRONMENT += LD_LIBRARY_PATH='$(LD_LIBRARY_PATH):$(TEST_PATHS)'; export LD_LIBRARY_PATH;
334endif
335AM_TESTS_ENVIRONMENT += EXEEXT='$(EXEEXT)'; export EXEEXT;
336
337check_PROGRAMS += tests/efl_mono/efl_mono.exe
338TESTS += tests/efl_mono/mono_test_driver.sh
339
340tests_efl_mono_efl_mono_exe_SOURCES = \
341 tests/efl_mono/Main.cs \
342 tests/efl_mono/Eina.cs \
343 tests/efl_mono/Eldbus.cs \
344 tests/efl_mono/Eo.cs \
345 tests/efl_mono/Errors.cs \
346 tests/efl_mono/Evas.cs \
347 tests/efl_mono/Events.cs \
348 tests/efl_mono/FunctionPointers.cs \
349 tests/efl_mono/Strings.cs \
350 tests/efl_mono/TestUtils.cs \
351 tests/efl_mono/Value.cs \
352 tests/efl_mono/ValueEolian.cs
353
354tests/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)
355 @rm -f tests/efl_mono/efl_mono_exe$(EXEEXT)
356 $(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, $(^))
357
358# Rule for generating the .cs files
359tests/efl_mono/%.eo.cs: tests/efl_mono/%.eo $(_EOLIAN_MONO_DEP)
360 $(AM_V_EOLMONO) \
361 $(MKDIR_P) $(dir $@); \
362 $(EOLIAN_MONO) $(EOLIAN_FLAGS) $(EOLIAN_MONO_FLAGS) --dllimport "@DLIB_PREFIX_MONO@efl_mono_native_test@DLIB_SUFFIX_MONO@" -o $@ $(ALL_EO_REFS) $<
363
364endif
365endif
diff --git a/src/Makefile_Efl_Mono_MSBuild_Gen_Helper.am b/src/Makefile_Efl_Mono_MSBuild_Gen_Helper.am
new file mode 100644
index 0000000000..9f750f5fd8
--- /dev/null
+++ b/src/Makefile_Efl_Mono_MSBuild_Gen_Helper.am
@@ -0,0 +1,17 @@
1
2EFL_MONO_MSBUILD_GEN = EFL_RUN_IN_TREE=1 $(top_builddir)/src/bin/efl_mono_msbuild_gen/efl_mono_msbuild_gen${EXEEXT}
3_EFL_MONO_MSBUILD_GEN_DEP = bin/efl_mono_msbuild_gen/efl_mono_msbuild_gen${EXEEXT}
4
5if HAVE_WIN32
6
7MSBUILD_GEN_FLAGS := $(MSBUILD_GEN_FLAGS)
8MSBUILD_GEN_FLAGS += -d WIN32
9
10endif
11
12if HAVE_X86_64
13
14MSBUILD_GEN_FLAGS := $(MSBUILD_GEN_FLAGS)
15MSBUILD_GEN_FLAGS += -p x64
16
17endif
diff --git a/src/Makefile_Eolian_Mono_Helper.am b/src/Makefile_Eolian_Mono_Helper.am
new file mode 100644
index 0000000000..6097c447b3
--- /dev/null
+++ b/src/Makefile_Eolian_Mono_Helper.am
@@ -0,0 +1,17 @@
1### Helper for other modules using Eolian_Mono, include only after Makefile_Eolian_Helper.am
2
3if HAVE_EOLIAN_MONO
4EOLIAN_MONO = @eolian_mono@
5_EOLIAN_MONO_DEP = @eolian_mono@
6else
7EOLIAN_MONO = EFL_RUN_IN_TREE=1 $(top_builddir)/src/bin/eolian_mono/eolian_mono${EXEEXT}
8_EOLIAN_MONO_DEP = bin/eolian_mono/eolian_mono${EXEEXT}
9endif
10
11EOLIAN_MONO_FLAGS = -M @VMAJ@ -m @VMIN@
12
13AM_V_EOLMONO = $(am__v_EOLMONO_@AM_V@)
14am__v_EOLMONO_ = $(am__v_EOLMONO_@AM_DEFAULT_V@)
15am__v_EOLMONO_0 = @echo " EOLMONO " $@;
16
17SUFFIXES += .eo.cs
diff --git a/src/examples/eina/Makefile.am b/src/examples/eina/Makefile.am
index 0186c72b45..baeb26bf6f 100644
--- a/src/examples/eina/Makefile.am
+++ b/src/examples/eina/Makefile.am
@@ -135,6 +135,62 @@ $(top_builddir)/src/lib/ecore_evas/libecore_evas.la \
135$(top_builddir)/src/lib/evas/libevas.la \ 135$(top_builddir)/src/lib/evas/libevas.la \
136@EINA_LDFLAGS@ 136@EINA_LDFLAGS@
137 137
138
139if HAVE_CSHARP
140
141include $(top_srcdir)/src/Makefile_Efl_Mono_MSBuild_Gen_Helper.am
142
143EXTRA_PROGRAMS += \
144EinaArray01.exe \
145EinaBinbuf01.exe \
146EinaError01.exe \
147EinaHash01.exe
148
149
150EinaArray01_exe_SOURCES = EinaArray01.cs
151EinaArray01.exe$(EXEEXT): $(EinaArray01_exe_SOURCES) $(am_dirstamp) $(top_builddir)/src/lib/efl_mono/libefl_mono.dll$(EXEEXT)
152 @rm -f $@
153 $(AM_V_MCS) $(MCS) $(MCS_FLAGS) -r:$(abs_top_builddir)/src/lib/efl_mono/libefl_mono.dll$(EXEEXT) -out:$@ $(filter %.cs, $(^))
154
155$(abs_top_builddir)/EinaArray01.csproj: $(EinaArray01_exe_SOURCES) $(am_dirstamp)
156 @rm -f $@
157 $(EFL_MONO_MSBUILD_GEN) $(MSBUILD_GEN_FLAGS) -o $@ -a EinaArray01.exe -r libefl_mono.dll -t exe $(patsubst %.cs,src/examples/eina/%.cs,$(filter %.cs, $(^)))
158
159
160EinaBinbuf01_exe_SOURCES = EinaBinbuf01.cs
161EinaBinbuf01.exe$(EXEEXT): $(EinaBinbuf01_exe_SOURCES) $(am_dirstamp) $(top_builddir)/src/lib/efl_mono/libefl_mono.dll$(EXEEXT)
162 @rm -f $@
163 $(AM_V_MCS) $(MCS) $(MCS_FLAGS) -r:$(abs_top_builddir)/src/lib/efl_mono/libefl_mono.dll$(EXEEXT) -out:$@ $(filter %.cs, $(^))
164
165$(abs_top_builddir)/EinaBinbuf01.csproj: $(EinaBinbuf01_exe_SOURCES) $(am_dirstamp)
166 @rm -f $@
167 $(EFL_MONO_MSBUILD_GEN) $(MSBUILD_GEN_FLAGS) -o $@ -a EinaBinbuf01.exe -r libefl_mono.dll -t exe $(patsubst %.cs,src/examples/eina/%.cs,$(filter %.cs, $(^)))
168
169
170EinaError01_exe_SOURCES = EinaError01.cs
171EinaError01.exe$(EXEEXT): $(EinaError01_exe_SOURCES) $(am_dirstamp) $(top_builddir)/src/lib/efl_mono/libefl_mono.dll$(EXEEXT)
172 @rm -f $@
173 $(AM_V_MCS) $(MCS) $(MCS_FLAGS) -r:$(abs_top_builddir)/src/lib/efl_mono/libefl_mono.dll$(EXEEXT) -out:$@ $(filter %.cs, $(^))
174
175$(abs_top_builddir)/EinaError01.csproj: $(EinaError01_exe_SOURCES) $(am_dirstamp)
176 @rm -f $@
177 $(EFL_MONO_MSBUILD_GEN) $(MSBUILD_GEN_FLAGS) -o $@ -a EinaError01.exe -r libefl_mono.dll -t exe $(patsubst %.cs,src/examples/eina/%.cs,$(filter %.cs, $(^)))
178
179
180EinaHash01_exe_SOURCES = EinaHash01.cs
181EinaHash01.exe$(EXEEXT): $(EinaHash01_exe_SOURCES) $(am_dirstamp) $(top_builddir)/src/lib/efl_mono/libefl_mono.dll$(EXEEXT)
182 @rm -f $@
183 $(AM_V_MCS) $(MCS) $(MCS_FLAGS) -r:$(abs_top_builddir)/src/lib/efl_mono/libefl_mono.dll$(EXEEXT) -out:$@ $(filter %.cs, $(^))
184
185$(abs_top_builddir)/EinaHash01.csproj: $(EinaHash01_exe_SOURCES) $(am_dirstamp)
186 @rm -f $@
187 $(EFL_MONO_MSBUILD_GEN) $(MSBUILD_GEN_FLAGS) -o $@ -a EinaHash01.exe -r libefl_mono.dll -t exe $(patsubst %.cs,src/examples/eina/%.cs,$(filter %.cs, $(^)))
188
189msbuildcsprojs: $(abs_top_builddir)/EinaArray01.csproj $(abs_top_builddir)/EinaBinbuf01.csproj $(abs_top_builddir)/EinaError01.csproj $(abs_top_builddir)/EinaHash01.csproj
190
191endif
192
193
138DATA_FILES = addr_book.txt chat.xml Makefile.examples 194DATA_FILES = addr_book.txt chat.xml Makefile.examples
139 195
140EXTRA_DIST = $(DATA_FILES) 196EXTRA_DIST = $(DATA_FILES)
diff --git a/src/examples/elementary/Makefile.am b/src/examples/elementary/Makefile.am
index 905683c4fd..d1a3767d85 100644
--- a/src/examples/elementary/Makefile.am
+++ b/src/examples/elementary/Makefile.am
@@ -257,6 +257,23 @@ nodist_codegen_example_SOURCES = \
257codegen_example_generated.c \ 257codegen_example_generated.c \
258codegen_example_generated.h 258codegen_example_generated.h
259 259
260
261if HAVE_CSHARP
262
263efl_ui_slider_mono_exe_SOURCES = \
264 efl_ui_slider_mono.cs
265
266if HAVE_WIN32
267MCS_FLAGS := $(MCS_FLAGS)
268MCS_FLAGS += -define:WIN32
269endif
270
271efl_ui_slider_mono.exe$(EXEEXT): $(efl_ui_slider_mono_exe_SOURCES) $(am_dirstamp) $(top_builddir)/src/lib/efl_mono/libefl_mono.dll$(EXEEXT)
272 @rm -f efl_ui_slider_mono$(EXEEXT)
273 $(AM_V_MCS) $(MCS) $(MCS_FLAGS) -r:$(abs_top_builddir)/src/lib/efl_mono/libefl_mono.dll$(EXEEXT) -out:$@ $(filter %.cs, $(^))
274
275endif
276
260examples_PROGRAMS = \ 277examples_PROGRAMS = \
261actionslider_example_01 \ 278actionslider_example_01 \
262bg_example_01 \ 279bg_example_01 \
@@ -417,6 +434,13 @@ toolbar_cxx_example_01 \
417$(NULL) 434$(NULL)
418endif 435endif
419 436
437if HAVE_CSHARP
438
439examples_PROGRAMS += \
440 efl_ui_slider_mono.exe
441
442endif
443
420efl_thread_1_SOURCES = efl_thread_1.c 444efl_thread_1_SOURCES = efl_thread_1.c
421efl_thread_2_SOURCES = efl_thread_2.c 445efl_thread_2_SOURCES = efl_thread_2.c
422efl_thread_3_SOURCES = efl_thread_3.c 446efl_thread_3_SOURCES = efl_thread_3.c
diff --git a/src/examples/evas/Makefile.am b/src/examples/evas/Makefile.am
index c4ed9dea01..2fc462ea2e 100644
--- a/src/examples/evas/Makefile.am
+++ b/src/examples/evas/Makefile.am
@@ -367,6 +367,61 @@ $(AM_CPPFLAGS) @EVAS_CFLAGS@
367 367
368endif 368endif
369 369
370if HAVE_CSHARP
371
372EXTRA_PROGRAMS += \
373 evas_mono_box.exe \
374 evas_mono_image.exe \
375 evas_mono_image2.exe \
376 evas_mono_rectangle.exe \
377 evas_mono_table.exe \
378 evas_mono_text.exe
379
380
381evas_mono_box_exe_SOURCES = \
382 evas_mono_box.cs
383
384evas_mono_box.exe$(EXEEXT): $(evas_mono_box_exe_SOURCES) $(am_dirstamp) $(top_builddir)/src/lib/efl_mono/libefl_mono.dll$(EXEEXT)
385 @rm -f evas_mono_box$(EXEEXT)
386 $(AM_V_MCS) $(MCS) $(MCS_FLAGS) -r:$(abs_top_builddir)/src/lib/efl_mono/libefl_mono.dll$(EXEEXT) -out:$@ $(filter %.cs, $(^))
387
388evas_mono_image_exe_SOURCES = \
389 evas_mono_image.cs
390
391evas_mono_image.exe$(EXEEXT): $(evas_mono_image_exe_SOURCES) $(am_dirstamp) $(top_builddir)/src/lib/efl_mono/libefl_mono.dll$(EXEEXT)
392 @rm -f evas_mono_image$(EXEEXT)
393 $(AM_V_MCS) $(MCS) $(MCS_FLAGS) -r:$(abs_top_builddir)/src/lib/efl_mono/libefl_mono.dll$(EXEEXT) -out:$@ $(filter %.cs, $(^))
394
395evas_mono_image2_exe_SOURCES = \
396 evas_mono_image2.cs
397
398evas_mono_image2.exe$(EXEEXT): $(evas_mono_image2_exe_SOURCES) $(am_dirstamp) $(top_builddir)/src/lib/efl_mono/libefl_mono.dll$(EXEEXT)
399 @rm -f evas_mono_image2$(EXEEXT)
400 $(AM_V_MCS) $(MCS) $(MCS_FLAGS) -r:$(abs_top_builddir)/src/lib/efl_mono/libefl_mono.dll$(EXEEXT) -out:$@ $(filter %.cs, $(^))
401
402evas_mono_rectangle_exe_SOURCES = \
403 evas_mono_rectangle.cs
404
405evas_mono_rectangle.exe$(EXEEXT): $(evas_mono_rectangle_exe_SOURCES) $(am_dirstamp) $(top_builddir)/src/lib/efl_mono/libefl_mono.dll$(EXEEXT)
406 @rm -f evas_mono_rectangle$(EXEEXT)
407 $(AM_V_MCS) $(MCS) $(MCS_FLAGS) -r:$(abs_top_builddir)/src/lib/efl_mono/libefl_mono.dll$(EXEEXT) -out:$@ $(filter %.cs, $(^))
408
409evas_mono_table_exe_SOURCES = \
410 evas_mono_table.cs
411
412evas_mono_table.exe$(EXEEXT): $(evas_mono_table_exe_SOURCES) $(am_dirstamp) $(top_builddir)/src/lib/efl_mono/libefl_mono.dll$(EXEEXT)
413 @rm -f evas_mono_table$(EXEEXT)
414 $(AM_V_MCS) $(MCS) $(MCS_FLAGS) -r:$(abs_top_builddir)/src/lib/efl_mono/libefl_mono.dll$(EXEEXT) -out:$@ $(filter %.cs, $(^))
415
416evas_mono_text_exe_SOURCES = \
417 evas_mono_text.cs
418
419evas_mono_text.exe$(EXEEXT): $(evas_mono_text_exe_SOURCES) $(am_dirstamp) $(top_builddir)/src/lib/efl_mono/libefl_mono.dll$(EXEEXT)
420 @rm -f evas_mono_text$(EXEEXT)
421 $(AM_V_MCS) $(MCS) $(MCS_FLAGS) -r:$(abs_top_builddir)/src/lib/efl_mono/libefl_mono.dll$(EXEEXT) -out:$@ $(filter %.cs, $(^))
422
423endif
424
370EDJS = $(EDCS:%.edc=%.edj) 425EDJS = $(EDCS:%.edc=%.edj)
371 426
372SRCS = \ 427SRCS = \