forked from OSchip/llvm-project
67 lines
2.3 KiB
CMake
67 lines
2.3 KiB
CMake
|
include(${LLDB_PROJECT_ROOT}/cmake/LLDBDependencies.cmake)
|
||
|
|
||
|
# 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 (NOT LLDB_DISABLE_PYTHON AND LLDB_BUILD_INTEL_PT)
|
||
|
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()
|
||
|
|
||
|
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 (NOT LLDB_DISABLE_PYTHON AND LLDB_BUILD_INTEL_PT)
|
||
|
add_dependencies(lldbIntelFeatures intel-features-swig_wrapper)
|
||
|
target_link_libraries(lldbIntelFeatures PRIVATE ${LLDB_SYSTEM_LIBS})
|
||
|
endif()
|
||
|
|
||
|
install(TARGETS lldbIntelFeatures
|
||
|
LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX})
|