1#add_subdirectory(arm64) 2#add_subdirectory(arm) 3add_subdirectory(i386) 4#add_subdirectory(ppc) 5add_subdirectory(x86_64) 6add_subdirectory(DarwinLog) 7 8include_directories(..) 9 10set(generated_mach_interfaces 11 ${CMAKE_CURRENT_BINARY_DIR}/mach_exc.h 12 ${CMAKE_CURRENT_BINARY_DIR}/mach_excServer.c 13 ${CMAKE_CURRENT_BINARY_DIR}/mach_excUser.c 14 ) 15add_custom_command(OUTPUT ${generated_mach_interfaces} 16 COMMAND mig ${CMAKE_CURRENT_SOURCE_DIR}/dbgnub-mig.defs 17 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/dbgnub-mig.defs 18 ) 19 20set(DEBUGSERVER_VERS_GENERATED_FILE ${CMAKE_CURRENT_BINARY_DIR}/debugserver_vers.c) 21set_source_files_properties(${DEBUGSERVER_VERS_GENERATED_FILE} PROPERTIES GENERATED 1) 22 23add_custom_command(OUTPUT ${DEBUGSERVER_VERS_GENERATED_FILE} 24 COMMAND ${LLDB_SOURCE_DIR}/scripts/generate-vers.pl 25 ${LLDB_SOURCE_DIR}/lldb.xcodeproj/project.pbxproj debugserver 26 > ${DEBUGSERVER_VERS_GENERATED_FILE} 27 DEPENDS ${LLDB_SOURCE_DIR}/scripts/generate-vers.pl 28 ${LLDB_SOURCE_DIR}/lldb.xcodeproj/project.pbxproj 29 ) 30 31set(DEBUGSERVER_USED_LIBS 32 lldbDebugserverCommon 33 lldbUtility 34 lldbDebugserverMacOSX_I386 35 lldbDebugserverMacOSX_X86_64 36 lldbDebugserverMacOSX_DarwinLog 37 ) 38 39add_lldb_tool(debugserver INCLUDE_IN_FRAMEWORK 40 HasAVX.s 41 CFBundle.cpp 42 CFString.cpp 43 Genealogy.cpp 44 MachException.cpp 45 MachProcess.mm 46 MachTask.mm 47 MachThread.cpp 48 MachThreadList.cpp 49 MachVMMemory.cpp 50 MachVMRegion.cpp 51 OsLogger.cpp 52 ${generated_mach_interfaces} 53 ${DEBUGSERVER_VERS_GENERATED_FILE} 54 ) 55 56set_source_files_properties( 57 HasAVX.s 58 # Necessary since compilation will fail with stand-alone assembler 59 PROPERTIES LANGUAGE C COMPILE_FLAGS "-x assembler-with-cpp" 60 ) 61 62target_link_libraries(debugserver ${DEBUGSERVER_USED_LIBS}) 63 64set(LLDB_CODESIGN_IDENTITY "lldb_codesign" 65 CACHE STRING "Identity used for code signing. Set to empty string to skip the signing step.") 66if (NOT ("${LLDB_CODESIGN_IDENTITY}" STREQUAL "")) 67 execute_process( 68 COMMAND xcrun -f codesign_allocate 69 OUTPUT_STRIP_TRAILING_WHITESPACE 70 OUTPUT_VARIABLE CODESIGN_ALLOCATE 71 ) 72 add_custom_command(TARGET debugserver 73 POST_BUILD 74 # Note: --entitlements option removed (see comment above). 75 COMMAND ${CMAKE_COMMAND} -E env CODESIGN_ALLOCATE=${CODESIGN_ALLOCATE} 76 codesign --force --sign ${LLDB_CODESIGN_IDENTITY} 77 $<TARGET_FILE:debugserver> 78 WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/bin 79 ) 80endif() 81