| # Flags to control each individual feature |
| option(LLDB_BUILD_INTEL_MPX "Enable Building of Intel(R) Memory Protection Extensions" ON) |
| option(LLDB_BUILD_INTEL_PT "Enable Building of Intel(R) Processor Trace Tool" OFF) |
| |
| # Return if all features are OFF |
| if (NOT LLDB_BUILD_INTEL_MPX AND NOT LLDB_BUILD_INTEL_PT) |
| return() |
| endif() |
| |
| LIST (APPEND FEATURE_LIBS "") |
| |
| # Add feature specific subdirectories based on flags |
| if (LLDB_BUILD_INTEL_MPX AND CMAKE_SYSTEM_NAME MATCHES "Linux") |
| add_subdirectory(intel-mpx) |
| LIST (APPEND FEATURE_LIBS ${FEATURE_LIBS} lldbIntelMPX) |
| SET (CLI_WRAPPER_PREPROCESSORS "${CLI_WRAPPER_PREPROCESSORS} -DBUILD_INTEL_MPX") |
| endif() |
| |
| if (LLDB_BUILD_INTEL_PT) |
| add_subdirectory(intel-pt) |
| LIST (APPEND FEATURE_LIBS ${FEATURE_LIBS} lldbIntelPT) |
| SET (CLI_WRAPPER_PREPROCESSORS "${CLI_WRAPPER_PREPROCESSORS} -DBUILD_INTEL_PT") |
| endif() |
| |
| # Add python wrapper if python not disabled |
| if (LLDB_ENABLE_PYTHON AND LLDB_BUILD_INTEL_PT) |
| list(APPEND FEATURE_LIBS ${FEATURE_LIBS} ${Python3_LIBRARIES}) |
| set(LLDB_INTEL_FEATURES_PYTHON_WRAP |
| ${LLDB_BINARY_DIR}/tools/intel-features/scripts/IntelFeaturesPythonWrap.cpp) |
| set_source_files_properties(${LLDB_INTEL_FEATURES_PYTHON_WRAP} |
| PROPERTIES GENERATED 1) |
| |
| if (CLANG_CL) |
| set_source_files_properties(${LLDB_INTEL_FEATURES_PYTHON_WRAP} |
| PROPERTIES COMPILE_FLAGS -Wno-unused-function) |
| endif() |
| |
| if (LLVM_COMPILER_IS_GCC_COMPATIBLE AND |
| NOT "${CMAKE_SYSTEM_NAME}" MATCHES "Darwin") |
| set_property(SOURCE ${LLDB_INTEL_FEATURES_PYTHON_WRAP} |
| APPEND_STRING PROPERTY COMPILE_FLAGS |
| " -Wno-sequence-point -Wno-cast-qual") |
| endif () |
| add_subdirectory(scripts) |
| endif() |
| |
| if (NOT CLI_WRAPPER_PREPROCESSORS) |
| return() |
| endif() |
| |
| set_source_files_properties(cli-wrapper.cpp PROPERTIES |
| COMPILE_FLAGS ${CLI_WRAPPER_PREPROCESSORS}) |
| |
| add_lldb_library(lldbIntelFeatures SHARED |
| cli-wrapper.cpp |
| ${LLDB_INTEL_FEATURES_PYTHON_WRAP} |
| |
| LINK_LIBS |
| ${FEATURE_LIBS} |
| ) |
| |
| # Add link dependencies for python wrapper |
| if (LLDB_ENABLE_PYTHON AND LLDB_BUILD_INTEL_PT) |
| add_dependencies(lldbIntelFeatures intel-features-swig_wrapper) |
| endif() |
| |
| install(TARGETS lldbIntelFeatures |
| LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}) |