]> granicus.if.org Git - graphviz/commitdiff
pathplan: add storage-class attribute declarations in vispath.h
authorMagnus Jacobsson <Magnus.Jacobsson@berotec.se>
Sat, 24 Jul 2021 14:24:48 +0000 (16:24 +0200)
committerMagnus Jacobsson <Magnus.Jacobsson@berotec.se>
Sun, 19 Dec 2021 20:21:55 +0000 (21:21 +0100)
This will allow removing the vispath.h symbols from the pathplan.def
file in an upcoming commit.

Towards https://gitlab.com/graphviz/graphviz/-/issues/2058.

lib/pathplan/vispath.h

index 2ce73d28de289511eac3d3e22c366f09e42b80cf..fb8dbb3375ed94fde8ec3cdb8836b21cb6b57356 100644 (file)
@@ -17,13 +17,25 @@ extern "C" {
 #endif
 
 
+#ifdef GVDLL
+#ifdef PATHPLAN_EXPORTS
+#define VISPATH_API __declspec(dllexport)
+#else
+#define VISPATH_API __declspec(dllimport)
+#endif
+#endif
+
+#ifndef VISPATH_API
+#define VISPATH_API /* nothing */
+#endif
+
 /* open a visibility graph 
  * Points in polygonal obstacles must be in clockwise order.
  */
-    extern vconfig_t *Pobsopen(Ppoly_t ** obstacles, int n_obstacles);
+    VISPATH_API vconfig_t *Pobsopen(Ppoly_t ** obstacles, int n_obstacles);
 
 /* close a visibility graph, freeing its storage */
-    extern void Pobsclose(vconfig_t * config);
+    VISPATH_API void Pobsclose(vconfig_t * config);
 
 /* route a polyline from p0 to p1, avoiding obstacles.
  * if an endpoint is inside an obstacle, pass the polygon's index >=0
@@ -31,14 +43,14 @@ extern "C" {
  * if the endpoint location is not known, pass POLYID_UNKNOWN
  */
 
-    extern int Pobspath(vconfig_t * config, Ppoint_t p0, int poly0,
+    VISPATH_API int Pobspath(vconfig_t * config, Ppoint_t p0, int poly0,
                        Ppoint_t p1, int poly1,
                        Ppolyline_t * output_route);
 
 #define POLYID_NONE            -1111
 #define POLYID_UNKNOWN -2222
 
-#undef extern
+#undef VISPATH_API
 
 #ifdef __cplusplus
 }