Index: lldb/tools/debugserver/source/MacOSX/CMakeLists.txt =================================================================== --- lldb/tools/debugserver/source/MacOSX/CMakeLists.txt +++ lldb/tools/debugserver/source/MacOSX/CMakeLists.txt @@ -1,14 +1,28 @@ -if("${CMAKE_OSX_ARCHITECTURES}" MATCHES ".*arm.*") +# The debugserver build needs to conditionally include files depending on the +# target architecture. +# +# Switch on the architecture specified by LLVM_DEFAULT_TARGET_TRIPLE, as +# the llvm and swift build systems use this variable to identify the +# target (the latter, indirectly, through LLVM_HOST_TRIPLE). +# +# It would be possible to switch on CMAKE_OSX_ARCHITECTURES, but the swift +# build does not provide it, preferring instead to pass arch-specific +# CFLAGS etc explicitly. Switching on LLVM_HOST_TRIPLE is also an option, +# but it breaks down when cross-compiling. + +string(REGEX MATCH "^[^-]*" LLDB_DEBUGSERVER_ARCH ${LLVM_DEFAULT_TARGET_TRIPLE}) + +if("${LLDB_DEBUGSERVER_ARCH}" MATCHES ".*arm.*") list(APPEND SOURCES arm/DNBArchImpl.cpp arm64/DNBArchImplARM64.cpp) include_directories(${CURRENT_SOURCE_DIR}/arm ${CURRENT_SOURCE_DIR}/arm64) endif() -if(NOT CMAKE_OSX_ARCHITECTURES OR "${CMAKE_OSX_ARCHITECTURES}" MATCHES ".*86.*") +if(NOT LLDB_DEBUGSERVER_ARCH OR "${LLDB_DEBUGSERVER_ARCH}" MATCHES ".*86.*") list(APPEND SOURCES i386/DNBArchImplI386.cpp x86_64/DNBArchImplX86_64.cpp) include_directories(${CURRENT_SOURCE_DIR}/i386 ${CURRENT_SOURCE_DIR}/x86_64) endif() -if("${CMAKE_OSX_ARCHITECTURES}" MATCHES ".*ppc.*") +if("${LLDB_DEBUGSERVER_ARCH}" MATCHES ".*ppc.*") list(APPEND SOURCES ppc/DNBArchImpl.cpp) include_directories(${CURRENT_SOURCE_DIR}/ppc) endif()