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)