forked from enlightenment/efl
js: Fix compilation of new data types in JS binding
This commit is contained in:
parent
6dc0a07a85
commit
297415cc53
|
@ -52,7 +52,7 @@ tests_eolian_js_libeolian_js_suite_la_CPPFLAGS = \
|
||||||
-DTESTS_BUILD_DIR=\"$(top_builddir)/src/tests/eolian_js\" \
|
-DTESTS_BUILD_DIR=\"$(top_builddir)/src/tests/eolian_js\" \
|
||||||
@CHECK_CFLAGS@ @EOLIAN_CXX_CFLAGS@ @EINA_JS_CFLAGS@ @EO_JS_CFLAGS@ \
|
@CHECK_CFLAGS@ @EOLIAN_CXX_CFLAGS@ @EINA_JS_CFLAGS@ @EO_JS_CFLAGS@ \
|
||||||
@EOLIAN_CFLAGS@ @EINA_CFLAGS@ @EO_CFLAGS@ @ECORE_CFLAGS@ @EINA_CXX_CFLAGS@ \
|
@EOLIAN_CFLAGS@ @EINA_CFLAGS@ @EO_CFLAGS@ @ECORE_CFLAGS@ @EINA_CXX_CFLAGS@ \
|
||||||
@EO_JS_CFLAGS@ @EO_CXX_CFLAGS@
|
@EO_JS_CFLAGS@ @EO_CXX_CFLAGS@ @ECORE_CXX_CFLAGS@
|
||||||
tests_eolian_js_libeolian_js_suite_la_LIBADD = \
|
tests_eolian_js_libeolian_js_suite_la_LIBADD = \
|
||||||
@CHECK_LIBS@ @USE_EO_LIBS@ @USE_EINA_LIBS@ @USE_EOLIAN_LIBS@ @USE_EFL_JS_LIBS@
|
@CHECK_LIBS@ @USE_EO_LIBS@ @USE_EINA_LIBS@ @USE_EOLIAN_LIBS@ @USE_EFL_JS_LIBS@
|
||||||
tests_eolian_js_libeolian_js_suite_la_DEPENDENCIES = @USE_EINA_INTERNAL_LIBS@ @USE_EO_INTERNAL_LIBS@ @USE_EFL_JS_INTERNAL_LIBS@
|
tests_eolian_js_libeolian_js_suite_la_DEPENDENCIES = @USE_EINA_INTERNAL_LIBS@ @USE_EO_INTERNAL_LIBS@ @USE_EFL_JS_INTERNAL_LIBS@
|
||||||
|
@ -109,7 +109,7 @@ tests_eolian_js_eolian_js_suite_CPPFLAGS = \
|
||||||
-DTESTS_BUILD_DIR=\"$(top_builddir)/src/tests/eolian_js\" \
|
-DTESTS_BUILD_DIR=\"$(top_builddir)/src/tests/eolian_js\" \
|
||||||
@CHECK_CFLAGS@ @EOLIAN_CXX_CFLAGS@ @EINA_JS_CFLAGS@ @EO_JS_CFLAGS@ @EFL_JS_CFLAGS@ \
|
@CHECK_CFLAGS@ @EOLIAN_CXX_CFLAGS@ @EINA_JS_CFLAGS@ @EO_JS_CFLAGS@ @EFL_JS_CFLAGS@ \
|
||||||
@EOLIAN_CFLAGS@ @EINA_CFLAGS@ @EO_CFLAGS@ @ECORE_CFLAGS@ @EINA_CXX_CFLAGS@ \
|
@EOLIAN_CFLAGS@ @EINA_CFLAGS@ @EO_CFLAGS@ @ECORE_CFLAGS@ @EINA_CXX_CFLAGS@ \
|
||||||
@EO_JS_CFLAGS@ @EO_CXX_CFLAGS@ @EFL_JS_CFLAGS@
|
@EO_JS_CFLAGS@ @EO_CXX_CFLAGS@ @EFL_JS_CFLAGS@ @ECORE_CXX_CFLAGS@
|
||||||
|
|
||||||
tests_eolian_js_eolian_js_suite_LDADD = \
|
tests_eolian_js_eolian_js_suite_LDADD = \
|
||||||
@CHECK_LIBS@ @USE_EO_LIBS@ @USE_EINA_LIBS@ @USE_EOLIAN_LIBS@ @USE_EFL_JS_LIBS@ @USE_EVAS_LIBS@ @USE_EFL_JS_LIBS@
|
@CHECK_LIBS@ @USE_EO_LIBS@ @USE_EINA_LIBS@ @USE_EOLIAN_LIBS@ @USE_EFL_JS_LIBS@ @USE_EVAS_LIBS@ @USE_EFL_JS_LIBS@
|
||||||
|
|
|
@ -157,7 +157,8 @@ _eolian_type_cpp_type_named_get(const Eolian_Type *tp, std::string const& caller
|
||||||
{"promise", "Eina_Promise"},
|
{"promise", "Eina_Promise"},
|
||||||
{"string", "const char*"},
|
{"string", "const char*"},
|
||||||
{"void_ptr", "void *"},
|
{"void_ptr", "void *"},
|
||||||
{"stringshare", "Eina_Stringshare*"}
|
{"stringshare", "Eina_Stringshare*"},
|
||||||
|
{"future", "Efl_Future*"}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -308,6 +308,12 @@ R wrap_value(T v, value_tag<eina::js::complex_tag<T, U...>>)
|
||||||
return R {v};
|
return R {v};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <typename R, typename T, typename... U>
|
||||||
|
R wrap_value(T const& v, value_tag<eina::js::complex_tag<T*, U...>>)
|
||||||
|
{
|
||||||
|
return R {const_cast<T*>(&v)};
|
||||||
|
}
|
||||||
|
|
||||||
template <typename T = v8::External>
|
template <typename T = v8::External>
|
||||||
struct _libv8_isolate_test
|
struct _libv8_isolate_test
|
||||||
{
|
{
|
||||||
|
|
|
@ -111,6 +111,19 @@ inline Eo* get_value_from_javascript
|
||||||
return get_value_from_javascript(v, isolate, class_name, value_tag<Eo*>(), throw_js_exception);
|
return get_value_from_javascript(v, isolate, class_name, value_tag<Eo*>(), throw_js_exception);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Futures
|
||||||
|
template <typename ClassGetter>
|
||||||
|
Eo* get_value_from_javascript
|
||||||
|
(v8::Local<v8::Value>
|
||||||
|
, v8::Isolate*
|
||||||
|
, const char*
|
||||||
|
, value_tag<complex_tag<Eo**, void*, ClassGetter>>
|
||||||
|
, bool = true)
|
||||||
|
{
|
||||||
|
throw std::logic_error("");
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
inline T get_value_from_javascript
|
inline T get_value_from_javascript
|
||||||
(v8::Local<v8::Value> v
|
(v8::Local<v8::Value> v
|
||||||
|
|
|
@ -198,6 +198,13 @@ get_value_from_c(efl::eina::js::complex_tag<Eina_Accessor *, T, K> v, v8::Isolat
|
||||||
return obj;
|
return obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <typename T, typename K>
|
||||||
|
inline v8::Local<v8::Value>
|
||||||
|
get_value_from_c(efl::eina::js::complex_tag<Eo**, T, K>, v8::Isolate*, const char*)
|
||||||
|
{
|
||||||
|
throw std::logic_error("");
|
||||||
|
}
|
||||||
|
|
||||||
template <typename T, typename K>
|
template <typename T, typename K>
|
||||||
inline v8::Local<v8::Value>
|
inline v8::Local<v8::Value>
|
||||||
get_value_from_c(efl::eina::js::complex_tag<const Eina_Accessor *, T, K> v, v8::Isolate* isolate, const char* class_name)
|
get_value_from_c(efl::eina::js::complex_tag<const Eina_Accessor *, T, K> v, v8::Isolate* isolate, const char* class_name)
|
||||||
|
|
|
@ -109,7 +109,7 @@ struct constructor_caller
|
||||||
Eo* eo = efl_add
|
Eo* eo = efl_add
|
||||||
(klass
|
(klass
|
||||||
, parent
|
, parent
|
||||||
, eina::_mpl::for_each(constructors, call{efl_self, ¤t_index, &args})
|
, eina::_mpl::for_each(constructors, call{efl_added, ¤t_index, &args})
|
||||||
);
|
);
|
||||||
if (!eo)
|
if (!eo)
|
||||||
throw std::logic_error("Failed to create object.");
|
throw std::logic_error("Failed to create object.");
|
||||||
|
|
Loading…
Reference in New Issue