Summary: This patch adds a modulemap which allows compiling the lldb headers into C++ modules (for example in builds with LLVM_ENABLE_MODULES=On). Even though most of the affected code has been cleaned up to work with the more strict C++ module semantics, there are still some workarounds left in the current modulemap (the most obvious one is the big `lldb` wrapper module). It also moves the Obj-C++ files in lldb to their own subdirectories. This was necessary because we need to filter out the modules flags for this code. Note: With the latest clang and libstdc++ it seems necessary to have a STL C++ module to get a working LLVM_ENABLE_MODULES build for lldb. Otherwise clang will falsely detect ODR violations in the textually included STL code inside the lldb modules. Reviewers: aprantl, bruno Reviewed By: aprantl, bruno Subscribers: mgorny, yamaguchi, v.g.vassilev, lldb-commits Differential Revision: https://reviews.llvm.org/D47929 llvm-svn: 334611
140 lines
4.5 KiB
Plaintext
140 lines
4.5 KiB
Plaintext
|
|
module lldb_API {
|
|
requires cplusplus
|
|
|
|
umbrella "API"
|
|
module * { export * }
|
|
}
|
|
|
|
module lldb_Host {
|
|
requires cplusplus
|
|
|
|
// Because we have OS-specific headers in Host, we just list
|
|
// all OS-independent headers here that will include the correct
|
|
// OS-specific header for us.
|
|
module ConnectionFileDescriptor { header "Host/ConnectionFileDescriptor.h" export * }
|
|
module Debug { header "Host/Debug.h" export * }
|
|
module Editline { header "Host/Editline.h" export * }
|
|
module FileCache { header "Host/FileCache.h" export * }
|
|
module File { header "Host/File.h" export * }
|
|
module FileSystem { header "Host/FileSystem.h" export * }
|
|
module HostGetOpt { header "Host/HostGetOpt.h" export * }
|
|
module Host { header "Host/Host.h" export * }
|
|
module HostInfoBase { header "Host/HostInfoBase.h" export * }
|
|
module HostInfo { header "Host/HostInfo.h" export * }
|
|
module HostNativeProcessBase { header "Host/HostNativeProcessBase.h" export * }
|
|
module HostNativeProcess { header "Host/HostNativeProcess.h" export * }
|
|
module HostNativeThreadBase { header "Host/HostNativeThreadBase.h" export * }
|
|
module HostNativeThreadForward { header "Host/HostNativeThreadForward.h" export * }
|
|
module HostNativeThread { header "Host/HostNativeThread.h" export * }
|
|
module HostProcess { header "Host/HostProcess.h" export * }
|
|
module HostThread { header "Host/HostThread.h" export * }
|
|
module LockFileBase { header "Host/LockFileBase.h" export * }
|
|
module LockFile { header "Host/LockFile.h" export * }
|
|
module MainLoopBase { header "Host/MainLoopBase.h" export * }
|
|
module MainLoop { header "Host/MainLoop.h" export * }
|
|
module MonitoringProcessLauncher { header "Host/MonitoringProcessLauncher.h" export * }
|
|
module OptionParser { header "Host/OptionParser.h" export * }
|
|
module PipeBase { header "Host/PipeBase.h" export * }
|
|
module Pipe { header "Host/Pipe.h" export * }
|
|
module PosixApi { header "Host/PosixApi.h" export * }
|
|
module Predicate { header "Host/Predicate.h" export * }
|
|
module ProcessLauncher { header "Host/ProcessLauncher.h" export * }
|
|
module ProcessRunLock { header "Host/ProcessRunLock.h" export * }
|
|
module PseudoTerminal { header "Host/PseudoTerminal.h" export * }
|
|
module SocketAddress { header "Host/SocketAddress.h" export * }
|
|
module Socket { header "Host/Socket.h" export * }
|
|
module StringConvert { header "Host/StringConvert.h" export * }
|
|
module Symbols { header "Host/Symbols.h" export * }
|
|
module TaskPool { header "Host/TaskPool.h" export * }
|
|
module Terminal { header "Host/Terminal.h" export * }
|
|
module ThreadLauncher { header "Host/ThreadLauncher.h" export * }
|
|
module Time { header "Host/Time.h" export * }
|
|
module XML { header "Host/XML.h" export * }
|
|
|
|
export *
|
|
}
|
|
|
|
module lldb_Initialization {
|
|
requires cplusplus
|
|
|
|
umbrella "Initialization"
|
|
module * { export * }
|
|
}
|
|
|
|
|
|
module lldb_Wrapper {
|
|
|
|
module lldb_Breakpoint {
|
|
requires cplusplus
|
|
|
|
umbrella "Breakpoint"
|
|
module * { export * }
|
|
}
|
|
|
|
module lldb_Core {
|
|
requires cplusplus
|
|
|
|
umbrella "Core"
|
|
module * { export * }
|
|
}
|
|
|
|
module lldb_DataFormatters {
|
|
requires cplusplus
|
|
|
|
umbrella "DataFormatters"
|
|
module * { export * }
|
|
}
|
|
|
|
module lldb_Expression {
|
|
requires cplusplus
|
|
|
|
umbrella "Expression"
|
|
module * { export * }
|
|
// TODO: This file includes a non-public header.
|
|
exclude header "Expression/REPL.h"
|
|
}
|
|
|
|
module lldb_Interpreter {
|
|
requires cplusplus
|
|
|
|
umbrella "Interpreter"
|
|
module * { export * }
|
|
}
|
|
|
|
module lldb_Symbol {
|
|
requires cplusplus
|
|
|
|
umbrella "Symbol"
|
|
module * { export * }
|
|
}
|
|
module lldb_Target {
|
|
requires cplusplus
|
|
|
|
umbrella "Target"
|
|
module * { export * }
|
|
}
|
|
}
|
|
|
|
|
|
module lldb_Utility {
|
|
requires cplusplus
|
|
|
|
umbrella "Utility"
|
|
module * { export * }
|
|
|
|
module lldb_defines { header "lldb-defines.h" export * }
|
|
module lldb_enumerations { header "lldb-enumerations.h" export * }
|
|
module lldb_forward { header "lldb-forward.h" export * }
|
|
module lldb_private_enumerations { header "lldb-private-enumerations.h" export * }
|
|
module lldb_private_defines { header "lldb-private-defines.h" export * }
|
|
module lldb_private_forward { header "lldb-private-forward.h" export * }
|
|
module lldb_private { header "lldb-private.h" export * }
|
|
module lldb_private_interfaces { header "lldb-private-interfaces.h" export * }
|
|
module lldb_private_types { header "lldb-private-types.h" export * }
|
|
module lldb_public { header "lldb-public.h" export * }
|
|
module lldb_types { header "lldb-types.h" export * }
|
|
module lldb_versioning { header "lldb-versioning.h" export * }
|
|
|
|
}
|