diff --git a/src/ILCompiler/src/Program.cs b/src/ILCompiler/src/Program.cs index f142742b01e..81bf2b593f3 100644 --- a/src/ILCompiler/src/Program.cs +++ b/src/ILCompiler/src/Program.cs @@ -360,7 +360,7 @@ private int Run(string[] args) } } - if (_multiFile || _isReadyToRunCodeGen) + if (_isReadyToRunCodeGen) { List inputModules = new List(); @@ -370,20 +370,30 @@ private int Run(string[] args) if (entrypointModule == null) { - // This is a multifile production build - we need to root all methods compilationRoots.Add(new LibraryRootProvider(module)); } inputModules.Add(module); } - if (_isReadyToRunCodeGen) - { - compilationGroup = new ReadyToRunSingleAssemblyCompilationModuleGroup(typeSystemContext, inputModules); - } - else + compilationGroup = new ReadyToRunSingleAssemblyCompilationModuleGroup(typeSystemContext, inputModules); + } + else if (_multiFile) + { + List inputModules = new List(); + + foreach (var inputFile in typeSystemContext.InputFilePaths) { - compilationGroup = new MultiFileSharedCompilationModuleGroup(typeSystemContext, inputModules); + EcmaModule module = typeSystemContext.GetModuleFromPath(inputFile.Value); + + if (entrypointModule == null) + { + // This is a multifile production build - we need to root all methods + compilationRoots.Add(new LibraryRootProvider(module)); + } + inputModules.Add(module); } + + compilationGroup = new MultiFileSharedCompilationModuleGroup(typeSystemContext, inputModules); } else {