* to avoid an extra declaration of root when XBT_LOG_NEW_SUBCATEGORY is called by
* XBT_LOG_NEW_CATEGORY */
#define XBT_LOG_NEW_SUBCATEGORY_helper(catName, parent, desc) \
- XBT_PUBLIC(s_xbt_log_category_t) _XBT_LOGV(catName) = { \
+ XBT_EXPORT_NO_IMPORT(s_xbt_log_category_t) _XBT_LOGV(catName) = { \
&_XBT_LOGV(parent), 0, 0, \
#catName, xbt_log_priority_uninitialized, 1, \
0, 1 \
* Defines a new subcategory of the parent.
*/
#define XBT_LOG_NEW_SUBCATEGORY(catName, parent, desc) \
- extern s_xbt_log_category_t _XBT_LOGV(parent); \
+ extern s_xbt_log_category_t _XBT_LOGV(parent); \
XBT_LOG_NEW_SUBCATEGORY_helper(catName, parent, desc) \
/**
*
* Creates a new subcategory of the root category.
*/
-#define XBT_LOG_NEW_CATEGORY(catName,desc) XBT_LOG_NEW_SUBCATEGORY_helper(catName, XBT_LOG_ROOT_CAT, desc)
+
+#if (defined(_WIN32) && !defined(DLL_STATIC))
+# define XBT_LOG_NEW_CATEGORY(catName,desc) \
+ XBT_EXPORT_NO_IMPORT(s_xbt_log_category_t) _XBT_LOGV(catName) = { \
+ 0, 0, 0, \
+ #catName, xbt_log_priority_uninitialized, 1, \
+ 0, 1 \
+ }
+#else
+# define XBT_LOG_NEW_CATEGORY(catName,desc) XBT_LOG_NEW_SUBCATEGORY_helper(catName, XBT_LOG_ROOT_CAT, desc)
+#endif
/**
* \ingroup XBT_log
* Creates a new subcategory of the root category and makes it the default
* (used by macros that don't explicitly specify a category).
*/
-#define XBT_LOG_NEW_DEFAULT_CATEGORY(cname,desc) \
+
+#if (defined(_WIN32) && !defined(DLL_STATIC))
+# define XBT_LOG_NEW_ROOT_SUBCATEGORY(cname,desc) \
+ XBT_EXPORT_NO_IMPORT(s_xbt_log_category_t) _XBT_LOGV(cname) = { \
+ 0, 0, 0, \
+ #cname, xbt_log_priority_uninitialized, 1, \
+ 0, 1 \
+ }
+
+# define XBT_LOG_NEW_DEFAULT_CATEGORY(cname,desc) \
+ XBT_LOG_NEW_ROOT_SUBCATEGORY(cname,desc); \
+ XBT_LOG_DEFAULT_CATEGORY(cname)
+
+#else
+# define XBT_LOG_NEW_DEFAULT_CATEGORY(cname,desc) \
XBT_LOG_NEW_CATEGORY(cname,desc); \
- XBT_LOG_DEFAULT_CATEGORY(cname)
+ XBT_LOG_DEFAULT_CATEGORY(cname)
+#endif
+
+
/**
* \ingroup XBT_log
int threshold;
int isThreshInherited;
/*@null@*/ xbt_log_appender_t appender;
- int willLogToParent;
+ int willLogToParent;
/* TODO: Formats? */
};
const char *fmt,
...) _XBT_GNUC_PRINTF(2,3);
-XBT_PUBLIC(int) _xbt_log_cat_init(e_xbt_log_priority_t priority,
- xbt_log_category_t category);
+XBT_PUBLIC(int) _xbt_log_cat_init(xbt_log_category_t category,
+ e_xbt_log_priority_t priority);
-extern s_xbt_log_category_t _XBT_LOGV(XBT_LOG_ROOT_CAT);
+extern XBT_IMPORT_NO_EXPORT(s_xbt_log_category_t) _XBT_LOGV(XBT_LOG_ROOT_CAT);
+
XBT_LOG_EXTERNAL_CATEGORY(GRAS);
+
extern xbt_log_appender_t xbt_log_default_appender;
/**
(priority >= XBT_LOG_STATIC_THRESHOLD \
&& priority >= catv.threshold \
&& (catv.threshold != xbt_log_priority_uninitialized \
- || _xbt_log_cat_init(priority, &catv)) )
+ || _xbt_log_cat_init(&catv, priority)) )
/*
* Internal Macros
* @brief Log at TRACE priority a message indicating that we reached that point.
*/
#define XBT_HERE LOG0(xbt_log_priority_trace, "-- was here")
+
+
SG_END_DECL()
#endif /* ! _XBT_LOG_H_ */