For correct functionality when running under Wayland you must use the latest versions of all the EFL components under Wayland. As a precursor to these steps you must have downloaded and compiled Wayland as per the building instructions.

example codes

#include <Elementary.h>

static void
on_click(void *data, Evas_Object *obj, void *event_info)
{
   evas_object_del(data);
}

EAPI_MAIN int
elm_main(int argc, char **argv)
{
   Evas_Object *win, *btn;

   elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);

   win = elm_win_util_standard_add("Main", "Hello, World!");
   evas_object_resize(win, 1920, 1080);
   elm_win_autodel_set(win, EINA_TRUE);

   btn = elm_button_add(win);
   elm_object_text_set(btn, "Goodbye Cruel World");
   elm_win_resize_object_add(win, btn);
   evas_object_smart_callback_add(btn, "clicked", on_click, win);
   evas_object_show(btn);

   evas_object_show(win);

   elm_run();

   return 0;
}
ELM_MAIN()

compile command

source env.sh
gcc -o elm elm.c pkg-config --cflags --libs elementary

start weston

weston &

run example

./elm

elm

notes

Running EFL applications under Wayland
For applications that use Ecore_Evas directly set the environment variable ECORE_EVAS_ENGINE to either wayland_shm or wayland_egl depending on whether you wish to use the SHM based interface with software rendering or use EGL.

For applications that use Elementary set the environment variable ELM_DISPLAY to wl. You may also set the environment variable ELM_ACCEL to none to use software rendering, or to gl to use hardware accelerated rendering.

For more debug info, please set:
export MESA_DEBUG=1
export EGL_LOG_LEVEL=debug
export LIBGL_DEBUG=verbose
export WAYLAND_DEBUG=1

Running EFL applications under Wayland based on Ubuntu 14.04 : elm example