From: Siemen Baader Date: 2009-04-17T00:09:25+09:00 Subject: enlightenment libs + ruby 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 Sauerbeck'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