Command Line Arguments
The command line arguments serve as shortcuts to the common set of Settings Options used by the MOSA tools.
Tip
Specific settings may also be specified on the command line using the -setting
argument (or using the shorthand version -s
). For example to set the Compiler.OutputFile
setting with Mosa.BareMetal.HelloWorld.x86.bin
, pass the following two arguments -setting Compiler.OutputFile=Mosa.BareMetal.HelloWorld.x86.bin
on the command line.
Below are the command line arguments available:
Argument |
Setting |
Value Set |
---|---|---|
Compiler: |
||
{none} |
Compiler.SourceFiles |
{value} |
-settings |
Settings |
{value} |
-s |
Settings |
{value} |
-o |
Compiler.OutputFile |
{value} |
-threading |
Compiler.Multithreading |
true |
-threading-off |
Compiler.Multithreading |
false |
-threads |
Compiler.Multithreading.MaxThreads |
{value} |
-base |
Compiler.BaseAddress |
{value} |
-scanner |
Compiler.MethodScanner |
true |
-no-code |
Compiler.Binary |
false |
-path |
SearchPaths |
|
-inline |
Optimizations.Inline |
true |
-inline-off |
Optimizations.Inline |
false |
-ssa |
Optimizations.SSA |
true |
-ssa-off |
Optimizations.SSA |
false |
-sccp |
Optimizations.SCCP |
true |
-sccp-off |
Optimizations.SCCP |
false |
-basic-optimizations |
Optimizations.Basic |
true |
-basic-optimizations-off |
Optimizations.Basic |
false |
-basic-optimization-window |
Optimizations.Basic.Window |
{value} |
-inline-explicit |
Optimizations.Inline.Explicit |
true |
-inline-explicit-off |
Optimizations.Inline.Explicit |
false |
-long-expansion |
Optimizations.LongExpansion |
true |
-long-expansion-off |
Optimizations.LongExpansion |
false |
-two-pass |
Optimizations.TwoPass |
true |
-two-pass-off |
Optimizations.TwoPass |
true |
-value-numbering |
Optimizations.ValueNumbering |
true |
-value-numbering-off |
Optimizations.ValueNumbering |
false |
-loop-invariant-code-motion |
Optimizations.LoopInvariantCodeMotion |
true |
-loop-invariant-code-motion-off |
Optimizations.LoopInvariantCodeMotion |
false |
-platform-optimizations |
Optimizations.Platform |
true |
-platform-optimizations-off |
Optimizations.Platform |
false |
-bit-tracker |
Optimizations.BitTracker |
true |
-bit-tracker-off |
Optimizations.BitTracker |
false |
-devirtualization |
Optimizations.Devirtualization |
true |
-devirtualization-off |
Optimizations.Devirtualization |
false |
-inline-level |
Optimizations.Inline.Maximum |
{value} |
-reducesize |
Optimizations.ReduceCodeSize |
true |
-platform |
Compiler.Platform |
{value} |
-x86 |
Compiler.Platform |
x86 |
-x64 |
Compiler.Platform |
x64 |
-arm32 |
Compiler.Platform |
ARM32 |
-arm64 |
Compiler.Platform |
ARM64 |
Compiler - Debug Output Information: |
||
-output-nasm |
CompilerDebug.NasmFile |
%DEFAULT% |
-output-asm |
CompilerDebug.AsmFile |
%DEFAULT% |
-output-map |
CompilerDebug.MapFile |
%DEFAULT% |
-output-counters |
CompilerDebug.CountersFile |
%DEFAULT% |
-output-time |
CompilerDebug.CompilerTimeFile |
%DEFAULT% |
-output-debug |
CompilerDebug.DebugFile |
%DEFAULT% |
-output-inlined |
CompilerDebug.InlinedFile |
%DEFAULT% |
-output-hash |
CompilerDebug.PreLinkHashFile |
%DEFAULT% |
-output-hash |
CompilerDebug.PostLinkHashFile |
%DEFAULT% |
-counters-filter |
CompilerDebug.CountersFilter |
{value} |
-check |
CompilerDebug.FullCheckMode |
true |
-asm |
CompilerDebug.AsmFile |
%DEFAULT% |
-map |
CompilerDebug.MapFile |
%DEFAULT% |
Compiler - X86: |
||
-interrupt-method |
X86.InterruptMethodName |
{value} |
Linker: |
||
-emit-all-symbols |
Linker.Symbols |
true |
-emit-all-symbols-off |
Linker.Symbols |
false |
-emit-relocations |
Linker.StaticRelocations |
true |
-emit-relocations-off |
Linker.StaticRelocations |
false |
-emit-static-relocations |
Linker.StaticRelocations |
true |
-emit-Dwarf |
Linker.Dwarf |
true |
-emit-Dwarf-off |
Linker.Dwarf |
false |
-Dwarf |
Linker.Dwarf |
true |
Explorer: |
||
-filter |
Explorer.Filter |
{value} |
-explorer-debug |
Explorer.DebugDiagnostic |
true |
-autostart |
Explorer.Start |
true |
Launcher: |
||
-autoexit |
Launcher.Exit |
true |
-autoexit-off |
Launcher.Exit |
false |
-autostart |
Launcher.Start |
true |
-autostart-off |
Launcher.Start |
false |
-autolaunch |
Launcher.Launch |
true |
-autolaunch-off |
Launcher.Launch |
false |
-launch |
Launcher.Launch |
true |
-launch-off |
Launcher.Launch |
false |
Launcher - Emulator: |
||
-emulator |
Emulator |
qemu|vmware|bochs |
-qemu |
Emulator |
qemu |
-vmware |
Emulator |
vmware |
-bochs |
Emulator |
bochs |
-display |
Emulator.Display |
on |
-display-off |
Emulator.Display |
off |
-memory |
Emulator.Memory |
|
-gdb |
Emulator.GDB |
true |
-timeout |
Emulator.MaxRuntime |
{value} |
-debug |
Launcher.Serial |
true |
-debug |
OS.BootOptions |
bootoptions=serialdebug |
Launcher - Emulator - Qemu & VMWare: |
||
-vmware-svga |
Emulator.SVGA |
vmware |
-virtio-vga |
Emulator.SVGA |
virtio |
Launcher - Image: |
||
-image |
Image.ImageFile |
{value} |
-destination |
Image.Folder |
{value} |
-dest |
Image.Folder |
{value} |
-vhd |
Image.Format |
vhd |
-img |
Image.Format |
img |
-vdi |
Image.Format |
vdi |
-vmdk |
Image.Format |
vmdk |
-blocks |
Image.DiskBlocks |
|
-volume-label |
Image.VolumeLabel |
|
-mbr |
Image.MasterBootRecordFile |
|
-boot |
Image.BootBlockFile |
|
-include |
Image.FileSystem.RootInclude |
{value} |
Launcher - Boot: |
||
-multiboot-v2 |
Multiboot.Version |
v2 |
-multiboot-none |
Multiboot.Version |
|
-multiboot |
Multiboot.Version |
{value} |
Launcher - Serial: |
||
-serial-connection |
Emulator.Serial |
|
-serial-pipe |
Emulator.Serial |
pipe |
-serial-tcpclient |
Emulator.Serial |
tcpclient |
-serial-tcpserver |
Emulator.Serial |
tcpserver |
-serial-connection-port |
Emulator.Serial.Port |
{value} |
-serial-connection-host |
Emulator.Serial.Host |
{value} |
Launcher - Video BIOS Extension (VBE): |
||
-video |
Multiboot.Video |
true |
-video-width |
Multiboot.Video.Width |
{value} |
-video-height |
Multiboot.Video.Height |
{value} |
Launcher - GDB: |
||
-launch-debugger |
Launcher.GDB |
true |
-launch-gdb |
Launcher.Debugger |
true |
Launcher & Debugger - GDB |
||
-gdb-port |
GDB.Port |
{value} |
-gdb-host |
GDB.Host |
{value} |
Launcher - Advance: |
||
-plug-korlib |
Launcher.PlugKorlib |
true |
-test |
OS.BootOptions |
bootoptions=serialdebug |
-test |
Launcher.Test |
true |
Operating System: |
||
-osname |
OS.Name |
{value} |
-bootoptions |
OS.BootOptions |
{value} |
Debugger: |
||
-breakpoints |
Debugger.BreakpointFile |
{value} |
-watch |
Debugger.WatchFile |
{value} |
Unit Testings: |
||
-maxerrors |
UnitTest.MaxErrors |
{value} |
Optimization Levels: |
||
-o0 |
Optimizations.Basic |
false |
-o0 |
Optimizations.SSA |
false |
-o0 |
Optimizations.ValueNumbering |
false |
-o0 |
Optimizations.SCCP |
false |
-o0 |
Optimizations.Devirtualization |
false |
-o0 |
Optimizations.LongExpansion |
false |
-o0 |
Optimizations.Platform |
false |
-o0 |
Optimizations.Inline |
false |
-o0 |
Optimizations.LoopInvariantCodeMotion |
false |
-o0 |
Optimizations.BitTracker |
false |
-o0 |
Optimizations.TwoPass |
false |
-o0 |
Optimizations.Inline.Maximum |
0 |
-o0 |
Optimizations.Basic.Window |
1 |
-o0 |
Optimizations.ReduceCodeSize |
false |
-o1 |
Optimizations.Basic |
true |
-o1 |
Optimizations.SSA |
false |
-o1 |
Optimizations.ValueNumbering |
false |
-o1 |
Optimizations.SCCP |
false |
-o1 |
Optimizations.Devirtualization |
true |
-o1 |
Optimizations.LongExpansion |
false |
-o1 |
Optimizations.Platform |
false |
-o1 |
Optimizations.Inline |
false |
-o1 |
Optimizations.LoopInvariantCodeMotion |
false |
-o1 |
Optimizations.BitTracker |
false |
-o1 |
Optimizations.TwoPass |
false |
-o1 |
Optimizations.Inline.Maximum |
0 |
-o1 |
Optimizations.Basic.Window |
1 |
-o1 |
Optimizations.ReduceCodeSize |
false |
-o2 |
Optimizations.Basic |
true |
-o2 |
Optimizations.SSA |
true |
-o2 |
Optimizations.ValueNumbering |
true |
-o2 |
Optimizations.SCCP |
false |
-o2 |
Optimizations.Devirtualization |
true |
-o2 |
Optimizations.LongExpansion |
false |
-o2 |
Optimizations.Platform |
false |
-o2 |
Optimizations.Inline |
false |
-o2 |
Optimizations.LoopInvariantCodeMotion |
false |
-o2 |
Optimizations.BitTracker |
false |
-o2 |
Optimizations.TwoPass |
false |
-o2 |
Optimizations.Inline.Maximum |
0 |
-o2 |
Optimizations.Basic.Window |
1 |
-o2 |
Optimizations.ReduceCodeSize |
false |
-o3 |
Optimizations.Basic |
true |
-o3 |
Optimizations.SSA |
true |
-o3 |
Optimizations.ValueNumbering |
true |
-o3 |
Optimizations.SCCP |
true |
-o3 |
Optimizations.Devirtualization |
true |
-o3 |
Optimizations.LongExpansion |
false |
-o3 |
Optimizations.Platform |
false |
-o3 |
Optimizations.Inline |
false |
-o3 |
Optimizations.LoopInvariantCodeMotion |
false |
-o3 |
Optimizations.BitTracker |
false |
-o3 |
Optimizations.TwoPass |
false |
-o3 |
Optimizations.Inline.Maximum |
0 |
-o3 |
Optimizations.Basic.Window |
5 |
-o3 |
Optimizations.ReduceCodeSize |
false |
-o4 |
Optimizations.Basic |
true |
-o4 |
Optimizations.SSA |
true |
-o4 |
Optimizations.ValueNumbering |
true |
-o4 |
Optimizations.SCCP |
true |
-o4 |
Optimizations.Devirtualization |
true |
-o4 |
Optimizations.LongExpansion |
true |
-o4 |
Optimizations.Platform |
false |
-o4 |
Optimizations.Inline |
false |
-o4 |
Optimizations.LoopInvariantCodeMotion |
false |
-o4 |
Optimizations.BitTracker |
false |
-o4 |
Optimizations.TwoPass |
false |
-o4 |
Optimizations.Inline.Maximum |
0 |
-o4 |
Optimizations.Basic.Window |
5 |
-o4 |
Optimizations.ReduceCodeSize |
false |
-o5 |
Optimizations.Basic |
true |
-o5 |
Optimizations.SSA |
true |
-o5 |
Optimizations.ValueNumbering |
true |
-o5 |
Optimizations.SCCP |
true |
-o5 |
Optimizations.Devirtualization |
true |
-o5 |
Optimizations.LongExpansion |
true |
-o5 |
Optimizations.Platform |
true |
-o5 |
Optimizations.Inline |
false |
-o5 |
Optimizations.LoopInvariantCodeMotion |
false |
-o5 |
Optimizations.BitTracker |
false |
-o5 |
Optimizations.TwoPass |
false |
-o5 |
Optimizations.Inline.Maximum |
0 |
-o5 |
Optimizations.Basic.Window |
5 |
-o5 |
Optimizations.ReduceCodeSize |
false |
-o6 |
Optimizations.Basic |
true |
-o6 |
Optimizations.SSA |
true |
-o6 |
Optimizations.ValueNumbering |
true |
-o6 |
Optimizations.SCCP |
true |
-o6 |
Optimizations.Devirtualization |
true |
-o6 |
Optimizations.LongExpansion |
true |
-o6 |
Optimizations.Platform |
true |
-o6 |
Optimizations.Inline |
true |
-o6 |
Optimizations.LoopInvariantCodeMotion |
false |
-o6 |
Optimizations.BitTracker |
false |
-o6 |
Optimizations.TwoPass |
false |
-o6 |
Optimizations.Inline.Maximum |
5 |
-o6 |
Optimizations.Basic.Window |
5 |
-o6 |
Optimizations.ReduceCodeSize |
false |
-o7 |
Optimizations.Basic |
true |
-o7 |
Optimizations.SSA |
true |
-o7 |
Optimizations.ValueNumbering |
true |
-o7 |
Optimizations.SCCP |
true |
-o7 |
Optimizations.Devirtualization |
true |
-o7 |
Optimizations.LongExpansion |
true |
-o7 |
Optimizations.Platform |
true |
-o7 |
Optimizations.Inline |
true |
-o7 |
Optimizations.LoopInvariantCodeMotion |
true |
-o7 |
Optimizations.BitTracker |
false |
-o7 |
Optimizations.TwoPass |
false |
-o7 |
Optimizations.Inline.Maximum |
10 |
-o7 |
Optimizations.Basic.Window |
5 |
-o7 |
Optimizations.ReduceCodeSize |
false |
-o8 |
Optimizations.Basic |
true |
-o8 |
Optimizations.SSA |
true |
-o8 |
Optimizations.ValueNumbering |
true |
-o8 |
Optimizations.SCCP |
true |
-o8 |
Optimizations.Devirtualization |
true |
-o8 |
Optimizations.LongExpansion |
true |
-o8 |
Optimizations.Platform |
true |
-o8 |
Optimizations.Inline |
true |
-o8 |
Optimizations.LoopInvariantCodeMotion |
true |
-o8 |
Optimizations.BitTracker |
true |
-o8 |
Optimizations.TwoPass |
true |
-o8 |
Optimizations.Inline.Maximum |
10 |
-o8 |
Optimizations.Basic.Window |
5 |
-o8 |
Optimizations.ReduceCodeSize |
false |
-o9 |
Optimizations.Basic |
true |
-o9 |
Optimizations.SSA |
true |
-o9 |
Optimizations.ValueNumbering |
true |
-o9 |
Optimizations.SCCP |
true |
-o9 |
Optimizations.Devirtualization |
true |
-o9 |
Optimizations.LongExpansion |
true |
-o9 |
Optimizations.Platform |
true |
-o9 |
Optimizations.Inline |
true |
-o9 |
Optimizations.LoopInvariantCodeMotion |
true |
-o9 |
Optimizations.BitTracker |
true |
-o9 |
Optimizations.TwoPass |
true |
-o9 |
Optimizations.Inline.Maximum |
15 |
-o9 |
Optimizations.Basic.Window |
10 |
-o9 |
Optimizations.ReduceCodeSize |
false |
-oNone |
Optimizations.Basic |
false |
-oNone |
Optimizations.SSA |
false |
-oNone |
Optimizations.ValueNumbering |
false |
-oNone |
Optimizations.SCCP |
false |
-oNone |
Optimizations.Devirtualization |
false |
-oNone |
Optimizations.LongExpansion |
false |
-oNone |
Optimizations.Platform |
false |
-oNone |
Optimizations.Inline |
false |
-oNone |
Optimizations.LoopInvariantCodeMotion |
false |
-oNone |
Optimizations.BitTracker |
false |
-oNone |
Optimizations.TwoPass |
false |
-oNone |
Optimizations.Inline.Maximum |
0 |
-oNone |
Optimizations.Basic.Window |
1 |
-oNone |
Optimizations.ReduceCodeSize |
false |
-oMax |
Optimizations.Basic |
true |
-oMax |
Optimizations.SSA |
true |
-oMax |
Optimizations.ValueNumbering |
true |
-oMax |
Optimizations.SCCP |
true |
-oMax |
Optimizations.Devirtualization |
true |
-oMax |
Optimizations.LongExpansion |
true |
-oMax |
Optimizations.Platform |
true |
-oMax |
Optimizations.Inline |
true |
-oMax |
Optimizations.LoopInvariantCodeMotion |
true |
-oMax |
Optimizations.BitTracker |
true |
-oMax |
Optimizations.TwoPass |
true |
-oMax |
Optimizations.Inline.Maximum |
15 |
-oMax |
Optimizations.Basic.Window |
20 |
-oMax |
Optimizations.ReduceCodeSize |
false |
-oSize |
Optimizations.Basic |
true |
-oSize |
Optimizations.SSA |
true |
-oSize |
Optimizations.ValueNumbering |
true |
-oSize |
Optimizations.SCCP |
true |
-oSize |
Optimizations.Devirtualization |
true |
-oSize |
Optimizations.LongExpansion |
true |
-oSize |
Optimizations.Platform |
true |
-oSize |
Optimizations.Inline |
true |
-oSize |
Optimizations.LoopInvariantCodeMotion |
true |
-oSize |
Optimizations.BitTracker |
true |
-oSize |
Optimizations.TwoPass |
true |
-oSize |
Optimizations.Inline.Maximum |
3 |
-oSize |
Optimizations.Basic.Window |
10 |
-oSize |
Optimizations.ReduceCodeSize |
true |
-oFast |
Optimizations.Basic |
true |
-oFast |
Optimizations.SSA |
true |
-oFast |
Optimizations.ValueNumbering |
true |
-oFast |
Optimizations.SCCP |
false |
-oFast |
Optimizations.Devirtualization |
true |
-oFast |
Optimizations.LongExpansion |
false |
-oFast |
Optimizations.Platform |
false |
-oFast |
Optimizations.Inline |
false |
-oFast |
Optimizations.LoopInvariantCodeMotion |
false |
-oFast |
Optimizations.BitTracker |
false |
-oFast |
Optimizations.TwoPass |
false |
-oFast |
Optimizations.Inline.Maximum |
0 |
-oFast |
Optimizations.Basic.Window |
1 |
-oFast |
Optimizations.ReduceCodeSize |
false |
Note
{value}
is the next argument