Files
salmanoff/smocore/CMakeLists.txt
T
hayodea 27b43c6686 Add ComputeManager; add SmoHooks for getting ClDevices, buffers
We added a new centralized OpenCL Compute manager. This can later
be extended to support CUDA, SyCL, etc. SMO can be configured at
build time to choose which API it will use for compute.

Moreover, the ComputeMgr allows us to register buffers which are
available to all cl_contexts.
2025-11-19 22:34:25 -04:00

67 lines
1.5 KiB
CMake

# Include Flex/Bison generation rules
include(${CMAKE_SOURCE_DIR}/cmake/flexYacc.cmake)
# Consolidated smocore library with all source files
add_library(smocore STATIC
# Core files
mind.cpp
opts.cpp
componentThread.cpp
component.cpp
qutex.cpp
lockerAndInvokerBase.cpp
# Body
body/body.cpp
# Director
director/director.cpp
# Marionette
marionette/main.cpp
marionette/salmanoff.cpp
marionette/lifetime.cpp
marionette/qualeEvent.cpp
marionette/negtrinEvent.cpp
# DeviceManager
deviceManager/deviceManager.cpp
deviceManager/deviceReattacher.cpp
deviceManager/deviceAttachmentPipeSpecParser.cpp
${LEX_OUTPUT}
${YACC_OUTPUT}
# SenseApis
stimBuffApis/stimBuffApiManager.cpp
# ComputeManager
computeManager/computeManager.cpp
# MindManager
mindManager/mindManager.cpp
)
# Conditionally add qutexAcquisitionHistoryTracker.cpp only when debug locks are enabled
if(ENABLE_DEBUG_LOCKS)
target_sources(smocore PRIVATE qutexAcquisitionHistoryTracker.cpp)
endif()
target_include_directories(smocore PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/include
${CMAKE_CURRENT_BINARY_DIR}
${Boost_INCLUDE_DIRS}
${OPENCL_INCLUDE_DIRS}
)
# Link against pthread for CPU affinity functions
find_package(Threads REQUIRED)
target_link_libraries(smocore PRIVATE
Threads::Threads
Boost::system
Boost::log
${OPENCL_LIBRARIES}
)
target_link_directories(smocore PRIVATE
${OPENCL_LIBRARY_DIRS}
)