[enable_emscripten=$enableval],
[enable_emscripten=no])
+AC_ARG_ENABLE([backtrace],
+ [AC_HELP_STRING([--enable-backtrace],
+ [Backtrace for exceptions])],
+ [enable_backtrace=$enableval],
+ [enable_backtrace=yes])
+
AC_ARG_ENABLE([dynamics],
[AC_HELP_STRING([--enable-dynamics],
[Builds with dynamics support])],
[dynamics_support=no])
if test "x$enable_debug" = "xyes"; then
- DALI_CFLAGS="$DALI_CFLAGS -DDEBUG_ENABLED -DDEBUG_BACKTRACE"
+ DALI_CFLAGS="$DALI_CFLAGS -DDEBUG_ENABLED"
fi
if test "x$enable_debug" = "xno" -a "x$enable_exportall" = "xno"; then
if test "x$enable_emscripten" = "xyes"; then
DALI_CFLAGS="$DALI_CFLAGS -DEMSCRIPTEN -std=c++11"
+ # Automatically turn off backtrace support
+ enable_backtrace="no"
fi
if test "x$dynamics_support" = "xyes"; then
DALI_CFLAGS="$DALI_CFLAGS -DDYNAMICS_SUPPORT"
fi
+# Must come after Emscripten feature test
+if test "x$enable_backtrace" = "xyes"; then
+ DALI_CFLAGS="$DALI_CFLAGS -DBACKTRACE_ENABLED"
+fi
+
AM_CONDITIONAL([DYNAMICS_SUPPORT], [test x$dynamics_support = xyes])
AC_ARG_ENABLE([performance-monitor],
Data Dir (Read/Write): $dataReadWriteDir
Data Dir (Read Only): $dataReadOnlyDir
Emscripten: $enable_emscripten
+ Backtrace: $enable_backtrace
"
namespace Dali
{
-#ifndef EMSCRIPTEN
+#if defined(BACKTRACE_ENABLED)
std::string Demangle(const char* symbol)
{
return result;
}
-#endif // EMSCRIPTEN
-
-#ifndef EMSCRIPTEN
-
DALI_EXPORT_API DaliException::DaliException(const char *location, const char* condition)
: mLocation(location), mCondition(condition)
{
free(symbols);
}
-#else
+
+#else // BACKTRACE_ENABLED
+
DALI_EXPORT_API DaliException::DaliException(const char *location, const char* condition)
: mLocation(location), mCondition(condition)
printf("Exception: \n%s\n thrown at %s\nSee dlog for backtrace\n", mCondition.c_str(), mLocation.c_str());
}
-#endif // EMSCRIPTEN
+
+#endif // BACKTRACE_ENABLED
+
DALI_EXPORT_API void DaliAssertMessage(const char* condition, const char* file, int line)
{