forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			128 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			CMake
		
	
	
	
			
		
		
	
	
			128 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			CMake
		
	
	
	
include_directories(${CMAKE_CURRENT_BINARY_DIR}/..)
 | 
						|
include_directories(${LLDB_SOURCE_DIR}/source)
 | 
						|
include_directories(MacOSX/DarwinLog)
 | 
						|
 | 
						|
include_directories(MacOSX)
 | 
						|
#include_directories(${CMAKE_CURRENT_BINARY_DIR}/MacOSX)
 | 
						|
 | 
						|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -stdlib=libc++ -Wl,-sectcreate,__TEXT,__info_plist,${CMAKE_CURRENT_SOURCE_DIR}/../resources/lldb-debugserver-Info.plist")
 | 
						|
 | 
						|
check_cxx_compiler_flag("-Wno-gnu-zero-variadic-macro-arguments"
 | 
						|
                        CXX_SUPPORTS_NO_GNU_ZERO_VARIADIC_MACRO_ARGUMENTS)
 | 
						|
if (CXX_SUPPORTS_NO_GNU_ZERO_VARIADIC_MACRO_ARGUMENTS)
 | 
						|
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-gnu-zero-variadic-macro-arguments")
 | 
						|
endif ()
 | 
						|
 | 
						|
check_cxx_compiler_flag("-Wno-zero-length-array"
 | 
						|
                        CXX_SUPPORTS_NO_ZERO_LENGTH_ARRAY)
 | 
						|
if (CXX_SUPPORTS_NO_ZERO_LENGTH_ARRAY)
 | 
						|
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-zero-length-array")
 | 
						|
endif ()
 | 
						|
 | 
						|
check_cxx_compiler_flag("-Wno-extended-offsetof"
 | 
						|
                        CXX_SUPPORTS_NO_EXTENDED_OFFSETOF)
 | 
						|
if (CXX_SUPPORTS_NO_EXTENDED_OFFSETOF)
 | 
						|
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-extended-offsetof")
 | 
						|
endif ()
 | 
						|
 | 
						|
find_library(COCOA_LIBRARY Cocoa)
 | 
						|
add_subdirectory(MacOSX)
 | 
						|
 | 
						|
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}/MacOSX/dbgnub-mig.defs
 | 
						|
  DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/MacOSX/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(lldbDebugserverCommonSources
 | 
						|
  DNBArch.cpp
 | 
						|
  DNBBreakpoint.cpp
 | 
						|
  DNB.cpp
 | 
						|
  DNBDataRef.cpp
 | 
						|
  DNBError.cpp
 | 
						|
  DNBLog.cpp
 | 
						|
  DNBRegisterInfo.cpp
 | 
						|
  DNBThreadResumeActions.cpp
 | 
						|
  JSON.cpp
 | 
						|
  StdStringExtractor.cpp
 | 
						|
  # JSON reader depends on the following LLDB-common files
 | 
						|
  ${LLDB_SOURCE_DIR}/source/Host/common/StringConvert.cpp
 | 
						|
  ${LLDB_SOURCE_DIR}/source/Host/common/SocketAddress.cpp
 | 
						|
  # end JSON reader dependencies
 | 
						|
  libdebugserver.cpp
 | 
						|
  PseudoTerminal.cpp
 | 
						|
  PThreadEvent.cpp
 | 
						|
  PThreadMutex.cpp
 | 
						|
  RNBContext.cpp
 | 
						|
  RNBRemote.cpp
 | 
						|
  RNBServices.cpp
 | 
						|
  RNBSocket.cpp
 | 
						|
  SysSignal.cpp
 | 
						|
  TTYState.cpp
 | 
						|
  
 | 
						|
  MacOSX/CFBundle.cpp
 | 
						|
  MacOSX/CFString.cpp
 | 
						|
  MacOSX/Genealogy.cpp
 | 
						|
  MacOSX/MachException.cpp
 | 
						|
  MacOSX/MachProcess.mm
 | 
						|
  MacOSX/MachTask.mm
 | 
						|
  MacOSX/MachThread.cpp
 | 
						|
  MacOSX/MachThreadList.cpp
 | 
						|
  MacOSX/MachVMMemory.cpp
 | 
						|
  MacOSX/MachVMRegion.cpp
 | 
						|
  MacOSX/OsLogger.cpp
 | 
						|
  ${generated_mach_interfaces}
 | 
						|
  ${DEBUGSERVER_VERS_GENERATED_FILE})
 | 
						|
 | 
						|
add_library(lldbDebugserverCommon ${lldbDebugserverCommonSources})
 | 
						|
 | 
						|
target_link_libraries(lldbDebugserverCommon
 | 
						|
                      INTERFACE ${COCOA_LIBRARY}
 | 
						|
                      lldbDebugserverMacOSX_I386
 | 
						|
                      lldbDebugserverMacOSX_X86_64
 | 
						|
                      lldbDebugserverMacOSX_DarwinLog)
 | 
						|
 | 
						|
set(LLVM_OPTIONAL_SOURCES ${lldbDebugserverCommonSources})
 | 
						|
add_lldb_tool(debugserver INCLUDE_IN_FRAMEWORK
 | 
						|
  debugserver.cpp
 | 
						|
 | 
						|
  LINK_LIBS
 | 
						|
    lldbDebugserverCommon
 | 
						|
  )
 | 
						|
 | 
						|
set(LLDB_CODESIGN_IDENTITY "lldb_codesign"
 | 
						|
  CACHE STRING "Identity used for code signing. Set to empty string to skip the signing step.")
 | 
						|
if (NOT ("${LLDB_CODESIGN_IDENTITY}" STREQUAL ""))
 | 
						|
  execute_process(
 | 
						|
    COMMAND xcrun -f codesign_allocate
 | 
						|
    OUTPUT_STRIP_TRAILING_WHITESPACE
 | 
						|
    OUTPUT_VARIABLE CODESIGN_ALLOCATE
 | 
						|
    )
 | 
						|
  add_custom_command(TARGET debugserver
 | 
						|
    POST_BUILD
 | 
						|
    COMMAND ${CMAKE_COMMAND} -E env CODESIGN_ALLOCATE=${CODESIGN_ALLOCATE}
 | 
						|
            codesign --force --sign ${LLDB_CODESIGN_IDENTITY}
 | 
						|
            $<TARGET_FILE:debugserver>
 | 
						|
    WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/bin
 | 
						|
  )
 | 
						|
endif()
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 |