/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
+#include "src/internal_config.h"
#include "src/simdag/simdag_private.h"
#include "simgrid/simdag.h"
-#include "xbt/log.h"
-#include <stdbool.h>
+#include "xbt/file.h"
#include <string.h>
XBT_LOG_NEW_DEFAULT_SUBCATEGORY(sd_dotparse, sd, "Parsing DOT files");
-#undef CLEANUP
-
-#ifdef HAVE_CGRAPH_H
+#if HAVE_GRAPHVIZ
#include <graphviz/cgraph.h>
-#elif HAVE_AGRAPH_H
-#include <graphviz/agraph.h>
-#define agnxtnode(dot, node) agnxtnode(node)
-#define agfstout(dot, node) agfstout(node)
-#define agnxtout(dot, edge) agnxtout(edge)
#endif
typedef enum {
xbt_dynar_t SD_dotload_generic(const char * filename, seq_par_t seq_or_par, bool schedule);
-
static void dot_task_p_free(void *task) {
SD_task_destroy(*(SD_task_t *)task);
}
}
if (result && !acyclic_graph_detail(result)) {
- XBT_ERROR("The DOT described in %s is not a DAG. It contains a cycle.", basename((char*)filename));
+ char* base = xbt_basename(filename);
+ XBT_ERROR("The DOT described in %s is not a DAG. It contains a cycle.", base);
+ free(base);
xbt_dynar_free(&result);
result = NULL;
}