xref: /llvm-project/llvm/unittests/tools/llvm-mca/CMakeLists.txt (revision 4ecbfacf9ecdc5bd9bf699d400c5058071b9500c)
1set(LLVM_LINK_COMPONENTS
2  MC
3  MCA
4  Support
5  TargetParser
6  )
7
8set(mca_root ${LLVM_MAIN_SRC_DIR}/tools/llvm-mca)
9
10set(mca_includes
11  ${CMAKE_CURRENT_SOURCE_DIR}
12  ${mca_root}
13  )
14
15# Right now we only need SummaryView.
16set(mca_views_sources
17  SummaryView.cpp
18  )
19list(TRANSFORM mca_views_sources PREPEND "${mca_root}/Views/")
20
21set(mca_sources
22  MCATestBase.cpp
23  ${mca_views_sources}
24  )
25
26function(add_llvm_mca_unittest_includes)
27  set(mca_includes ${mca_includes} ${ARGV} PARENT_SCOPE)
28endfunction()
29
30function(add_llvm_mca_unittest_sources)
31  set(sources ${ARGV})
32  list(TRANSFORM sources PREPEND "${CMAKE_CURRENT_LIST_DIR}/")
33  set(mca_sources ${mca_sources} ${sources} PARENT_SCOPE)
34endfunction()
35
36function(add_llvm_mca_unittest_link_components comps)
37  set(LLVM_LINK_COMPONENTS ${LLVM_LINK_COMPONENTS} ${ARGV} PARENT_SCOPE)
38endfunction()
39
40if(LLVM_TARGETS_TO_BUILD MATCHES "X86")
41  include(X86/CMakeLists.txt)
42endif()
43
44list(REMOVE_DUPLICATES LLVM_LINK_COMPONENTS)
45
46include_directories(${mca_includes})
47
48add_llvm_target_unittest(LLVMMCATests
49  ${mca_sources}
50  )
51