set(MODULE_NAME geometry)

list(APPEND HEADERS
        AbstractGeometricItem.h
		Bounds.h
		Transform.h
		Rotation.h
		grid/AbstractGrid.h
		grid/TypedGrid.h
        grid/Grid.h
		grid/SparseGrid.h
		math/Linalg.h
		math/Matrix.h
		math/Vector.h
		path/Curve.h
		path/Line.h
        path/LineSegment.h
        path/Path.h
		path/PathPostScriptConverter.h
		path/PathElement.h
		path/Arc.h
		path/QuadraticBezierCurve.h
		path/CubicBezierCurve.h
        points/Point.h
		points/PointParser.h
		points/PointCollection.h
		points/DiscretePoint.h
        primitives/Circle.h
		primitives/Polygon.h
        primitives/Rectangle.h
        primitives/Triangle.h
)

list(APPEND SOURCES 
        Rotation.cpp
        Bounds.cpp
        Transform.cpp
		grid/AbstractGrid.cpp
		math/Linalg.cpp
		math/Matrix.cpp
		math/Vector.cpp
		path/Curve.cpp
		path/Line.cpp
        path/LineSegment.cpp
        path/Path.cpp
		path/PathPostScriptConverter.cpp
		path/PathElement.cpp
		path/Arc.cpp
		path/QuadraticBezierCurve.cpp
		path/CubicBezierCurve.cpp
        points/Point.cpp
		points/PointParser.cpp
        points/PointCollection.cpp
        points/DiscretePoint.cpp
        primitives/Circle.cpp
		primitives/Polygon.cpp
        primitives/Rectangle.cpp
        primitives/Triangle.cpp		
	)
        
add_library(${MODULE_NAME} SHARED ${SOURCES} ${HEADERS})

target_include_directories(${MODULE_NAME} PUBLIC 
	${CMAKE_CURRENT_SOURCE_DIR}
	${CMAKE_CURRENT_SOURCE_DIR}/math
	${CMAKE_CURRENT_SOURCE_DIR}/path
	${CMAKE_CURRENT_SOURCE_DIR}/points
	${CMAKE_CURRENT_SOURCE_DIR}/primitives
	${CMAKE_CURRENT_SOURCE_DIR}/grid
	)

target_link_libraries( ${MODULE_NAME} PUBLIC core)
set_target_properties( ${MODULE_NAME} PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON )                          
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER src/base)
