]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - tools/debugserver/source/MacOSX/CMakeLists.txt
Vendor import of lldb trunk r290819:
[FreeBSD/FreeBSD.git] / tools / debugserver / source / MacOSX / CMakeLists.txt
1 #add_subdirectory(arm64)
2 #add_subdirectory(arm)
3 add_subdirectory(i386)
4 #add_subdirectory(ppc)
5 add_subdirectory(x86_64)
6 add_subdirectory(DarwinLog)
7
8 include_directories(..)
9
10 set(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   )
15 add_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
20 set(DEBUGSERVER_VERS_GENERATED_FILE ${CMAKE_CURRENT_BINARY_DIR}/debugserver_vers.c)
21 set_source_files_properties(${DEBUGSERVER_VERS_GENERATED_FILE} PROPERTIES GENERATED 1)
22
23 add_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
31 set(DEBUGSERVER_USED_LIBS
32   lldbDebugserverCommon
33   lldbUtility
34   lldbDebugserverMacOSX_I386
35   lldbDebugserverMacOSX_X86_64
36   lldbDebugserverMacOSX_DarwinLog
37   )
38
39 add_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
56 set_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
62 target_link_libraries(debugserver ${DEBUGSERVER_USED_LIBS})
63
64 set(LLDB_CODESIGN_IDENTITY "lldb_codesign"
65   CACHE STRING "Identity used for code signing. Set to empty string to skip the signing step.")
66 if (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   )
80 endif()