[cxxmodules] Teach ACLiC to build modules.
ACLiC now synthesizes a modulemap with a suffix _ACLiC_dict.modulemap. The file contains the source file to be compiled and the corresponding library. The modulemap is then passed to rootcling via -fmodule-map-file= flag to avoid naming clashes with possibly existing other modulemap files. This patch teaches cling to work with the -fmodule-map-file= flag. ACLiC supports automatic inclusion of Rtypes.h (making ClassDef macro available). Modules are built in isolation and are resilient to #include of Rtypes.h at rootcling startup time. We make module Core (containing Rtypes.h) visible via a newly implemented callback.
Showing
- core/base/src/TSystem.cxx 29 additions, 3 deletionscore/base/src/TSystem.cxx
- core/dictgen/src/rootcling_impl.cxx 25 additions, 6 deletionscore/dictgen/src/rootcling_impl.cxx
- core/meta/inc/TInterpreter.h 2 additions, 0 deletionscore/meta/inc/TInterpreter.h
- core/metacling/src/TCling.cxx 48 additions, 35 deletionscore/metacling/src/TCling.cxx
- core/metacling/src/TCling.h 2 additions, 0 deletionscore/metacling/src/TCling.h
- interpreter/cling/include/cling/Interpreter/InterpreterCallbacks.h 3 additions, 0 deletions...er/cling/include/cling/Interpreter/InterpreterCallbacks.h
- interpreter/cling/lib/Interpreter/CIFactory.cpp 7 additions, 0 deletionsinterpreter/cling/lib/Interpreter/CIFactory.cpp
- interpreter/cling/lib/Interpreter/InterpreterCallbacks.cpp 6 additions, 0 deletionsinterpreter/cling/lib/Interpreter/InterpreterCallbacks.cpp
- interpreter/cling/lib/Interpreter/MultiplexInterpreterCallbacks.h 6 additions, 0 deletions...ter/cling/lib/Interpreter/MultiplexInterpreterCallbacks.h
- interpreter/llvm/src/tools/clang/include/clang/Lex/PPCallbacks.h 35 additions, 0 deletions...eter/llvm/src/tools/clang/include/clang/Lex/PPCallbacks.h
- interpreter/llvm/src/tools/clang/lib/Lex/PPLexerChange.cpp 12 additions, 0 deletionsinterpreter/llvm/src/tools/clang/lib/Lex/PPLexerChange.cpp
Loading
Please register or sign in to comment