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