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