diff --git a/3d-viewer/CMakeLists.txt b/3d-viewer/CMakeLists.txt
index 728f1c3f7b..3a0c78151d 100644
--- a/3d-viewer/CMakeLists.txt
+++ b/3d-viewer/CMakeLists.txt
@@ -8,7 +8,6 @@ include_directories(
     ${CMAKE_CURRENT_BINARY_DIR}
     ../include/legacy_wx
     ../pcbnew
-    ../polygon
     3d_canvas
     3d_cache
     3d_rendering
@@ -108,6 +107,7 @@ add_dependencies( 3d-viewer pcbcommon )
 
 target_link_libraries( 3d-viewer
                        gal
+                       polygon
                        ${Boost_}
                        ${wxWidgets_LIBRARIES}
                        ${OPENGL_LIBRARIES}
diff --git a/bitmap2component/CMakeLists.txt b/bitmap2component/CMakeLists.txt
index f0c624aebb..78b05c9f73 100644
--- a/bitmap2component/CMakeLists.txt
+++ b/bitmap2component/CMakeLists.txt
@@ -6,7 +6,6 @@ endif()
 include_directories( BEFORE ${INC_BEFORE} )
 include_directories(
     ../potrace
-    ../polygon
     ${INC_AFTER}
     )
 
@@ -49,7 +48,6 @@ add_executable( bitmap2component WIN32 MACOSX_BUNDLE
 
 target_link_libraries( bitmap2component
     common
-    polygon
     gal
     ${wxWidgets_LIBRARIES}
     potrace
diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt
index 2c37df527e..915acb7e7c 100644
--- a/common/CMakeLists.txt
+++ b/common/CMakeLists.txt
@@ -17,7 +17,6 @@ include_directories(
     ${CURL_INCLUDE_DIRS}
     ../3d-viewer
     ../pcbnew
-    ../polygon
     ${INC_AFTER}
     ${OCE_INCLUDE_DIRS}
     ${OCC_INCLUDE_DIR}
@@ -93,10 +92,11 @@ add_library( legacy_wx STATIC ${LEGACY_WX_SRCS} )
 target_include_directories( legacy_wx PUBLIC ../include/legacy_wx )
 target_include_directories( legacy_gal PUBLIC ../include/legacy_gal )
 
-target_link_libraries( legacy_wx PRIVATE bitmaps )
-target_link_libraries( legacy_gal PRIVATE bitmaps )
+target_link_libraries( legacy_wx PRIVATE bitmaps polygon )
+target_link_libraries( legacy_gal PRIVATE bitmaps polygon )
 
 target_link_libraries( gal
+    polygon
     bitmaps
     ${GLEW_LIBRARIES}
     ${CAIRO_LIBRARIES}
@@ -423,6 +423,7 @@ add_library( common STATIC ${COMMON_SRCS} )
 add_dependencies( common version_header )
 target_link_libraries( common
     bitmaps
+    polygon
     gal
     ${Boost_LIBRARIES}
     ${CURL_LIBRARIES}
@@ -504,6 +505,10 @@ target_include_directories( pcbcommon PUBLIC
     ../include/legacy_wx
 )
 
+target_link_libraries( pcbcommon PUBLIC
+    common
+)
+
 
 # auto-generate netlist_lexer.h and netlist_keywords.cpp
 make_lexer(
diff --git a/cvpcb/CMakeLists.txt b/cvpcb/CMakeLists.txt
index 42acb5b6a0..d300ee44a3 100644
--- a/cvpcb/CMakeLists.txt
+++ b/cvpcb/CMakeLists.txt
@@ -12,7 +12,6 @@ include_directories(
     ../3d-viewer
     ../pcbnew
     ../pcbnew/dialogs
-    ../polygon
     ../common
     ${GLM_INCLUDE_DIR}
     ${INC_AFTER}
@@ -146,21 +145,18 @@ target_link_libraries( cvpcb_kiface
     pcad2kicadpcb
     3d-viewer
     common
-    polygon
     gal
     legacy_wx
     pcbcommon
     pcad2kicadpcb
     3d-viewer
     common
-    polygon
     gal
     legacy_wx
     pcbcommon
     pcad2kicadpcb
     3d-viewer
     common
-    polygon
     gal
     legacy_wx
     ${wxWidgets_LIBRARIES}
diff --git a/eeschema/CMakeLists.txt b/eeschema/CMakeLists.txt
index f6708cb6ba..c56ac2d9cb 100644
--- a/eeschema/CMakeLists.txt
+++ b/eeschema/CMakeLists.txt
@@ -342,19 +342,15 @@ add_library( eeschema_kiface SHARED
     )
 target_link_libraries( eeschema_kiface
     common
-    polygon
     gal
     legacy_gal
     common
-    polygon
     gal
     legacy_gal
     common
-    polygon
     gal
     legacy_gal
     common
-    polygon
     gal
     legacy_gal
     ${wxWidgets_LIBRARIES}
diff --git a/gerbview/CMakeLists.txt b/gerbview/CMakeLists.txt
index e455d64e91..66269d5e2d 100644
--- a/gerbview/CMakeLists.txt
+++ b/gerbview/CMakeLists.txt
@@ -12,7 +12,6 @@ include_directories(
     dialogs
     ../common
     ../3d-viewer
-    ../polygon
     ${INC_AFTER}
     )
 
@@ -143,15 +142,12 @@ set_target_properties( gerbview_kiface PROPERTIES
     )
 target_link_libraries( gerbview_kiface
     common
-    polygon
     gal
     legacy_wx
     common
-    polygon
     gal
     legacy_wx
     common
-    polygon
     gal
     legacy_wx
     ${wxWidgets_LIBRARIES}
diff --git a/include/geometry/shape_line_chain.h b/include/geometry/shape_line_chain.h
index 16c78d8ac6..adcbef0248 100644
--- a/include/geometry/shape_line_chain.h
+++ b/include/geometry/shape_line_chain.h
@@ -34,7 +34,8 @@
 #include <math/vector2d.h>
 #include <geometry/shape.h>
 #include <geometry/seg.h>
-#include <../polygon/clipper.hpp>
+
+#include <clipper.hpp>
 
 /**
  * Class SHAPE_LINE_CHAIN
diff --git a/kicad/CMakeLists.txt b/kicad/CMakeLists.txt
index 06ae3853c9..1c693aded4 100644
--- a/kicad/CMakeLists.txt
+++ b/kicad/CMakeLists.txt
@@ -71,13 +71,11 @@ if( APPLE )
         )
     target_link_libraries( kicad
         common
-        polygon
         ${wxWidgets_LIBRARIES}
         )
 else()
     target_link_libraries( kicad
         common
-        polygon
         gal
         ${wxWidgets_LIBRARIES}
         ${GDI_PLUS_LIBRARIES}
diff --git a/pagelayout_editor/CMakeLists.txt b/pagelayout_editor/CMakeLists.txt
index 59bb248b80..5e013398b3 100644
--- a/pagelayout_editor/CMakeLists.txt
+++ b/pagelayout_editor/CMakeLists.txt
@@ -109,15 +109,12 @@ add_library( pl_editor_kiface MODULE
     )
 target_link_libraries( pl_editor_kiface
     common
-    polygon
     gal
     legacy_wx
     common
-    polygon
     gal
     legacy_wx
     common
-    polygon
     gal
     legacy_wx
     ${wxWidgets_LIBRARIES}
diff --git a/pcb_calculator/CMakeLists.txt b/pcb_calculator/CMakeLists.txt
index ad01dbb032..e040451298 100644
--- a/pcb_calculator/CMakeLists.txt
+++ b/pcb_calculator/CMakeLists.txt
@@ -5,7 +5,6 @@ include_directories(
     dialogs
     transline
     attenuators
-    ../polygon
     ../common
     ${INC_AFTER}
     )
@@ -88,7 +87,6 @@ set_target_properties( pcb_calculator_kiface PROPERTIES
     )
 target_link_libraries( pcb_calculator_kiface
     common
-    polygon
     ${wxWidgets_LIBRARIES}
     )
 set_source_files_properties( pcb_calculator.cpp PROPERTIES
diff --git a/pcbnew/CMakeLists.txt b/pcbnew/CMakeLists.txt
index babfb13d57..1d3cc5cf54 100644
--- a/pcbnew/CMakeLists.txt
+++ b/pcbnew/CMakeLists.txt
@@ -42,7 +42,6 @@ include_directories(
     ./autorouter
     ../3d-viewer
     ../common
-    ../polygon
     ../common/dialogs
     ./exporters
     ../dxflib_qcad
@@ -679,7 +678,6 @@ set( PCBNEW_KIFACE_LIBRARIES
     pcad2kicadpcb
     legacy_wx
     common
-    polygon
     gal
     lib_dxf
     idf3
diff --git a/pcbnew/connectivity/CMakeLists.txt b/pcbnew/connectivity/CMakeLists.txt
index 2932ed8ba0..69e238741c 100644
--- a/pcbnew/connectivity/CMakeLists.txt
+++ b/pcbnew/connectivity/CMakeLists.txt
@@ -4,7 +4,6 @@ include_directories(
     ./
     ../
     ../../include
-    ../../polygon
     ${INC_AFTER}
 )
 
diff --git a/pcbnew/router/CMakeLists.txt b/pcbnew/router/CMakeLists.txt
index 44a945644a..e7ca4422cb 100644
--- a/pcbnew/router/CMakeLists.txt
+++ b/pcbnew/router/CMakeLists.txt
@@ -6,7 +6,6 @@ include_directories(
     ../../include
     ../../3d-viewer
     ../../pcbnew
-    ../../polygon
     ${INC_AFTER}
 )
 
diff --git a/polygon/CMakeLists.txt b/polygon/CMakeLists.txt
index 4399614058..881f426812 100644
--- a/polygon/CMakeLists.txt
+++ b/polygon/CMakeLists.txt
@@ -16,3 +16,6 @@ set(POLYGON_SRCS
 
 add_library(polygon STATIC ${POLYGON_SRCS})
 
+target_include_directories( polygon PUBLIC
+    include
+)
\ No newline at end of file
diff --git a/polygon/SutherlandHodgmanClipPoly.h b/polygon/include/SutherlandHodgmanClipPoly.h
similarity index 100%
rename from polygon/SutherlandHodgmanClipPoly.h
rename to polygon/include/SutherlandHodgmanClipPoly.h
diff --git a/polygon/clipper.hpp b/polygon/include/clipper.hpp
similarity index 100%
rename from polygon/clipper.hpp
rename to polygon/include/clipper.hpp
diff --git a/polygon/math_for_graphics.h b/polygon/include/math_for_graphics.h
similarity index 100%
rename from polygon/math_for_graphics.h
rename to polygon/include/math_for_graphics.h
diff --git a/polygon/polygon_test_point_inside.h b/polygon/include/polygon_test_point_inside.h
similarity index 100%
rename from polygon/polygon_test_point_inside.h
rename to polygon/include/polygon_test_point_inside.h
diff --git a/qa/common/CMakeLists.txt b/qa/common/CMakeLists.txt
index 55d8d8f89e..9ac55d56b7 100644
--- a/qa/common/CMakeLists.txt
+++ b/qa/common/CMakeLists.txt
@@ -62,7 +62,6 @@ set( common_srcs
 set( common_libs
     common
     legacy_gal
-    polygon
     gal
     qa_utils
     unit_test_utils
@@ -89,7 +88,6 @@ include_directories(
     ${CMAKE_SOURCE_DIR}
     ${CMAKE_SOURCE_DIR}/pcbnew
     ${CMAKE_SOURCE_DIR}/include
-    ${CMAKE_SOURCE_DIR}/polygon
     ${INC_AFTER}
 )
 
diff --git a/qa/common_tools/CMakeLists.txt b/qa/common_tools/CMakeLists.txt
index 9267bfe7d4..445f1d217c 100644
--- a/qa/common_tools/CMakeLists.txt
+++ b/qa/common_tools/CMakeLists.txt
@@ -41,14 +41,12 @@ add_executable( qa_common_tools
 include_directories(
     ${CMAKE_SOURCE_DIR}
     ${CMAKE_SOURCE_DIR}/include
-    ${CMAKE_SOURCE_DIR}/polygon
     ${INC_AFTER}
 )
 
 target_link_libraries( qa_common_tools
     common
     legacy_gal
-    polygon
     gal
     qa_utils
     ${wxWidgets_LIBRARIES}
diff --git a/qa/pcb_test_window/CMakeLists.txt b/qa/pcb_test_window/CMakeLists.txt
index 7e8eed0c07..e1ab06d4ce 100644
--- a/qa/pcb_test_window/CMakeLists.txt
+++ b/qa/pcb_test_window/CMakeLists.txt
@@ -55,7 +55,6 @@ include_directories(
     ${CMAKE_SOURCE_DIR}/pcbnew/router
     ${CMAKE_SOURCE_DIR}/pcbnew/tools
     ${CMAKE_SOURCE_DIR}/pcbnew/dialogs
-    ${CMAKE_SOURCE_DIR}/polygon
     ${CMAKE_SOURCE_DIR}/common/geometry
     ${CMAKE_SOURCE_DIR}/qa/qa_utils
     ${Boost_INCLUDE_DIR}
@@ -63,19 +62,15 @@ include_directories(
 )
 
 target_link_libraries( test_window
-    polygon
     pnsrouter
     common
     pcbcommon
-    polygon
     pnsrouter
     common
     pcbcommon
-    polygon
     pnsrouter
     common
     pcbcommon
-    polygon
     pnsrouter
     common
     pcbcommon
diff --git a/qa/pcbnew/CMakeLists.txt b/qa/pcbnew/CMakeLists.txt
index a3645cbc0d..e194cd650c 100644
--- a/qa/pcbnew/CMakeLists.txt
+++ b/qa/pcbnew/CMakeLists.txt
@@ -64,7 +64,6 @@ target_link_libraries( qa_pcbnew
     common
     pcbcommon
     legacy_wx
-    polygon
     gal
     qa_utils
     lib_dxf
diff --git a/qa/pcbnew_tools/CMakeLists.txt b/qa/pcbnew_tools/CMakeLists.txt
index 2b9550e2f7..76934655c5 100644
--- a/qa/pcbnew_tools/CMakeLists.txt
+++ b/qa/pcbnew_tools/CMakeLists.txt
@@ -52,7 +52,6 @@ target_link_libraries( qa_pcbnew_tools
     common
     pcbcommon
     legacy_wx
-    polygon
     gal
     qa_utils
     lib_dxf
diff --git a/qa/pcbnew_utils/CMakeLists.txt b/qa/pcbnew_utils/CMakeLists.txt
index a6c46130f4..f8aab26569 100644
--- a/qa/pcbnew_utils/CMakeLists.txt
+++ b/qa/pcbnew_utils/CMakeLists.txt
@@ -45,7 +45,6 @@ target_include_directories( qa_pcbnew_utils PUBLIC
     # target_include_directories and made PUBLIC)
     ${CMAKE_SOURCE_DIR}
     ${CMAKE_SOURCE_DIR}/include
-    ${CMAKE_SOURCE_DIR}/polygon
     ${CMAKE_SOURCE_DIR}/pcbnew
     ${CMAKE_SOURCE_DIR}/common
     ${CMAKE_SOURCE_DIR}/pcbnew/router
@@ -65,7 +64,6 @@ target_link_libraries( qa_pcbnew_utils PUBLIC
 #     common
 #     pcbcommon
 #     legacy_wx
-#     polygon
 #     gal
 #     qa_utils
 #     lib_dxf
diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt
index 40602e92d2..2c9587bbf2 100644
--- a/tools/CMakeLists.txt
+++ b/tools/CMakeLists.txt
@@ -14,7 +14,6 @@ add_executable( container_test
     )
 target_link_libraries( container_test
     common
-    polygon
     ${wxWidgets_LIBRARIES}
     )