diff --git a/build/unix/module.modulemap b/build/unix/module.modulemap index 71d3695764643a589b244695bb4d1a46cb9e8a99..5f4f685b2fb9ee4e3027892f089ec1075bef02c8 100644 --- a/build/unix/module.modulemap +++ b/build/unix/module.modulemap @@ -1,6 +1,6 @@ // This module contains header files from module Core which can be used in both // C and C++ context. -module ROOT_Foundation_C [system] { +module ROOT_Foundation_C { module "ThreadLocalStorage.h" { header "ThreadLocalStorage.h" export * } module "strlcpy.h" { header "strlcpy.h" export * } module "snprintf.h" { header "snprintf.h" export * } @@ -11,7 +11,7 @@ module ROOT_Foundation_C [system] { // This module contains header files from module Core which are used as // configuration for ROOT. They contain a lot of macro definitions which are // supposed to be textually expanded in each TU. -module ROOT_Config [system] { +module ROOT_Config { // These headers are supposed to be only textually expanded for each TU. module "RVersion.h" { textual header "RVersion.h" export * } module "RConfig.h" { textual header "RConfig.h" export * } @@ -23,10 +23,13 @@ module ROOT_Config [system] { export * } +module ROOT_Rtypes { + module "RtypesCore.h" { header "RtypesCore.h" export * } +} + // This module contains header files from module Core which do not need -frtti. // They are mainly needed for ROOT stage1 build. -module ROOT_Foundation_Stage1_NoRTTI [system] { - module "RtypesCore.h" { header "RtypesCore.h" export * } +module ROOT_Foundation_Stage1_NoRTTI { module "ESTLType.h" { header "ESTLType.h" export * } module "ROOT/RStringView.hxx" { // RWrap_libcpp_string_view.h is meant to be included only by ROOT/RStringView.hxx @@ -55,9 +58,9 @@ module ROOT_Foundation_Stage1_NoRTTI [system] { // when there is no folder GL or contents in it. // module ROOT_Glew { // Depending on the platform we get some of these three installed. - module "glew.h" [system] { header "GL/glew.h" export * } - module "wglew.h" [system] { header "GL/wglew.h" export * } - module "glxew.h" [system] { header "GL/glxew.h" export * } + module "glew.h" { header "GL/glew.h" export * } + module "wglew.h" { header "GL/wglew.h" export * } + module "glxew.h" { header "GL/glxew.h" export * } // link "lib/libGLEW.so" //} diff --git a/core/dictgen/src/rootcling_impl.cxx b/core/dictgen/src/rootcling_impl.cxx index c1094a181cb552de7d9ca5a56ce19763e7ae2800..ec6be2017612066a0785a0e500ccf8ac63aeecb0 100644 --- a/core/dictgen/src/rootcling_impl.cxx +++ b/core/dictgen/src/rootcling_impl.cxx @@ -3912,14 +3912,15 @@ public: } } - // Skip the diag only if we build a system module. We still print the diag + // Skip the diag only if we build a ROOT system module or a system module. We still print the diag // when building a non-system module as we will print an error below and the // user should see the detailed default clang diagnostic. - bool isSystemModuleDiag = module && module->IsSystem; - if (!isSystemModuleDiag) + bool isROOTSystemModuleDiag = module && llvm::StringRef(moduleName).startswith("ROOT_"); + bool isSystemModuleDiag = module && module && module->IsSystem; + if (!isROOTSystemModuleDiag && !isSystemModuleDiag) fChild->HandleDiagnostic(DiagLevel, Info); - if (ID == remark_module_build && !isSystemModuleDiag) { + if (ID == remark_module_build && !isROOTSystemModuleDiag && !isSystemModuleDiag) { ROOT::TMetaUtils::Error(0, "Had to build non-system module %s implicitly. You first need to\n" "generate the dictionary for %s or mark the C++ module as a system\n"