
set(SHARED_SOURCES
	shared/CatmullRomSpline.cpp
	shared/CatmullRomSpline.h
	shared/CompressedQuaternion.cpp
	shared/CompressedQuaternion.h
	shared/ConfigSharedMath.cpp
	shared/ConfigSharedMath.h
	shared/FirstSharedMath.h
	shared/IndexedTriangleList.cpp
	shared/IndexedTriangleList.h
	shared/Line2d.h
	shared/MxCifQuadTree.cpp
	shared/MxCifQuadTree.h
	shared/MxCifQuadTreeBounds.cpp
	shared/MxCifQuadTreeBounds.h
	shared/PackedArgb.cpp
	shared/PackedArgb.h
	shared/PackedRgb.cpp
	shared/PackedRgb.h
	shared/PaletteArgb.cpp
	shared/PaletteArgb.h
	shared/PaletteArgbList.cpp
	shared/PaletteArgbList.h
	shared/Plane.cpp
	shared/Plane.h
	shared/PolySolver.cpp
	shared/PolySolver.h
	shared/Quaternion.cpp
	shared/Quaternion.h
	shared/Rectangle2d.cpp
	shared/Rectangle2d.h
	shared/SetupSharedMath.cpp
	shared/SetupSharedMath.h
	shared/SpatialSubdivision.cpp
	shared/SpatialSubdivision.h
	shared/Sphere.cpp
	shared/Sphere.h
	shared/SphereTree.h
	shared/SphereTreeNode.h
	shared/Transform.cpp
	shared/Transform.h
	shared/Transform2d.cpp
	shared/Transform2d.h
	shared/Vector.cpp
	shared/Vector.h
	shared/Vector2d.h
	shared/VectorArgb.cpp
	shared/VectorArgb.h
	shared/Volume.cpp
	shared/Volume.h
	shared/WaveForm.cpp
	shared/WaveForm.h
	shared/WaveForm3D.cpp
	shared/WaveForm3D.h

	shared/core/AxialBox.cpp
	shared/core/AxialBox.h
	shared/core/Capsule.cpp
	shared/core/Capsule.h
	shared/core/Circle.cpp
	shared/core/Circle.h
	shared/core/Cylinder.cpp
	shared/core/Cylinder.h
	shared/core/Line3d.cpp
	shared/core/Line3d.h
	shared/core/MultiShape.cpp
	shared/core/MultiShape.h
	shared/core/OrientedBox.cpp
	shared/core/OrientedBox.h
	shared/core/OrientedCircle.cpp
	shared/core/OrientedCircle.h
	shared/core/OrientedCylinder.cpp
	shared/core/OrientedCylinder.h
	shared/core/Plane3d.cpp
	shared/core/Plane3d.h
	shared/core/Quadratic.cpp
	shared/core/Quadratic.h
	shared/core/Range.cpp
	shared/core/Range.h
	shared/core/RangeLoop.cpp
	shared/core/RangeLoop.h
	shared/core/Ray3d.cpp
	shared/core/Ray3d.h
	shared/core/Ribbon3d.cpp
	shared/core/Ribbon3d.h
	shared/core/Ring.cpp
	shared/core/Ring.h
	shared/core/Segment3d.cpp
	shared/core/Segment3d.h
	shared/core/ShapeUtils.cpp
	shared/core/ShapeUtils.h
	shared/core/Torus.cpp
	shared/core/Torus.h
	shared/core/Triangle2d.cpp
	shared/core/Triangle2d.h
	shared/core/Triangle3d.cpp
	shared/core/Triangle3d.h
	shared/core/YawedBox.cpp
	shared/core/YawedBox.h

	shared/debug/DebugShapeRenderer.cpp
	shared/debug/DebugShapeRenderer.h
)

if(WIN32)
	set(PLATFORM_SOURCES
		win32/FirstSharedMath.cpp
		win32/SseMath.cpp
		win32/SseMath.h
	)

	include_directories(${CMAKE_CURRENT_SOURCE_DIR}/win32)
else()
	set(PLATFORM_SOURCES "")
endif()

include_directories(
	${CMAKE_CURRENT_SOURCE_DIR}/shared
	${SWG_ENGINE_SOURCE_DIR}/shared/library/sharedDebug/include/public
	${SWG_ENGINE_SOURCE_DIR}/shared/library/sharedFile/include/public
	${SWG_ENGINE_SOURCE_DIR}/shared/library/sharedFoundation/include/public
	${SWG_ENGINE_SOURCE_DIR}/shared/library/sharedFoundationTypes/include/public
	${SWG_ENGINE_SOURCE_DIR}/shared/library/sharedMemoryManager/include/public
	${SWG_ENGINE_SOURCE_DIR}/shared/library/sharedRandom/include/public
	${SWG_ENGINE_SOURCE_DIR}/shared/library/sharedSynchronization/include/public
	${SWG_EXTERNALS_SOURCE_DIR}/ours/library/fileInterface/include/public
)

add_library(sharedMath STATIC
	${SHARED_SOURCES}
	${PLATFORM_SOURCES}
)

target_link_libraries(sharedMath
	sharedFile
	sharedRandom
)
