
simmedtk_add_library(smCore
  SOURCES
    smCollisionConfig.cpp
    smCollisionDetection.cpp
    smCollisionPair.cpp
    smColor.cpp
    smContactHandling.cpp
    smCoreClass.cpp
    smDispatcher.cpp
    smDisplayText.cpp
    smErrorLog.cpp
    smEvent.cpp
    smEventHandler.cpp
    smGeometry.cpp
    smIOStream.cpp
    smLight.cpp
    smMath.cpp
    smModule.cpp
    smObjectSimulator.cpp
    smRenderDetail.cpp
    smScene.cpp
    smSceneObject.cpp
    smSDK.cpp
    smSimulator.cpp
    smStaticSceneObject.cpp
    smTimer.cpp
    smPipe.cpp
    smUnifiedId.cpp
    smViewerBase.cpp
  PUBLIC_HEADERS
    smCollisionConfig.h
    smCollisionDetection.h
    smCollisionManager.h
    smCollisionPair.h
    smConfig.h
    smContactHandling.h
    smCoreClass.h
    smDispatcher.h
    smDisplayText.h
    smPipe.h
    smErrorLog.h
    smEventData.h
    smEvent.h
    smEventHandler.h
    smFactory.h
    smGeometry.h
    smIOStream.h
    smLight.h
    smMemoryBlock.h
    smModule.h
    smObjectSimulator.h
    smPipe.h
    smScene.h
    smSceneObject.h
    smScheduler.h
    smSDK.h
    smSimulator.h
    smStaticSceneObject.h
    smSynchronization.h
    smViewerBase.h
    smWorkerThread.h
)

target_link_libraries(smCore
  PUBLIC
    GLEW::GLEW
    ${OPENGL_LIBRARY}
    sfml::graphics
    VegaFEM::objMesh
    VegaFEM::volumetricMesh
)

if(UNIX)
  target_compile_features(smCore PUBLIC cxx_auto_type)
endif()

if(BUILD_TESTING)
  add_subdirectory(UnitTests)
endif()
