68 lines · plain
1set(exegesis_includes2 ${LLVM_MAIN_SRC_DIR}/tools/llvm-exegesis/lib3 )4 5set(LLVM_LINK_COMPONENTS6 CodeGenTypes7 MC8 MCParser9 Object10 Support11 Symbolize12 TargetParser13 )14 15set(exegesis_sources16 BenchmarkRunnerTest.cpp17 ClusteringTest.cpp18 ProgressMeterTest.cpp19 RegisterValueTest.cpp20 ResultAggregatorTest.cpp21 )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(LLVMExegesisTests65 ${exegesis_sources}66 )67target_link_libraries(LLVMExegesisTests PRIVATE ${exegesis_link_libraries})68