# 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 painfulQuale.cpp qutex.cpp lockerAndInvokerBase.cpp # Body body/body.cpp # Marionette marionette/main.cpp marionette/salmanoff.cpp marionette/lifetime.cpp marionette/qualeEvent.cpp # DeviceManager deviceManager/deviceManager.cpp deviceManager/deviceReattacher.cpp deviceManager/deviceAttachmentPipeSpecParser.cpp ${LEX_OUTPUT} ${YACC_OUTPUT} # SenseApis stimBuffApis/stimBuffApiManager.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} ) # Link against pthread for CPU affinity functions find_package(Threads REQUIRED) target_link_libraries(smocore PRIVATE Threads::Threads)