--- /dev/null
+pkg_check_modules(GLIB glib-2.0)
+pkg_check_modules(TIZEN vconf)
+
+EFL_OPTION(ENABLE_GLIB "Whenever to integrate with Glib" ${GLIB_FOUND} DEPENDS GLIB_FOUND OFF)
+
+EFL_OPTION(ENABLE_GLIB_ALWAYS "Always integrate with Glib, otheriwse needs explicit call to ecore_main_loop_glib_integrate()" OFF DEPENDS "ENABLE_GLIB" OFF)
+
+EFL_OPTION(ENABLE_G_MAIN_LOOP "Enable ecore_main_loop based on g_main_loop" OFF DEPENDS "ENABLE_GLIB" OFF)
+
+EFL_OPTION(ENABLE_TIZEN "Enable tizen support" OFF DEPENDS "TIZEN_FOUND" OFF)
+
+# TODO: these need eldbus
+set(ECORE_MODULE_TYPE_SYSTEM_SYSTEMD_DEFAULT OFF) # ${ENABLE_SYSTEMD})
+set(ECORE_MODULE_TYPE_SYSTEM_UPOWER_DEFAULT OFF)
+set(ECORE_MODULE_TYPE_SYSTEM_TIZEN_DEFAULT ${ENABLE_TIZEN})
+
+# TODO libuv
+# TODO gstreamer
+# TODO gstreamer1
+
+if("${BUILD_PROFILE}" STREQUAL "dev" AND HAVE_BACKTRACE)
+ CHECK_APPEND_DEFINE(WANT_ECORE_TIMER_DUMP 1)
+else()
+ CHECK_APPEND_DEFINE(WANT_ECORE_TIMER_DUMP "")
+endif()
+
+CHECK_APPEND_DEFINE(GLIB_INTEGRATION_ALWAYS "${ENABLE_GLIB_ALWAYS}")
+CHECK_APPEND_DEFINE(HAVE_GLIB "${ENABLE_GLIB}")
+CHECK_APPEND_DEFINE(HAVE_TIZEN_CONFIGURATION_MANAGER "${ENABLE_TIZEN}")
+CHECK_APPEND_DEFINE(USE_G_MAIN_LOOP "${ENABLE_G_MAIN_LOOP}")
+
+FUNC_CHECK(epoll_create NAME HAVE_EPOLL INCLUDE_FILES sys/epoll.h)
+FUNC_CHECK(execvp INCLUDE_FILES unistd.h)
+FUNC_CHECK(gettimeofday INCLUDE_FILES sys/time.h)
+FUNC_CHECK(isfinite INCLUDE_FILES math.h LIBRARIES m)
+FUNC_CHECK(pause INCLUDE_FILES unistd.h)
+FUNC_CHECK(timerfd_create INCLUDE_FILES sys/timerfd.h)
+
+HEADER_CHECK(ieeefp.h)
+HEADER_CHECK(langinfo.h)
+HEADER_CHECK(sys/epoll.h)
+HEADER_CHECK(sys/timerfd.h)
+HEADER_CHECK(sys/wait.h)
--- /dev/null
+set(DESCRIPTION "Ecore event abstraction library")
+
+set(PUBLIC_LIBRARIES
+ efl
+ eina
+ eo
+)
+
+set(LIBRARIES
+ m
+)
+
+if(ENABLE_SYSTEMD)
+ list(APPEND PKG_CONFIG_REQUIRES_PRIVATE libsystemd)
+endif()
+
+if(ENABLE_GLIB)
+ list(APPEND PKG_CONFIG_REQUIRES_PRIVATE glib-2.0 gthread-2.0)
+endif()
+
+set(PUBLIC_EO_FILES
+ ecore_exe.eo
+ ecore_poller.eo
+ ecore_types.eot
+ efl_io_buffered_stream.eo
+ efl_io_closer_fd.eo
+ efl_io_copier.eo
+ efl_io_file.eo
+ efl_io_positioner_fd.eo
+ efl_io_reader_fd.eo
+ efl_io_sizer_fd.eo
+ efl_io_stderr.eo
+ efl_io_stdin.eo
+ efl_io_stdout.eo
+ efl_io_writer_fd.eo
+ efl_loop.eo
+ efl_loop_fd.eo
+ efl_loop_timer.eo
+ efl_loop_user.eo
+ efl_promise.eo
+)
+
+set(PUBLIC_HEADERS
+ Ecore.h
+ Ecore_Common.h
+ Ecore_Eo.h
+ Ecore_Getopt.h
+ Ecore_Legacy.h
+)
+
+set(SOURCES
+ ecore.c
+ ecore_alloc.c
+ ecore_anim.c
+ ecore_app.c
+ ecore_events.c
+ ecore_exe.c
+ ecore_exe_private.h
+ ecore_getopt.c
+ ecore_glib.c
+ ecore_idle_enterer.c
+ ecore_idle_exiter.c
+ ecore_idler.c
+ ecore_internal.h
+ ecore_job.c
+ ecore_main.c
+ ecore_pipe.c
+ ecore_poller.c
+ ecore_private.h
+ ecore_thread.c
+ ecore_throttle.c
+ ecore_time.c
+ ecore_timer.c
+ efl_io_buffered_stream.c
+ efl_io_closer_fd.c
+ efl_io_copier.c
+ efl_io_file.c
+ efl_io_positioner_fd.c
+ efl_io_reader_fd.c
+ efl_io_sizer_fd.c
+ efl_io_stderr.c
+ efl_io_stdin.c
+ efl_io_stdout.c
+ efl_io_writer_fd.c
+ efl_loop_fd.c
+ efl_loop_user.c
+ efl_promise.c
+)
+
+# TODO: win32
+# TODO: ps3
+
+list(APPEND SOURCES
+ ecore_exe_posix.c
+ ecore_signal.c
+)