xref: /llvm-project/llvm/unittests/tools/llvm-exegesis/CMakeLists.txt (revision 71ddde8ba52af7277b8f3a8dffa570963a3069f2)
1set(exegesis_includes
2  ${LLVM_MAIN_SRC_DIR}/tools/llvm-exegesis/lib
3  )
4
5set(LLVM_LINK_COMPONENTS
6  CodeGenTypes
7  MC
8  MCParser
9  Object
10  Support
11  Symbolize
12  TargetParser
13  )
14
15set(exegesis_sources
16  BenchmarkRunnerTest.cpp
17  ClusteringTest.cpp
18  ProgressMeterTest.cpp
19  RegisterValueTest.cpp
20  ResultAggregatorTest.cpp
21  )
22
23set(exegesis_link_libraries LLVMExegesis)
24
25function(add_llvm_exegesis_unittest_includes)
26  set(exegesis_includes ${exegesis_includes} ${ARGV} PARENT_SCOPE)
27endfunction()
28
29function(add_llvm_exegesis_unittest_sources)
30  set(sources ${ARGV})
31  list(TRANSFORM sources PREPEND "${CMAKE_CURRENT_LIST_DIR}/")
32  set(exegesis_sources ${exegesis_sources} ${sources} PARENT_SCOPE)
33endfunction()
34
35function(add_llvm_exegesis_unittest_link_components comps)
36  set(LLVM_LINK_COMPONENTS ${LLVM_LINK_COMPONENTS} ${ARGV} PARENT_SCOPE)
37endfunction()
38
39function(add_llvm_exegesis_unittest_link_libraries libs)
40  set(exegesis_link_libraries ${exegesis_link_libraries} ${ARGV} PARENT_SCOPE)
41endfunction()
42
43
44if(LLVM_TARGETS_TO_BUILD MATCHES "X86")
45  include(X86/CMakeLists.txt)
46endif()
47if(LLVM_TARGETS_TO_BUILD MATCHES "AArch64")
48  include(AArch64/CMakeLists.txt)
49endif()
50if(LLVM_TARGETS_TO_BUILD MATCHES "PowerPC")
51  include(PowerPC/CMakeLists.txt)
52endif()
53if(LLVM_TARGETS_TO_BUILD MATCHES "Mips")
54  include(Mips/CMakeLists.txt)
55endif()
56if(LLVM_TARGETS_TO_BUILD MATCHES "RISCV")
57  include(RISCV/CMakeLists.txt)
58endif()
59
60include_directories(${exegesis_includes})
61
62list(REMOVE_DUPLICATES LLVM_LINK_COMPONENTS)
63
64add_llvm_target_unittest(LLVMExegesisTests
65  ${exegesis_sources}
66  )
67target_link_libraries(LLVMExegesisTests PRIVATE ${exegesis_link_libraries})
68