Enlightenment libs + ruby


#1

Hi List,

Is there anyone who has experience with enlightenment and ruby?

I would like to use ruby for a project that uses e17 libs for the gui.
I found Tilman S.'s ruby-efl bindings and redact at
code-monkey.de, but the download link for redact is dead and I have
been unable to compile some of the ruby-efl-bindings - they are from
2007 and I think they have come ‘out of sync’ by now. If anyone here
is able to give some advice, the details are below.

So – if any of you has a dusty, old copy of redact lying around, I’d
be grateful if I could have a copy of it. Also, any advice for getting
the ruby-efl bindings to work would be greatly appreciated!

cheers,
Siemen

Ruby-efl details:

I tried to compile the ruby-efl bindings against my current
efl-checkout (39893 from http://svn.enlightenment.org/svn/e/trunk/.

Ruby-edje and ruby-evas build fine. Ruby-ecore fails to compile
because some symbols in the header files cannot be resolved. I have
grep’ed in the e17 include dir (/opt/e17/include in my case) and they
are indeed not there. However, similar looking symbols exist. It looks
like they have been renamed / refactored.

Ruby-esmart does not build either for two reasons. First, the rakefile
somehow does not pass the -cflags and -libs that it got from
pkg-config to cc. I got around that by compiling manually. Secondly,
the referred include file ‘Esmart/Esmart_File_Dialog.h’ does not
exist.

Build errors for ruby-ecore:

$ rake1.8
cc -fno-strict-aliasing -g -g -O2 -fPIC -I/opt/e17/include
-I/opt/e17/include/eina-0 -I/opt/e17/include/eina-0/eina
-D_FILE_OFFSET_BITS=64 -I/usr/lib/ruby/1.8/i486-linux
-I/usr/local/lib/site_ruby/1.8/i486-linux -c -o
src/ecore_x/rb_ecore_x.o src/ecore_x/rb_ecore_x.c
src/ecore_x/rb_ecore_x.c: In function ‘c_ev_key_down_init’:
src/ecore_x/rb_ecore_x.c:51: error: ‘Ecore_X_Event_Key_Down’
undeclared (first use in this function)
src/ecore_x/rb_ecore_x.c:51: error: (Each undeclared identifier is
reported only once
src/ecore_x/rb_ecore_x.c:51: error: for each function it appears in.)
src/ecore_x/rb_ecore_x.c:51: error: ‘e’ undeclared (first use in this
function)
src/ecore_x/rb_ecore_x.c: In function ‘c_ev_mouse_button_down_init’:
src/ecore_x/rb_ecore_x.c:79: error: ‘Ecore_X_Event_Mouse_Button_Down’
undeclared (first use in this function)
src/ecore_x/rb_ecore_x.c:79: error: ‘e’ undeclared (first use in this
function)
src/ecore_x/rb_ecore_x.c: In function ‘c_ev_mouse_button_up_init’:
src/ecore_x/rb_ecore_x.c:113: error: ‘Ecore_X_Event_Mouse_Button_Up’
undeclared (first use in this function)
src/ecore_x/rb_ecore_x.c:113: error: ‘e’ undeclared (first use in this
function)
src/ecore_x/rb_ecore_x.c: In function ‘c_ev_mouse_move_init’:
src/ecore_x/rb_ecore_x.c:141: error: ‘Ecore_X_Event_Mouse_Move’
undeclared (first use in this function)
src/ecore_x/rb_ecore_x.c:141: error: ‘e’ undeclared (first use in this
function)
src/ecore_x/rb_ecore_x.c: In function ‘Init_ecore_x’:
src/ecore_x/rb_ecore_x.c:460: error: ‘ECORE_X_MODIFIER_SHIFT’
undeclared (first use in this function)
src/ecore_x/rb_ecore_x.c:461: error: ‘ECORE_X_MODIFIER_CTRL’
undeclared (first use in this function)
src/ecore_x/rb_ecore_x.c:462: error: ‘ECORE_X_MODIFIER_ALT’ undeclared
(first use in this function)
src/ecore_x/rb_ecore_x.c:463: error: ‘ECORE_X_MODIFIER_WIN’ undeclared
(first use in this function)
src/ecore_x/rb_ecore_x.c:466: error: ‘ECORE_X_EVENT_KEY_DOWN’
undeclared (first use in this function)
src/ecore_x/rb_ecore_x.c:470: error: ‘ECORE_X_EVENT_KEY_UP’ undeclared
(first use in this function)
src/ecore_x/rb_ecore_x.c:474: error: ‘ECORE_X_EVENT_MOUSE_BUTTON_DOWN’
undeclared (first use in this function)
src/ecore_x/rb_ecore_x.c:479: error: ‘ECORE_X_EVENT_MOUSE_BUTTON_UP’
undeclared (first use in this function)
src/ecore_x/rb_ecore_x.c:484: error: ‘ECORE_X_EVENT_MOUSE_MOVE’
undeclared (first use in this function)
rake aborted!
Command failed with status (1): [cc -fno-strict-aliasing -g -g -O2 -fPIC
-I…]

(See full trace by running task with --trace)

===============

Errors for Esmart:

$ cc -fno-strict-aliasing -g -g -O2 -fPIC -D_FILE_OFFSET_BITS=64
-I/usr/lib/ruby/1.8/i486-linux
-I/usr/local/lib/site_ruby/1.8/i486-linux -c -I/opt/e17/include
-I/opt/e17/include/eina-0 -I/opt/e17/include/eina-0/eina
-I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2
-I/usr/include/libpng12 -L/opt/e17/lib -lesmart_container
-lesmart_draggies -lesmart_trans_x11 -lecore_evas -lImlib2 -lepsilon
-ledje -lcairo -lecore_x -lembryo -lecore_job -leet -lssl -lcrypto
-lecore_input -levas -lecore -leina -o
src/esmart_file_dialog/rb_esmart_file_dialog.o
src/esmart_file_dialog/rb_esmart_file_dialog.c
src/esmart_file_dialog/rb_esmart_file_dialog.c:21:39: error:
Esmart/Esmart_File_Dialog.h: No such file or directory
In file included from src/esmart_file_dialog/rb_esmart_file_dialog.c:22:
/usr/local/lib/site_ruby/1.8/i486-linux/evas/rb_evas.h:23: error:
expected specifier-qualifier-list before ‘Evas’
/usr/local/lib/site_ruby/1.8/i486-linux/evas/rb_evas.h:28: error:
expected declaration specifiers or ‘…’ before ‘Evas’
In file included from src/esmart_file_dialog/rb_esmart_file_dialog.c:23:
/usr/local/lib/site_ruby/1.8/i486-linux/evas/rb_evas_object.h:27:
error: expected specifier-qualifier-list before ‘Evas_Object’
/usr/local/lib/site_ruby/1.8/i486-linux/evas/rb_evas_object.h:35:
error: expected ‘)’ before ‘*’ token
src/esmart_file_dialog/rb_esmart_file_dialog.c:33: error: expected
declaration specifiers or ‘…’ before ‘Evas_Object’
src/esmart_file_dialog/rb_esmart_file_dialog.c:34: error: expected
declaration specifiers or ‘…’ before ‘Esmart_File_Dialog_Op’
src/esmart_file_dialog/rb_esmart_file_dialog.c: In function ‘c_init’:
src/esmart_file_dialog/rb_esmart_file_dialog.c:74: error:
‘RbEvasObject’ has no member named ‘real’
src/esmart_file_dialog/rb_esmart_file_dialog.c:74: error: ‘RbEvas’ has
no member named ‘real’
src/esmart_file_dialog/rb_esmart_file_dialog.c:77: error:
‘RbEvasObject’ has no member named ‘real’
src/esmart_file_dialog/rb_esmart_file_dialog.c:85: error:
‘RbEvasObject’ has no member named ‘real’
src/esmart_file_dialog/rb_esmart_file_dialog.c: At top level:
src/esmart_file_dialog/rb_esmart_file_dialog.c:91: error: expected
declaration specifiers or ‘…’ before ‘Evas_Object’
src/esmart_file_dialog/rb_esmart_file_dialog.c:92: error: expected
declaration specifiers or ‘…’ before ‘Esmart_File_Dialog_Op’
src/esmart_file_dialog/rb_esmart_file_dialog.c: In function ‘on_action’:
src/esmart_file_dialog/rb_esmart_file_dialog.c:96: error: ‘op’
undeclared (first use in this function)
src/esmart_file_dialog/rb_esmart_file_dialog.c:96: error: (Each
undeclared identifier is reported only once
src/esmart_file_dialog/rb_esmart_file_dialog.c:96: error: for each
function it appears in.)
src/esmart_file_dialog/rb_esmart_file_dialog.c:97: error:
‘ESMART_FILE_DIALOG_NEW’ undeclared (first use in this function)
src/esmart_file_dialog/rb_esmart_file_dialog.c:100: error:
‘ESMART_FILE_DIALOG_RENAME’ undeclared (first use in this function)
src/esmart_file_dialog/rb_esmart_file_dialog.c:103: error:
‘ESMART_FILE_DIALOG_DELETE’ undeclared (first use in this function)
src/esmart_file_dialog/rb_esmart_file_dialog.c:106: error:
‘ESMART_FILE_DIALOG_OK’ undeclared (first use in this function)
src/esmart_file_dialog/rb_esmart_file_dialog.c:109: error:
‘ESMART_FILE_DIALOG_CANCEL’ undeclared (first use in this function)
src/esmart_file_dialog/rb_esmart_file_dialog.c:112: error:
‘ESMART_FILE_DIALOG_DIR_CHANGED’ undeclared (first use in this
function)
src/esmart_file_dialog/rb_esmart_file_dialog.c: In function
‘c_edje_get’:
src/esmart_file_dialog/rb_esmart_file_dialog.c:124: error:
‘Evas_Object’ undeclared (first use in this function)
src/esmart_file_dialog/rb_esmart_file_dialog.c:124: error: ‘e’
undeclared (first use in this function)
src/esmart_file_dialog/rb_esmart_file_dialog.c:131: error:
‘RbEvasObject’ has no member named ‘real’
src/esmart_file_dialog/rb_esmart_file_dialog.c:133: error: too many
arguments to function ‘TO_EVAS’
src/esmart_file_dialog/rb_esmart_file_dialog.c: In function
‘c_selections_get’:
src/esmart_file_dialog/rb_esmart_file_dialog.c:141: error: ‘Evas_List’
undeclared (first use in this function)
src/esmart_file_dialog/rb_esmart_file_dialog.c:141: error: ‘list’
undeclared (first use in this function)
src/esmart_file_dialog/rb_esmart_file_dialog.c:141: error: ‘l’
undeclared (first use in this function)
src/esmart_file_dialog/rb_esmart_file_dialog.c:148: error:
‘RbEvasObject’ has no member named ‘real’
src/esmart_file_dialog/rb_esmart_file_dialog.c: In function
‘c_current_directory_get’:
src/esmart_file_dialog/rb_esmart_file_dialog.c:164: error:
‘RbEvasObject’ has no member named ‘real’
src/esmart_file_dialog/rb_esmart_file_dialog.c:164: warning:
assignment makes pointer from integer without a cast