
simmedtk_add_library(smCore
  SOURCES
    smCoreClass.cpp
    smDispatcher.cpp
    smErrorLog.cpp
    smGeometry.cpp
    smModule.cpp
    smObjectSimulator.cpp
    smScene.cpp
    smSceneObject.cpp
    smScriptingEngine.cpp
    smSDK.cpp
    smSimulator.cpp
    smStaticSceneObject.cpp
    smTextureManager.cpp
    smDoubleBuffer.cpp
    smUnifiedId.cpp
  PUBLIC_HEADERS
    ${CMAKE_SOURCE_DIR}/include/smCore/smConfig.h
    ${CMAKE_SOURCE_DIR}/include/smCore/smCoreClass.h
    ${CMAKE_SOURCE_DIR}/include/smCore/smDispatcher.h
    ${CMAKE_SOURCE_DIR}/include/smCore/smDoubleBuffer.h
    ${CMAKE_SOURCE_DIR}/include/smCore/smErrorLog.h
    ${CMAKE_SOURCE_DIR}/include/smCore/smEventData.h
    ${CMAKE_SOURCE_DIR}/include/smCore/smEvent.h
    ${CMAKE_SOURCE_DIR}/include/smCore/smEventHandler.h
    ${CMAKE_SOURCE_DIR}/include/smCore/smGeometry.h
    ${CMAKE_SOURCE_DIR}/include/smCore/smMemoryBlock.h
    ${CMAKE_SOURCE_DIR}/include/smCore/smModule.h
    ${CMAKE_SOURCE_DIR}/include/smCore/smObjectSimulator.h
    ${CMAKE_SOURCE_DIR}/include/smCore/smPipe.h
    ${CMAKE_SOURCE_DIR}/include/smCore/smScene.h
    ${CMAKE_SOURCE_DIR}/include/smCore/smSceneObject.h
    ${CMAKE_SOURCE_DIR}/include/smCore/smScheduler.h
    ${CMAKE_SOURCE_DIR}/include/smCore/smScriptingEngine.h
    ${CMAKE_SOURCE_DIR}/include/smCore/smSDK.h
    ${CMAKE_SOURCE_DIR}/include/smCore/smSimulator.h
    ${CMAKE_SOURCE_DIR}/include/smCore/smStaticSceneObject.h
    ${CMAKE_SOURCE_DIR}/include/smCore/smSynchronization.h
    ${CMAKE_SOURCE_DIR}/include/smCore/smTextureManager.h
    ${CMAKE_SOURCE_DIR}/include/smCore/smWorkerThread.h
)

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

if(NOT MSVC)
  target_compile_features(smCore PUBLIC cxx_auto_type)
endif()
