#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 )