1add_custom_target(LLDBUnitTests) 2set_target_properties(LLDBUnitTests PROPERTIES FOLDER "LLDB/Tests") 3 4add_dependencies(lldb-unit-test-deps LLDBUnitTests) 5 6include_directories(${LLDB_SOURCE_ROOT}) 7include_directories(${LLDB_PROJECT_ROOT}/unittests) 8 9if (CXX_SUPPORTS_SUGGEST_OVERRIDE_FLAG) 10 add_compile_options("-Wno-suggest-override") 11endif() 12 13function(add_lldb_unittest test_name) 14 cmake_parse_arguments(ARG 15 "" 16 "" 17 "LINK_LIBS;LINK_COMPONENTS" 18 ${ARGN}) 19 20 if (NOT ${test_name} MATCHES "Tests$") 21 message(FATAL_ERROR "Unit test name must end with 'Tests' for lit to find it.") 22 endif() 23 24 list(APPEND LLVM_LINK_COMPONENTS ${ARG_LINK_COMPONENTS}) 25 26 add_unittest(LLDBUnitTests 27 ${test_name} 28 ${ARG_UNPARSED_ARGUMENTS} 29 ) 30 31 add_custom_command( 32 TARGET ${test_name} 33 POST_BUILD 34 COMMAND "${CMAKE_COMMAND}" -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/Inputs) 35 36 target_link_libraries(${test_name} PRIVATE ${ARG_LINK_LIBS}) 37endfunction() 38 39function(add_unittest_inputs test_name inputs) 40 foreach (INPUT ${inputs}) 41 add_custom_command( 42 TARGET ${test_name} 43 POST_BUILD 44 COMMAND "${CMAKE_COMMAND}" -E copy ${CMAKE_CURRENT_SOURCE_DIR}/Inputs/${INPUT} ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/Inputs 45 COMMENT "Copying ${INPUT} to binary directory.") 46 endforeach() 47endfunction() 48 49add_subdirectory(TestingSupport) 50if (NOT CMAKE_SYSTEM_NAME MATCHES "Windows") 51 # FIXME: APITests.exe is not a valid googletest binary. 52 add_subdirectory(API) 53endif() 54add_subdirectory(Breakpoint) 55add_subdirectory(Callback) 56add_subdirectory(Core) 57add_subdirectory(DataFormatter) 58add_subdirectory(Disassembler) 59add_subdirectory(Editline) 60add_subdirectory(Expression) 61add_subdirectory(Host) 62add_subdirectory(Interpreter) 63add_subdirectory(Instruction) 64add_subdirectory(Language) 65add_subdirectory(ObjectFile) 66add_subdirectory(Platform) 67add_subdirectory(Process) 68add_subdirectory(ScriptInterpreter) 69add_subdirectory(Signals) 70add_subdirectory(Symbol) 71add_subdirectory(SymbolFile) 72add_subdirectory(Target) 73add_subdirectory(tools) 74add_subdirectory(UnwindAssembly) 75add_subdirectory(Utility) 76add_subdirectory(Thread) 77add_subdirectory(ValueObject) 78 79if(LLDB_CAN_USE_DEBUGSERVER AND LLDB_TOOL_DEBUGSERVER_BUILD AND NOT LLDB_USE_SYSTEM_DEBUGSERVER) 80 add_subdirectory(debugserver) 81endif() 82