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

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

lib/pathplan/pathplan.h

index c2648d60a31cb4ea0f048cd786c786a0adaee57b..2eaf49bb9d276e8b3bbf4e32aa2e9e306e378041 100644 (file)
 extern "C" {
 #endif
 
+#ifdef GVDLL
+#ifdef PATHPLAN_EXPORTS
+#define PATHPLAN_API __declspec(dllexport)
+#else
+#define PATHPLAN_API __declspec(dllimport)
+#endif
+#endif
 
+#ifndef PATHPLAN_API
+#define PATHPLAN_API /* nothing */
+#endif
 
 /* find shortest euclidean path within a simple polygon */
-    extern int Pshortestpath(Ppoly_t * boundary, Ppoint_t endpoints[2],
+    PATHPLAN_API int Pshortestpath(Ppoly_t * boundary, Ppoint_t endpoints[2],
                             Ppolyline_t * output_route);
 
 /* fit a spline to an input polyline, without touching barrier segments */
-    extern int Proutespline(Pedge_t * barriers, int n_barriers,
+    PATHPLAN_API int Proutespline(Pedge_t * barriers, int n_barriers,
                            Ppolyline_t input_route,
                            Pvector_t endpoint_slopes[2],
                            Ppolyline_t * output_route);
 
 /* utility function to convert from a set of polygonal obstacles to barriers */
-    extern int Ppolybarriers(Ppoly_t ** polys, int npolys,
+    PATHPLAN_API int Ppolybarriers(Ppoly_t ** polys, int npolys,
                             Pedge_t ** barriers, int *n_barriers);
 
 /* function to convert a polyline into a spline representation */
-    extern void make_polyline(Ppolyline_t line, Ppolyline_t* sline);
+    PATHPLAN_API void make_polyline(Ppolyline_t line, Ppolyline_t* sline);
 
-#undef extern
+#undef PATHPLAN_API
 
 #ifdef __cplusplus
 }