aboutsummaryrefslogtreecommitdiff
path: root/tools/debugserver/source/MacOSX/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'tools/debugserver/source/MacOSX/CMakeLists.txt')
-rw-r--r--tools/debugserver/source/MacOSX/CMakeLists.txt89
1 files changed, 89 insertions, 0 deletions
diff --git a/tools/debugserver/source/MacOSX/CMakeLists.txt b/tools/debugserver/source/MacOSX/CMakeLists.txt
new file mode 100644
index 000000000000..d319cb7b0bab
--- /dev/null
+++ b/tools/debugserver/source/MacOSX/CMakeLists.txt
@@ -0,0 +1,89 @@
+#add_subdirectory(arm64)
+#add_subdirectory(arm)
+add_subdirectory(i386)
+#add_subdirectory(ppc)
+add_subdirectory(x86_64)
+
+include_directories(..)
+
+set(generated_mach_interfaces
+ ${CMAKE_CURRENT_BINARY_DIR}/mach_exc.h
+ ${CMAKE_CURRENT_BINARY_DIR}/mach_excServer.c
+ ${CMAKE_CURRENT_BINARY_DIR}/mach_excUser.c
+ )
+add_custom_command(OUTPUT ${generated_mach_interfaces}
+ COMMAND mig ${CMAKE_CURRENT_SOURCE_DIR}/dbgnub-mig.defs
+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/dbgnub-mig.defs
+ )
+
+set(DEBUGSERVER_VERS_GENERATED_FILE ${CMAKE_CURRENT_BINARY_DIR}/debugserver_vers.c)
+set_source_files_properties(${DEBUGSERVER_VERS_GENERATED_FILE} PROPERTIES GENERATED 1)
+
+add_custom_command(OUTPUT ${DEBUGSERVER_VERS_GENERATED_FILE}
+ COMMAND ${LLDB_SOURCE_DIR}/scripts/generate-vers.pl
+ ${LLDB_SOURCE_DIR}/lldb.xcodeproj/project.pbxproj debugserver
+ > ${DEBUGSERVER_VERS_GENERATED_FILE}
+ DEPENDS ${LLDB_SOURCE_DIR}/scripts/generate-vers.pl
+ ${LLDB_SOURCE_DIR}/lldb.xcodeproj/project.pbxproj
+ )
+
+set(DEBUGSERVER_USED_LIBS
+ lldbDebugserverCommon
+ lldbUtility
+ lldbDebugserverMacOSX_I386
+ lldbDebugserverMacOSX_X86_64
+ )
+
+add_lldb_executable(debugserver
+ HasAVX.s
+ CFBundle.cpp
+ CFData.cpp
+ CFString.cpp
+ Genealogy.cpp
+ MachException.cpp
+ MachProcess.mm
+ MachTask.mm
+ MachThread.cpp
+ MachThreadList.cpp
+ MachVMMemory.cpp
+ MachVMRegion.cpp
+ ${generated_mach_interfaces}
+ ${DEBUGSERVER_VERS_GENERATED_FILE}
+ )
+
+set_source_files_properties(
+ HasAVX.s
+ # Necessary since compilation will fail with stand-alone assembler
+ PROPERTIES LANGUAGE C COMPILE_FLAGS "-x assembler-with-cpp"
+ )
+
+target_link_libraries(debugserver ${DEBUGSERVER_USED_LIBS})
+
+# Sign the debugserver binary
+set (CODESIGN_IDENTITY lldb_codesign)
+execute_process(
+ COMMAND xcrun -f codesign_allocate
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ OUTPUT_VARIABLE CODESIGN_ALLOCATE
+ )
+# Older cmake versions don't support "-E env".
+if (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} LESS 3.2)
+ add_custom_command(TARGET debugserver
+ POST_BUILD
+ # Note: --entitlements option removed, as it causes errors when debugging.
+ # was: COMMAND CODESIGN_ALLOCATE=${CODESIGN_ALLOCATE} codesign --entitlements ${CMAKE_CURRENT_SOURCE_DIR}/../debugserver-entitlements.plist --force --sign ${CODESIGN_IDENTITY} debugserver
+ COMMAND CODESIGN_ALLOCATE=${CODESIGN_ALLOCATE} codesign --force --sign ${CODESIGN_IDENTITY} debugserver
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/bin
+ )
+else()
+ add_custom_command(TARGET debugserver
+ POST_BUILD
+ # Note: --entitlements option removed (see comment above).
+ COMMAND ${CMAKE_COMMAND} -E env CODESIGN_ALLOCATE=${CODESIGN_ALLOCATE} codesign --force --sign ${CODESIGN_IDENTITY} debugserver
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/bin
+ )
+endif()
+
+install(TARGETS debugserver
+ RUNTIME DESTINATION bin
+ )