summaryrefslogtreecommitdiff
path: root/pc
diff options
context:
space:
mode:
authorSavio Sena <savio@expertisesolutions.com.br>2014-05-03 00:55:51 +0200
committerCedric Bail <cedric.bail@free.fr>2014-05-03 00:56:32 +0200
commit46b6e8a563bd429690e7bffba4e98d06aa40798d (patch)
treeb7a2aebfc32bcc6d7a2600072a00d69a9f68d9a1 /pc
parent64c6c63725d96f03baf34b660ca71e13b29078c1 (diff)
eolian_cxx: initial version of the EFL C++ Bindings Generator.
Summary: This patch adds 'eolian_cxx' -- a C++ bindings generator -- to the EFL tree. Eolian Cxx uses Eolian API to read .eo files and generate .eo.hh. It relies/depends on Eo Cxx and Eina Cxx (both non-generated bindings). src/bin/eolian_cxx: The eolian_cxx program. src/lib/eolian_cxx: A header-only library that implements the C++ code generation that binds the .eo classes. =Examples= src/examples/eolian_cxx/eolian_cxx_simple_01.cc: The simplest example, it just uses some "dummy" generated C++ classes. src/examples/eolian_cxx/eolian_cxx_inherit_01.cc: Illustrates how pure C++ classes inherit from .eo generated classes. src/examples/evas/evas_cxx_rectangle.cc: More realistic example using the generated bindings Evas Cxx. Still a bit shallow because we don't have full fledged .eo descriptions yet, but will be improved. =Important= The generated code is not supported and not a stable API/ABI. It is here to gather people interest and get review before we set things in stone for release 1.11. @feature Reviewers: cedric, smohanty, raster, stefan_schmidt CC: felipealmeida, JackDanielZ, cedric, stefan Differential Revision: https://phab.enlightenment.org/D805 Signed-off-by: Cedric Bail <cedric.bail@free.fr>
Diffstat (limited to 'pc')
-rw-r--r--pc/.gitignore4
-rw-r--r--pc/eet-cxx.pc.in2
-rw-r--r--pc/eina-cxx.pc.in2
-rw-r--r--pc/eo-cxx.pc.in12
-rw-r--r--pc/eolian-cxx.pc.in12
-rw-r--r--pc/evas-cxx.pc.in15
6 files changed, 45 insertions, 2 deletions
diff --git a/pc/.gitignore b/pc/.gitignore
index ae42f58ef3..f872dd524e 100644
--- a/pc/.gitignore
+++ b/pc/.gitignore
@@ -52,3 +52,7 @@
52/evas.pc 52/evas.pc
53/evil.pc 53/evil.pc
54/eolian.pc 54/eolian.pc
55/eolian-cxx.pc
56/eo-cxx.pc
57/evas-cxx.pc
58/ecore-audio-cxx.pc.in
diff --git a/pc/eet-cxx.pc.in b/pc/eet-cxx.pc.in
index 2412c487a3..23d2bbb986 100644
--- a/pc/eet-cxx.pc.in
+++ b/pc/eet-cxx.pc.in
@@ -9,4 +9,4 @@ Version: @VERSION@
9Requires.private: @requirements_pc_eet@ 9Requires.private: @requirements_pc_eet@
10Libs: -L${libdir} -leet 10Libs: -L${libdir} -leet
11Libs.private: @requirements_libs_eet@ 11Libs.private: @requirements_libs_eet@
12Cflags: -I${includedir}/efl-@VMAJ@ -I${includedir}/eet-@VMAJ@ -I${includedir}/efl-@VMAJ@ -I${includedir}/eet_cxx-@VMAJ@ -I${includedir}/eet_cxx-@VMAJ@/eet_cxx 12Cflags: -I${includedir}/efl-@VMAJ@ -I${includedir}/eet-@VMAJ@ -I${includedir}/efl-@VMAJ@ -I${includedir}/eet-cxx-@VMAJ@ -I${includedir}/eet-cxx-@VMAJ@/eet-cxx
diff --git a/pc/eina-cxx.pc.in b/pc/eina-cxx.pc.in
index c6571fa4ae..4063866443 100644
--- a/pc/eina-cxx.pc.in
+++ b/pc/eina-cxx.pc.in
@@ -9,4 +9,4 @@ Requires.private: @requirements_pc_eina@
9Version: @VERSION@ 9Version: @VERSION@
10Libs: -L${libdir} -leina @requirements_public_libs_eina@ 10Libs: -L${libdir} -leina @requirements_public_libs_eina@
11Libs.private: @requirements_libs_eina@ 11Libs.private: @requirements_libs_eina@
12Cflags: -I${includedir}/efl-@VMAJ@ -I${includedir}/eina-@VMAJ@ -I${includedir}/eina-@VMAJ@/eina -I${includedir}/eina_cxx-@VMAJ@ -I${includedir}/eina_cxx-@VMAJ@/eina_cxx 12Cflags: -I${includedir}/efl-@VMAJ@ -I${includedir}/eina-@VMAJ@ -I${includedir}/eina-@VMAJ@/eina -I${includedir}/eina-cxx-@VMAJ@ -I${includedir}/eina-cxx-@VMAJ@/eina-cxx
diff --git a/pc/eo-cxx.pc.in b/pc/eo-cxx.pc.in
new file mode 100644
index 0000000000..a44e7f9ab6
--- /dev/null
+++ b/pc/eo-cxx.pc.in
@@ -0,0 +1,12 @@
1prefix=@prefix@
2exec_prefix=@exec_prefix@
3libdir=@libdir@
4includedir=@includedir@
5
6Name: Eo C++
7Description: C++ bindings for EFL's generic object system.
8Version: @PACKAGE_VERSION@
9Requires.private: @requirements_pc_eo@
10Libs.private: @requirements_libs_eo@
11Libs: -L${libdir} -leo
12Cflags: -I${includedir}/efl-@VMAJ@ -I${includedir}/eo-@VMAJ@ -I${includedir}/eo-cxx-@VMAJ@
diff --git a/pc/eolian-cxx.pc.in b/pc/eolian-cxx.pc.in
new file mode 100644
index 0000000000..1dad9f2d6d
--- /dev/null
+++ b/pc/eolian-cxx.pc.in
@@ -0,0 +1,12 @@
1prefix=@prefix@
2exec_prefix=@exec_prefix@
3libdir=@libdir@
4includedir=@includedir@
5
6Name: Eolian C++
7Description: EFL's C++ bindings generator.
8Version: @VERSION@
9Require.private: @requirements_pc_eolian_cxx@
10Libs: -L${libdir}
11Libs.private: @requirements_libs_eolian_cxx@
12Cflags: -I${includedir}/efl-@VMAJ@ -I${includedir}/eolian-cxx-@VMAJ@
diff --git a/pc/evas-cxx.pc.in b/pc/evas-cxx.pc.in
new file mode 100644
index 0000000000..eb22b99937
--- /dev/null
+++ b/pc/evas-cxx.pc.in
@@ -0,0 +1,15 @@
1prefix=@prefix@
2exec_prefix=@exec_prefix@
3libdir=@libdir@
4includedir=@includedir@
5eoincludedir=@datarootdir@/eolian/include
6eolian_flags=-I${eoincludedir}/evas-cxx-@VMAJ@
7
8Name: evas
9Description: Evas C++ Bindings
10Requires.private: @requirements_pc_evas@
11Version: @VERSION@
12Libs: -L${libdir} -levas
13Libs.private: @requirements_libs_evas@
14Cflags: -I${includedir}/efl-@VMAJ@ -I${includedir}/evas-@VMAJ@ -I${includedir}/evas-cxx-@VMAJ@
15