autotools: Add eolian-cxx to elementary.
authorSavio Sena <savio@expertisesolutions.com.br>
Fri, 9 May 2014 20:51:39 +0000 (17:51 -0300)
committerSavio Sena <savio@expertisesolutions.com.br>
Mon, 21 Jul 2014 23:53:12 +0000 (20:53 -0300)
Conflicts:
src/lib/Makefile.am

legacy/elementary/Makefile_Eolian_Cxx_Helper.am [new file with mode: 0644]
legacy/elementary/configure.ac
legacy/elementary/m4/efl_stdcxx_11.m4 [new file with mode: 0644]
legacy/elementary/src/lib/Makefile.am
legacy/elementary/src/tests/Makefile.am
legacy/elementary/src/tests/elm_cxx_suite.cc [new file with mode: 0644]

diff --git a/legacy/elementary/Makefile_Eolian_Cxx_Helper.am b/legacy/elementary/Makefile_Eolian_Cxx_Helper.am
new file mode 100644 (file)
index 0000000..12ac58e
--- /dev/null
@@ -0,0 +1,19 @@
+
+if HAVE_EOLIAN_CXX
+EOLIAN_CXX = @eolian_cxx@
+_EOLIAN_CXX_DEP = @eolian_cxx@
+else
+EOLIAN_CXX = EFL_RUN_IN_TREE=1 $(top_builddir)/src/bin/eolian_cxx/eolian_cxx${EXEEXT}
+_EOLIAN_CXX_DEP = bin/eolian_cxx/eolian_cxx${EXEEXT}
+endif
+
+AM_V_EOLCXX = $(am__v_EOLCXX_@AM_V@)
+am__v_EOLCXX_ = $(am__v_EOLCXX_@AM_DEFAULT_V@)
+am__v_EOLCXX_0 = @echo "  EOLCXX  " $@;
+
+SUFFIXES += .eo.hh
+
+%.eo.hh: %.eo $(_EOLIAN_CXX_DEP)
+       $(AM_V_EOLCXX)$(EOLIAN_CXX) $(EOLIAN_FLAGS) -o $@ $<
+
+CLEANFILES += $(BUILT_SOURCES)
index a3948e7..a2553e2 100644 (file)
@@ -112,6 +112,7 @@ AC_PROG_CC_STDC
 AC_HEADER_STDC
 AC_C_CONST
 AC_FUNC_ALLOCA
+AC_PROG_CXX
 
 ELM_VERSION_MAJOR="v_maj"
 ELM_VERSION_MINOR="v_min"
@@ -224,6 +225,33 @@ requirement_elm="\
     eio >= efl_version \
     "
 
+EFL_CXX_COMPILE_STDCXX_11([ext])
+want_cxx11="yes"
+AC_ARG_ENABLE([c++11],
+   [AC_HELP_STRING([--disable-c++11],
+       [disable C++11 bindings. @<:@default=enabled@:>@])],
+   [want_cxx11="${enableval}"])
+
+if test "x${HAVE_CXX11}" = "x1" -a "x${want_cxx11}" = "xyes"; then
+   PKG_CHECK_MODULES([ELEMENTARY_CXX],
+      [
+        eo-cxx >= efl_version
+        eina-cxx >= efl_version
+        evas-cxx >= efl_version
+      ],
+      [
+        requirement_elm="${requirement_elm} \
+          eo-cxx >= efl_version \
+          eina-cxx >= efl_version \
+          evas-cxx >= efl_version \
+        "
+        have_cxx11="yes"
+      ],
+      [have_cxx11="no"]
+   )
+fi
+AM_CONDITIONAL([HAVE_CXX11], [test "x${have_cxx11}" = "xyes"])
+
 have_elementary_x="no"
 want_elementary_x="auto"
 AC_ARG_ENABLE([ecore-x],
@@ -527,7 +555,7 @@ if test "x$want_elementary_web" != "xnone"; then
                            "$webkit_datadir",
                            "WebKit's data dir")
         ELM_WEB2_DEF="#define"
-
+o
         elementary_web=$want_elementary_web
         requirement_elm="${want_elementary_web} ${requirement_elm}"
        ],
@@ -590,13 +618,16 @@ my_libs="-lm"
 AC_SUBST(my_libs)
 AC_SUBST(requirement_elm)
 
+
 EFL_WITH_BIN([eet], [eet-eet], [eet])
 EFL_WITH_BIN([edje], [edje-cc], [edje_cc])
 EFL_WITH_BIN([elementary], [elementary-codegen], [elementary_codegen])
 EFL_WITH_BIN([elementary], [elm-prefs-cc], [elm_prefs_cc])
 EFL_WITH_BIN([eolian], [eolian-gen], [eolian_gen])
-# Force the helper to try external eolian-gen
+EFL_WITH_BIN([eolian-cxx], [eolian-cxx], [eolian_cxx])
+# Force the helper to try external eolian generators
 AM_CONDITIONAL(HAVE_EOLIAN_GEN, [true])
+AM_CONDITIONAL(HAVE_EOLIAN_CXX, [true])
 
 EFL_CHECK_DOXYGEN([build_doc="yes"], [build_doc="no"])
 
@@ -725,6 +756,7 @@ echo "  edje_cc..................: ${edje_cc}"
 echo "  elementary_codegen.......: ${elementary_codegen}"
 echo "  elm_prefs_cc.............: ${elm_prefs_cc}"
 echo "  eolian_gen...............: ${eolian_gen}"
+echo "  eolian_cxx...............: ${eolian_cxx}"
 echo
 echo "  Build elementary_test....: ${have_elementary_test}"
 echo "  Build elementary_codegen.: ${have_elementary_codegen}"
@@ -733,10 +765,12 @@ echo "  Examples.................: ${enable_build_examples}"
 echo "  Examples installed.......: ${enable_install_examples}"
 echo "  Build elementary_config..: ${have_elementary_config}"
 echo "  Enable debug.............: ${want_elementary_debug}"
+echo "  Enable C++...............: ${have_cxx11}"
 echo
 echo "Compilation................: make (or gmake)"
 echo "  CPPFLAGS.................: $CPPFLAGS"
 echo "  CFLAGS...................: $CFLAGS"
+echo "  CXXFLAGS.................: $CXXFLAGS"
 echo "  LDFLAGS..................: $LDFLAGS"
 echo
 if test "${build_tests}" = "none"; then
diff --git a/legacy/elementary/m4/efl_stdcxx_11.m4 b/legacy/elementary/m4/efl_stdcxx_11.m4
new file mode 100644 (file)
index 0000000..cdd3934
--- /dev/null
@@ -0,0 +1,133 @@
+# ============================================================================
+#  http://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx_11.html
+# ============================================================================
+#
+# SYNOPSIS
+#
+#   AX_CXX_COMPILE_STDCXX_11([ext|noext],[mandatory|optional])
+#
+# DESCRIPTION
+#
+#   Check for baseline language coverage in the compiler for the C++11
+#   standard; if necessary, add switches to CXXFLAGS to enable support.
+#
+#   The first argument, if specified, indicates whether you insist on an
+#   extended mode (e.g. -std=gnu++11) or a strict conformance mode (e.g.
+#   -std=c++11).  If neither is specified, you get whatever works, with
+#   preference for an extended mode.
+#
+#   The second argument, if specified 'mandatory' or if left unspecified,
+#   indicates that baseline C++11 support is required and that the macro
+#   should error out if no mode with that support is found.  If specified
+#   'optional', then configuration proceeds regardless, after defining
+#   HAVE_CXX11 if and only if a supporting mode is found.
+#
+# LICENSE
+#
+#   Copyright (c) 2008 Benjamin Kosnik <bkoz@redhat.com>
+#   Copyright (c) 2012 Zack Weinberg <zackw@panix.com>
+#   Copyright (c) 2013 Roy Stogner <roystgnr@ices.utexas.edu>
+#
+#   Copying and distribution of this file, with or without modification, are
+#   permitted in any medium without royalty provided the copyright notice
+#   and this notice are preserved. This file is offered as-is, without any
+#   warranty.
+
+#serial 3
+
+m4_define([_EFL_CXX_COMPILE_STDCXX_11_testbody], [
+  template <typename T>
+    struct check
+    {
+      static_assert(sizeof(int) <= sizeof(T), "not big enough");
+    };
+
+    typedef check<check<bool>> right_angle_brackets;
+
+    int a;
+    decltype(a) b;
+
+    typedef check<int> check_type;
+    check_type c;
+    check_type&& cr = static_cast<check_type&&>(c);
+
+    auto d = a;
+])
+
+AC_DEFUN([EFL_CXX_COMPILE_STDCXX_11], [dnl
+  m4_if([$1], [], [],
+        [$1], [ext], [],
+        [$1], [noext], [],
+        [m4_fatal([invalid argument `$1' to AX_CXX_COMPILE_STDCXX_11])])dnl
+  m4_if([$2], [], [ax_cxx_compile_cxx11_required=true],
+        [$2], [mandatory], [ax_cxx_compile_cxx11_required=true],
+        [$2], [optional], [ax_cxx_compile_cxx11_required=false],
+        [m4_fatal([invalid second argument `$2' to AX_CXX_COMPILE_STDCXX_11])])dnl
+  AC_LANG_PUSH([C++])dnl
+  ac_success=no
+  AC_CACHE_CHECK(whether $CXX supports C++11 features by default,
+  ax_cv_cxx_compile_cxx11,
+  [AC_COMPILE_IFELSE([AC_LANG_SOURCE([_EFL_CXX_COMPILE_STDCXX_11_testbody])],
+    [ax_cv_cxx_compile_cxx11=yes],
+    [ax_cv_cxx_compile_cxx11=no])])
+  if test x$ax_cv_cxx_compile_cxx11 = xyes; then
+    ac_success=yes
+  fi
+
+  m4_if([$1], [noext], [], [dnl
+  if test x$ac_success = xno; then
+    for switch in -std=gnu++11; do
+      cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx11_$switch])
+      AC_CACHE_CHECK(whether $CXX supports C++11 features with $switch,
+                     $cachevar,
+        [ac_save_CXXFLAGS="$CXXFLAGS"
+         CXXFLAGS="$CXXFLAGS $switch"
+         AC_COMPILE_IFELSE([AC_LANG_SOURCE([_EFL_CXX_COMPILE_STDCXX_11_testbody])],
+          [eval $cachevar=yes],
+          [eval $cachevar=no])
+         CXXFLAGS="$ac_save_CXXFLAGS"])
+      if eval test x\$$cachevar = xyes; then
+        CXXFLAGS="$CXXFLAGS $switch"
+        ac_success=yes
+        break
+      fi
+    done
+  fi])
+
+  m4_if([$1], [ext], [], [dnl
+  if test x$ac_success = xno; then
+    for switch in -std=c++11; do
+      cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx11_$switch])
+      AC_CACHE_CHECK(whether $CXX supports C++11 features with $switch,
+                     $cachevar,
+        [ac_save_CXXFLAGS="$CXXFLAGS"
+         CXXFLAGS="$CXXFLAGS $switch"
+         AC_COMPILE_IFELSE([AC_LANG_SOURCE([_EFL_CXX_COMPILE_STDCXX_11_testbody])],
+          [eval $cachevar=yes],
+          [eval $cachevar=no])
+         CXXFLAGS="$ac_save_CXXFLAGS"])
+      if eval test x\$$cachevar = xyes; then
+        CXXFLAGS="$CXXFLAGS $switch"
+        ac_success=yes
+        break
+      fi
+    done
+  fi])
+  AC_LANG_POP([C++])
+  if test x$ax_cxx_compile_cxx11_required = xtrue; then
+    if test x$ac_success = xno; then
+      AC_MSG_ERROR([*** A compiler with support for C++11 language features is required.])
+    fi
+  else
+    if test x$ac_success = xno; then
+      HAVE_CXX11=0
+      AC_MSG_NOTICE([No compiler with C++11 support was found])
+    else
+      HAVE_CXX11=1
+      AC_DEFINE(HAVE_CXX11,1,
+                [define if the compiler supports basic C++11 syntax])
+    fi
+
+    AC_SUBST(HAVE_CXX11)
+  fi
+])
index 887dfe8..f535b93 100644 (file)
@@ -7,6 +7,7 @@ EOLIAN_FLAGS = @DEPS_EOLIAN_FLAGS@ \
               -I$(top_srcdir)/src/lib
 
 include $(top_srcdir)/Makefile_Eolian_Helper.am
+include $(top_srcdir)/Makefile_Eolian_Cxx_Helper.am
 
 AM_CPPFLAGS = \
 -DELM_INTERNAL_API_ARGESFSDFEFC=1 \
@@ -533,6 +534,95 @@ elm_factory.h \
 elm_factory.c \
 elm_intro.h.in
 
+elm_eolian_sources = \
+elm_widget.eo \
+elm_container.eo \
+elm_layout.eo \
+elm_interface_scrollable.eo \
+elm_pan.eo \
+elm_frame.eo \
+elm_hover.eo \
+elm_access.eo \
+elm_actionslider.eo \
+elm_app_client.eo \
+elm_app_client_view.eo \
+elm_app_server.eo \
+elm_app_server_view.eo \
+elm_atspi_app_object.eo \
+elm_interface_atspi_accessible.eo \
+elm_interface_atspi_action.eo \
+elm_interface_atspi_component.eo \
+elm_interface_atspi_value.eo \
+elm_interface_atspi_widget.eo \
+elm_interface_atspi_widget_action.eo \
+elm_interface_atspi_window.eo \
+elm_bg.eo \
+elm_box.eo \
+elm_bubble.eo \
+elm_button.eo \
+elm_calendar.eo \
+elm_check.eo \
+elm_clock.eo \
+elm_colorselector.eo \
+elm_conformant.eo \
+elc_ctxpopup.eo \
+elm_datetime.eo \
+elm_dayselector.eo \
+elm_diskselector.eo \
+elm_entry.eo \
+elc_fileselector.eo \
+elc_fileselector_button.eo \
+elc_fileselector_entry.eo \
+elm_flipselector.eo \
+elm_flip.eo \
+elm_gengrid.eo \
+elm_gengrid_pan.eo \
+elm_genlist.eo \
+elm_genlist_pan.eo \
+elm_gesture_layer.eo \
+elm_glview.eo \
+elm_grid.eo \
+elc_hoversel.eo \
+elm_image.eo \
+elm_icon.eo \
+elm_index.eo \
+elm_interface_fileselector.eo \
+elm_inwin.eo \
+elm_label.eo \
+elm_list.eo \
+elm_map_pan.eo \
+elm_map.eo \
+elm_menu.eo \
+elc_multibuttonentry.eo \
+elc_naviframe.eo \
+elm_panel.eo \
+elm_mapbuf.eo \
+elm_notify.eo \
+elm_panes.eo \
+elm_photocam.eo \
+elm_photocam_pan.eo \
+elm_photo.eo \
+elc_player.eo \
+elm_plug.eo \
+elc_popup.eo \
+elm_prefs.eo \
+elm_progressbar.eo \
+elm_radio.eo \
+elm_route.eo \
+elm_scroller.eo \
+elm_segment_control.eo \
+elm_separator.eo \
+elm_slider.eo \
+elm_slideshow.eo \
+elm_spinner.eo \
+elm_systray.eo \
+elm_table.eo \
+elm_thumb.eo \
+elm_toolbar.eo \
+elm_video.eo \
+elm_web.eo \
+elm_win.eo
+
 BUILT_SOURCES = \
                elm_widget.eo.c \
                elm_widget.eo.h \
@@ -874,8 +964,195 @@ elementaryeolianfiles_DATA = \
             elm_web.eo \
             elm_win.eo
 
-EXTRA_DIST += \
-              ${elementaryeolianfiles_DATA}
+if HAVE_CXX11
+BUILT_SOURCES += \
+            elm_widget.eo.hh \
+            elm_container.eo.hh \
+            elm_layout.eo.hh \
+            elm_interface_scrollable.eo.hh \
+            elm_pan.eo.hh \
+            elm_frame.eo.hh \
+            elm_hover.eo.hh \
+            elm_access.eo.hh \
+            elm_actionslider.eo.hh \
+            elm_app_client.eo.hh \
+            elm_app_client_view.eo.hh \
+            elm_app_server.eo.hh \
+            elm_app_server_view.eo.hh \
+            elm_atspi_app_object.eo.hh \
+            elm_interface_atspi_accessible.eo.hh \
+            elm_interface_atspi_action.eo.hh \
+            elm_interface_atspi_component.eo.hh \
+            elm_interface_atspi_editable_text.eo.hh \
+            elm_interface_atspi_image.eo.hh \
+            elm_interface_atspi_selection.eo.hh \
+            elm_interface_atspi_text.eo.hh \
+            elm_interface_atspi_value.eo.hh \
+            elm_interface_atspi_widget.eo.hh \
+            elm_interface_atspi_widget_action.eo.hh \
+            elm_interface_atspi_window.eo.hh \
+            elm_bg.eo.hh \
+            elm_box.eo.hh \
+            elm_bubble.eo.hh \
+            elm_button.eo.hh \
+            elm_calendar.eo.hh \
+            elm_check.eo.hh \
+            elm_clock.eo.hh \
+            elm_colorselector.eo.hh \
+            elm_conformant.eo.hh \
+            elc_ctxpopup.eo.hh \
+            elm_datetime.eo.hh \
+            elm_dayselector.eo.hh \
+            elm_diskselector.eo.hh \
+            elm_entry.eo.hh \
+            elc_fileselector.eo.hh \
+            elc_fileselector_button.eo.hh \
+            elc_fileselector_entry.eo.hh \
+            elm_flipselector.eo.hh \
+            elm_flip.eo.hh \
+            elm_gengrid.eo.hh \
+            elm_gengrid_pan.eo.hh \
+            elm_genlist.eo.hh \
+            elm_genlist_pan.eo.hh \
+            elm_gesture_layer.eo.hh \
+            elm_glview.eo.hh \
+            elm_grid.eo.hh \
+            elc_hoversel.eo.hh \
+            elm_image.eo.hh \
+            elm_icon.eo.hh \
+            elm_index.eo.hh \
+            elm_interface_fileselector.eo.hh \
+            elm_inwin.eo.hh \
+            elm_label.eo.hh \
+            elm_list.eo.hh \
+            elm_map_pan.eo.hh \
+            elm_map.eo.hh \
+            elm_menu.eo.hh \
+            elc_multibuttonentry.eo.hh \
+            elc_naviframe.eo.hh \
+            elm_panel.eo.hh \
+            elm_mapbuf.eo.hh \
+            elm_notify.eo.hh \
+            elm_panes.eo.hh \
+            elm_photocam.eo.hh \
+            elm_photocam_pan.eo.hh \
+            elm_photo.eo.hh \
+            elc_player.eo.hh \
+            elm_plug.eo.hh \
+            elc_popup.eo.hh \
+            elm_prefs.eo.hh \
+            elm_progressbar.eo.hh \
+            elm_radio.eo.hh \
+            elm_route.eo.hh \
+            elm_scroller.eo.hh \
+            elm_segment_control.eo.hh \
+            elm_separator.eo.hh \
+            elm_slider.eo.hh \
+            elm_slideshow.eo.hh \
+            elm_spinner.eo.hh \
+            elm_systray.eo.hh \
+            elm_table.eo.hh \
+            elm_thumb.eo.hh \
+            elm_toolbar.eo.hh \
+            elm_video.eo.hh \
+            elm_web.eo.hh \
+            elm_win.eo.hh
+
+nodist_includesunstable_HEADERS = \
+            elm_widget.eo.hh \
+            elm_container.eo.hh \
+            elm_layout.eo.hh \
+            elm_interface_scrollable.eo.hh \
+            elm_pan.eo.hh \
+            elm_frame.eo.hh \
+            elm_hover.eo.hh \
+            elm_access.eo.hh \
+            elm_actionslider.eo.hh \
+            elm_app_client.eo.hh \
+            elm_app_client_view.eo.hh \
+            elm_app_server.eo.hh \
+            elm_app_server_view.eo.hh \
+            elm_atspi_app_object.eo.hh \
+            elm_interface_atspi_accessible.eo.hh \
+            elm_interface_atspi_action.eo.hh \
+            elm_interface_atspi_component.eo.hh \
+            elm_interface_atspi_editable_text.eo.hh \
+            elm_interface_atspi_image.eo.hh \
+            elm_interface_atspi_selection.eo.hh \
+            elm_interface_atspi_text.eo.hh \
+            elm_interface_atspi_value.eo.hh \
+            elm_interface_atspi_widget.eo.hh \
+            elm_interface_atspi_widget_action.eo.hh \
+            elm_interface_atspi_window.eo.hh \
+            elm_bg.eo.hh \
+            elm_box.eo.hh \
+            elm_bubble.eo.hh \
+            elm_button.eo.hh \
+            elm_calendar.eo.hh \
+            elm_check.eo.hh \
+            elm_clock.eo.hh \
+            elm_colorselector.eo.hh \
+            elm_conformant.eo.hh \
+            elc_ctxpopup.eo.hh \
+            elm_datetime.eo.hh \
+            elm_dayselector.eo.hh \
+            elm_diskselector.eo.hh \
+            elm_entry.eo.hh \
+            elc_fileselector.eo.hh \
+            elc_fileselector_button.eo.hh \
+            elc_fileselector_entry.eo.hh \
+            elm_flipselector.eo.hh \
+            elm_flip.eo.hh \
+            elm_gengrid.eo.hh \
+            elm_gengrid_pan.eo.hh \
+            elm_genlist.eo.hh \
+            elm_genlist_pan.eo.hh \
+            elm_gesture_layer.eo.hh \
+            elm_glview.eo.hh \
+            elm_grid.eo.hh \
+            elc_hoversel.eo.hh \
+            elm_image.eo.hh \
+            elm_icon.eo.hh \
+            elm_index.eo.hh \
+            elm_interface_fileselector.eo.hh \
+            elm_inwin.eo.hh \
+            elm_label.eo.hh \
+            elm_list.eo.hh \
+            elm_map_pan.eo.hh \
+            elm_map.eo.hh \
+            elm_menu.eo.hh \
+            elc_multibuttonentry.eo.hh \
+            elc_naviframe.eo.hh \
+            elm_panel.eo.hh \
+            elm_mapbuf.eo.hh \
+            elm_notify.eo.hh \
+            elm_panes.eo.hh \
+            elm_photocam.eo.hh \
+            elm_photocam_pan.eo.hh \
+            elm_photo.eo.hh \
+            elc_player.eo.hh \
+            elm_plug.eo.hh \
+            elc_popup.eo.hh \
+            elm_prefs.eo.hh \
+            elm_progressbar.eo.hh \
+            elm_radio.eo.hh \
+            elm_route.eo.hh \
+            elm_scroller.eo.hh \
+            elm_segment_control.eo.hh \
+            elm_separator.eo.hh \
+            elm_slider.eo.hh \
+            elm_slideshow.eo.hh \
+            elm_spinner.eo.hh \
+            elm_systray.eo.hh \
+            elm_table.eo.hh \
+            elm_thumb.eo.hh \
+            elm_toolbar.eo.hh \
+            elm_video.eo.hh \
+            elm_web.eo.hh \
+            elm_win.eo.hh
+endif
+
+EXTRA_DIST += ${elementaryeolianfiles_DATA}
 
 nodist_includesunstable_HEADERS = \
                                  elm_widget.eo.h \
@@ -1032,3 +1309,4 @@ nodist_includesunstable_HEADERS = \
                                  elm_video.eo.legacy.h \
                                  elm_web.eo.legacy.h \
                                  elm_win.eo.legacy.h
+
index 12fc454..bc810b4 100644 (file)
@@ -98,3 +98,37 @@ elm_suite_LDADD = \
        @ELEMENTARY_LIBS@ \
        @ELEMENTARY_WEB_LIBS@ \
        @my_libs@
+
+if HAVE_CXX11
+TESTS += elm_cxx_suite
+check_PROGRAMS = elm_cxx_suite
+
+elm_cxx_suite_SOURCES = elm_cxx_suite.cc
+elm_cxx_suite_CPPFLAGS = \
+       -DTESTS_BUILD_DIR=\"${top_builddir}/src/tests\" \
+       -I$(top_srcdir)/src/lib \
+       -I$(top_builddir)/src/lib \
+       @CHECK_CFLAGS@ \
+       @ELEMENTARY_CFLAGS@ \
+       @ELEMENTARY_X_CFLAGS@ \
+       @ELEMENTARY_CXX_CFLAGS@ \
+       @ELEMENTARY_FB_CFLAGS@ \
+       @ELEMENTARY_SDL_CFLAGS@ \
+       @ELEMENTARY_WIN32_CFLAGS@ \
+       @ELEMENTARY_ELOCATION_CFLAGS@ \
+       @ELEMENTARY_EWEATHER_CFLAGS@ \
+       @ELEMENTARY_WEB_CFLAGS@ \
+       @ELEMENTARY_EMAP_CFLAGS@ \
+       @ELEMENTARY_WAYLAND_CFLAGS@ \
+       @EVIL_CFLAGS@
+
+elm_cxx_suite_LDADD = \
+       $(top_builddir)/src/lib/libelementary.la \
+       @CHECK_LIBS@ \
+       @ELEMENTARY_EWEATHER_LIBS@ \
+       @ELEMENTARY_ELOCATION_LIBS@ \
+       @ELEMENTARY_EMAP_LIBS@ \
+       @ELEMENTARY_LIBS@ \
+       @ELEMENTARY_WEB_LIBS@ \
+       @my_libs@
+endif
diff --git a/legacy/elementary/src/tests/elm_cxx_suite.cc b/legacy/elementary/src/tests/elm_cxx_suite.cc
new file mode 100644 (file)
index 0000000..6af675d
--- /dev/null
@@ -0,0 +1,117 @@
+
+#ifdef HAVE_CONFIG_H
+# include "elementary_config.h"
+#endif
+
+#define ELM_INTERNAL_API_ARGESFSDFEFC
+#define ELM_INTERFACE_ATSPI_ACCESSIBLE_PROTECTED
+#define ELM_INTERFACE_ATSPI_COMPONENT_PROTECTED
+#define ELM_INTERFACE_ATSPI_ACTION_PROTECTED
+#define ELM_INTERFACE_ATSPI_VALUE_PROTECTED
+#define ELM_INTERFACE_ATSPI_EDITABLE_TEXT_PROTECTED
+#define ELM_INTERFACE_ATSPI_TEXT_PROTECTED
+#define ELM_INTERFACE_ATSPI_SELECTION_PROTECTED
+#define ELM_INTERFACE_ATSPI_IMAGE_PROTECTED
+#define ELM_INTERFACE_ATSPI_WIDGET_ACTION_PROTECTED
+
+#include <Eo.h>
+#include <Evas.h>
+#include <Elementary.h>
+#include <elm_widget.h>
+#include <elm_interface_atspi_accessible.h>
+
+#include <elc_ctxpopup.eo.hh>
+#include <elc_fileselector_button.eo.hh>
+#include <elc_fileselector_entry.eo.hh>
+#include <elc_fileselector.eo.hh>
+#include <elc_hoversel.eo.hh>
+#include <elc_multibuttonentry.eo.hh>
+#include <elc_naviframe.eo.hh>
+#include <elc_player.eo.hh>
+#include <elc_popup.eo.hh>
+#include <elm_access.eo.hh>
+#include <elm_actionslider.eo.hh>
+#include <elm_app_client.eo.hh>
+#include <elm_app_client_view.eo.hh>
+#include <elm_app_server.eo.hh>
+#include <elm_app_server_view.eo.hh>
+#include <elm_atspi_app_object.eo.hh>
+#include <elm_bg.eo.hh>
+#include <elm_box.eo.hh>
+#include <elm_bubble.eo.hh>
+#include <elm_button.eo.hh>
+#include <elm_calendar.eo.hh>
+#include <elm_check.eo.hh>
+#include <elm_clock.eo.hh>
+#include <elm_colorselector.eo.hh>
+#include <elm_conformant.eo.hh>
+#include <elm_container.eo.hh>
+#include <elm_datetime.eo.hh>
+#include <elm_dayselector.eo.hh>
+#include <elm_diskselector.eo.hh>
+#include <elm_entry.eo.hh>
+#include <elm_flip.eo.hh>
+#include <elm_flipselector.eo.hh>
+#include <elm_frame.eo.hh>
+#include <elm_gengrid.eo.hh>
+#include <elm_gengrid_pan.eo.hh>
+#include <elm_genlist.eo.hh>
+#include <elm_genlist_pan.eo.hh>
+#include <elm_gesture_layer.eo.hh>
+#include <elm_glview.eo.hh>
+#include <elm_grid.eo.hh>
+#include <elm_hover.eo.hh>
+#include <elm_icon.eo.hh>
+#include <elm_image.eo.hh>
+#include <elm_index.eo.hh>
+#include <elm_interface_atspi_accessible.eo.hh>
+#include <elm_interface_atspi_action.eo.hh>
+#include <elm_interface_atspi_component.eo.hh>
+#include <elm_interface_atspi_editable_text.eo.hh>
+#include <elm_interface_atspi_image.eo.hh>
+#include <elm_interface_atspi_selection.eo.hh>
+#include <elm_interface_atspi_text.eo.hh>
+#include <elm_interface_atspi_value.eo.hh>
+#include <elm_interface_atspi_widget_action.eo.hh>
+#include <elm_interface_atspi_widget.eo.hh>
+#include <elm_interface_atspi_window.eo.hh>
+#include <elm_interface_fileselector.eo.hh>
+#include <elm_interface_scrollable.eo.hh>
+#include <elm_inwin.eo.hh>
+#include <elm_label.eo.hh>
+#include <elm_layout.eo.hh>
+#include <elm_list.eo.hh>
+#include <elm_mapbuf.eo.hh>
+#include <elm_map.eo.hh>
+#include <elm_map_pan.eo.hh>
+#include <elm_menu.eo.hh>
+#include <elm_notify.eo.hh>
+#include <elm_panel.eo.hh>
+#include <elm_pan.eo.hh>
+#include <elm_panes.eo.hh>
+#include <elm_photocam.eo.hh>
+#include <elm_photocam_pan.eo.hh>
+#include <elm_photo.eo.hh>
+#include <elm_plug.eo.hh>
+#include <elm_prefs.eo.hh>
+#include <elm_progressbar.eo.hh>
+#include <elm_radio.eo.hh>
+#include <elm_route.eo.hh>
+#include <elm_scroller.eo.hh>
+#include <elm_segment_control.eo.hh>
+#include <elm_separator.eo.hh>
+#include <elm_slider.eo.hh>
+#include <elm_slideshow.eo.hh>
+#include <elm_spinner.eo.hh>
+#include <elm_systray.eo.hh>
+#include <elm_table.eo.hh>
+#include <elm_thumb.eo.hh>
+#include <elm_toolbar.eo.hh>
+#include <elm_video.eo.hh>
+#include <elm_web.eo.hh>
+#include <elm_widget.eo.hh>
+#include <elm_win.eo.hh>
+
+int main()
+{
+}