if (NOT LIBIPT_INCLUDE_PATH)
message (FATAL_ERROR "libipt include path not provided")
endif()
if (NOT EXISTS "${LIBIPT_INCLUDE_PATH}")
message (FATAL_ERROR "invalid libipt include path provided")
endif()
include_directories(${LIBIPT_INCLUDE_PATH})
find_library(LIBIPT_LIBRARY ipt PATHS ${LIBIPT_LIBRARY_PATH} REQUIRED)
lldb_tablegen(TraceIntelPTCommandOptions.inc -gen-lldb-option-defs
SOURCE TraceIntelPTOptions.td
TARGET TraceIntelPTOptionsGen)
lldb_tablegen(TraceIntelPTProperties.inc -gen-lldb-property-defs
SOURCE TraceIntelPTProperties.td
TARGET TraceIntelPTPropertiesGen)
lldb_tablegen(TraceIntelPTPropertiesEnum.inc -gen-lldb-property-enum-defs
SOURCE TraceIntelPTProperties.td
TARGET TraceIntelPTPropertiesEnumGen)
add_lldb_library(lldbPluginTraceIntelPT PLUGIN
CommandObjectTraceStartIntelPT.cpp
DecodedThread.cpp
TaskTimer.cpp
LibiptDecoder.cpp
PerfContextSwitchDecoder.cpp
ThreadDecoder.cpp
TraceCursorIntelPT.cpp
TraceIntelPT.cpp
TraceIntelPTJSONStructs.cpp
TraceIntelPTMultiCpuDecoder.cpp
TraceIntelPTBundleLoader.cpp
TraceIntelPTBundleSaver.cpp
LINK_LIBS
lldbCore
lldbSymbol
lldbTarget
lldbPluginTraceCommon
${LIBIPT_LIBRARY}
LINK_COMPONENTS
Support
)
add_dependencies(lldbPluginTraceIntelPT
TraceIntelPTOptionsGen
TraceIntelPTPropertiesGen
TraceIntelPTPropertiesEnumGen)