Add /silent option to crossgen (dotnet/coreclr#10350)
authorBruce Forstall <brucefo@microsoft.com>
Tue, 21 Mar 2017 20:01:52 +0000 (13:01 -0700)
committerJan Kotas <jkotas@microsoft.com>
Tue, 21 Mar 2017 20:01:52 +0000 (13:01 -0700)
This sets the NGenOptions.fSilent flag, which prevents displaying
the final output message.

This is useful for JIT asm diff generation.

Commit migrated from https://github.com/dotnet/coreclr/commit/40e64db3861284708676f3e46302e32a54e846ec

src/coreclr/src/inc/coregen.h
src/coreclr/src/tools/crossgen/crossgen.cpp
src/coreclr/src/zap/zapper.cpp

index 5ca7334..5864bbb 100644 (file)
@@ -18,5 +18,6 @@
 #define NGENWORKER_FLAGS_WINMD_RESILIENT         0x1000
 #define NGENWORKER_FLAGS_READYTORUN              0x2000
 #define NGENWORKER_FLAGS_NO_METADATA             0x4000
+#define NGENWORKER_FLAGS_SILENT                  0x8000
 
 #endif // _NGENCOMMON_H_
index df16e94..43e667b 100644 (file)
@@ -108,6 +108,7 @@ void PrintUsageHelper()
        W("\n")
        W("    /? or /help          - Display this screen\n")
        W("    /nologo              - Prevents displaying the logo\n")
+       W("    /silent              - Do not display completion message\n")
        W("    @response.rsp        - Process command line arguments from specified\n")
        W("                           response file\n")
        W("    /partialtrust        - Assembly will be run in a partial trust domain.\n")
@@ -498,6 +499,10 @@ int _cdecl wmain(int argc, __in_ecount(argc) WCHAR **argv)
         {
             fDisplayLogo = false;
         }
+        else if (MatchParameter(*argv, W("silent")))
+        {
+            dwFlags |= NGENWORKER_FLAGS_SILENT;
+        }
         else if (MatchParameter(*argv, W("Tuning")))
         {
             dwFlags |= NGENWORKER_FLAGS_TUNING;
index 50e86db..4d1330e 100644 (file)
@@ -105,7 +105,7 @@ STDAPI NGenWorker(LPCWSTR pwzFilename, DWORD dwFlags, LPCWSTR pwzPlatformAssembl
         ngo.fDebug = false;
         ngo.fDebugOpt = false;
         ngo.fProf = false;
-        ngo.fSilent = false;
+        ngo.fSilent = (dwFlags & NGENWORKER_FLAGS_SILENT) != 0;
         ngo.lpszExecutableFileName = pwzFilename;
 
         // V2 (Whidbey)