CC: array[succ(low(TSystemCC)) .. high(TSystemCC), TInfoCC] = [("gcc", "o",
" -O3 -fno-ident", " -Os -fno-ident", "gcc", "g++",
"-c $options $include -o $objfile $file", " -mwindows", " -shared",
"ar rcs $libfile $objfiles", "",
"$buildgui $builddll -o $exefile $objfiles $options", " -I", " -L", " -l$1",
"", "-fPIC", "__asm__($1);$n", "$1 $3 $2 ",
"-Wa,-acdl=$asmfile -g -fverbose-asm -masm=intel",
"-std=gnu++17 -funsigned-char", {hasSwitchRange, hasComputedGoto, hasCpp,
hasGcGuard, hasGnuAsm, hasAttribute,
hasBuiltinUnreachable}), ("switch_gcc",
"o", " -O3 ", " -Os ", "aarch64-none-elf-gcc", "aarch64-none-elf-g++",
"-w -MMD -MP -MF $dfile -c $options $include -o $objfile $file",
" -mwindows", " -shared", "aarch64-none-elf-gcc-ar rcs $libfile $objfiles",
"aarch64-none-elf-gcc",
"$buildgui $builddll -Wl,-Map,$mapfile -o $exefile $objfiles $options",
" -I", " -L", " -l$1", "", "-fPIE", "asm($1);$n", "$1 $3 $2 ",
"-Wa,-acdl=$asmfile -g -fverbose-asm -masm=intel",
"-std=gnu++17 -funsigned-char", {hasSwitchRange, hasComputedGoto, hasCpp,
hasGcGuard, hasGnuAsm, hasAttribute,
hasBuiltinUnreachable}), ("llvm_gcc", "o",
" -O3 -fno-ident", " -Os -fno-ident", "llvm-gcc", "llvm-g++",
"-c $options $include -o $objfile $file", " -mwindows", " -shared",
"llvm-ar rcs $libfile $objfiles", "",
"$buildgui $builddll -o $exefile $objfiles $options", " -I", " -L", " -l$1",
"", "-fPIC", "__asm__($1);$n", "$1 $3 $2 ",
"-Wa,-acdl=$asmfile -g -fverbose-asm -masm=intel",
"-std=gnu++17 -funsigned-char", {hasSwitchRange, hasComputedGoto, hasCpp,
hasGcGuard, hasGnuAsm, hasAttribute,
hasBuiltinUnreachable}), ("clang", "o",
" -O3 -fno-ident", " -Os -fno-ident", "clang", "clang++",
"-c $options $include -o $objfile $file", " -mwindows", " -shared",
"llvm-ar rcs $libfile $objfiles", "",
"$buildgui $builddll -o $exefile $objfiles $options", " -I", " -L", " -l$1",
"", "-fPIC", "__asm__($1);$n", "$1 $3 $2 ",
"-Wa,-acdl=$asmfile -g -fverbose-asm -masm=intel",
"-std=gnu++17 -funsigned-char", {hasSwitchRange, hasComputedGoto, hasCpp,
hasGcGuard, hasGnuAsm, hasAttribute,
hasBuiltinUnreachable}), ("bcc", "obj",
" -O3 -6 ", " -O1 -6 ", "bcc32c", "cpp32c",
"-c $options $include -o$objfile $file", " -tW", " -tWD", "", "bcc32",
"$options $buildgui $builddll -e$exefile $objfiles", " -I", "", "", "", "",
"__asm{$n$1$n}$n", "$1 $2", "", "",
{hasSwitchRange, hasComputedGoto, hasCpp, hasGcGuard, hasAttribute}), (
"vcc", "obj", " /Ogityb2 ", " /O1 ", "cl", "cl",
"/c$vccplatform $options $include /nologo /Fo$objfile $file",
" /SUBSYSTEM:WINDOWS user32.lib ", " /LD",
"vccexe --command:lib$vccplatform /nologo /OUT:$libfile $objfiles", "cl",
"$builddll$vccplatform /Fe$exefile $objfiles $buildgui /nologo $options",
" /I", " /link /LIBPATH:", " $1.lib", " /RTC1 /Z7 ", "", "__asm{$n$1$n}$n",
"$3$n$1 $2", "/Fa$asmfile", "", {hasCpp, hasAssume, hasDeclspec}), ("tcc",
"o", "", "", "tcc", "", "-c $options $include -o $objfile $file",
"-Wl,-subsystem=gui", " -shared", "", "tcc",
"-o $exefile $options $buildgui $builddll $objfiles", " -I", "", "", " -g ",
"", "asm($1);$n", "$1 $2",
"-Wa,-acdl=$asmfile -g -fverbose-asm -masm=intel", "",
{hasSwitchRange, hasComputedGoto, hasGnuAsm}), ("env", "o", " -O3 ",
" -O1 ", "", "", "-c $ccenvflags $options $include -o $objfile $file", "",
" -shared ", "", "", "-o $exefile $buildgui $builddll $objfiles $options",
" -I", "", "", "", "", "__asm{$n$1$n}$n", "$1 $2", "", "", {hasGnuAsm}), (
"icl", "obj", " /Ogityb2 ", " /O1 ", "icl", "cl",
"/c$vccplatform $options $include /nologo /Fo$objfile $file",
" /SUBSYSTEM:WINDOWS user32.lib ", " /LD",
"vccexe --command:lib$vccplatform /nologo /OUT:$libfile $objfiles", "icl",
"$builddll$vccplatform /Fe$exefile $objfiles $buildgui /nologo $options",
" /I", " /link /LIBPATH:", " $1.lib", " /RTC1 /Z7 ", "", "__asm{$n$1$n}$n",
"$3$n$1 $2", "/Fa$asmfile", "", {hasCpp, hasAssume, hasDeclspec}), ("icc",
"o", " -O3 -fno-ident", " -Os -fno-ident", "icc", "g++",
"-c $options $include -o $objfile $file", " -mwindows", " -shared",
"ar rcs $libfile $objfiles", "icc",
"$buildgui $builddll -o $exefile $objfiles $options", " -I", " -L", " -l$1",
"", "-fPIC", "__asm__($1);$n", "$1 $3 $2 ",
"-Wa,-acdl=$asmfile -g -fverbose-asm -masm=intel",
"-std=gnu++17 -funsigned-char", {hasSwitchRange, hasComputedGoto, hasCpp,
hasGcGuard, hasGnuAsm, hasAttribute,
hasBuiltinUnreachable}), ("clang_cl",
"obj", " /Ogityb2 ", " /O1 ", "clang-cl", "clang-cl",
"/c$vccplatform $options $include /nologo /Fo$objfile $file",
" /SUBSYSTEM:WINDOWS user32.lib ", " /LD",
"vccexe --command:lib$vccplatform /nologo /OUT:$libfile $objfiles",
"clang-cl", "-fuse-ld=lld $builddll$vccplatform /Fe$exefile $objfiles $buildgui /nologo $options",
" /I", " /link /LIBPATH:", " $1.lib", " /RTC1 /Z7 ", "", "__asm{$n$1$n}$n",
"$3$n$1 $2", "/Fa$asmfile", "", {hasCpp, hasAssume, hasDeclspec}), ("hipcc",
"o", " -O3 -fno-ident", " -Os -fno-ident", "hipcc", "hipcc",
"-c $options $include -o $objfile $file", " -mwindows", " -shared",
"llvm-ar rcs $libfile $objfiles", "",
"$buildgui $builddll -o $exefile $objfiles $options", " -I", " -L", " -l$1",
"", "-fPIC", "__asm__($1);$n", "$1 $3 $2 ",
"-Wa,-acdl=$asmfile -g -fverbose-asm -masm=intel",
"-std=gnu++17 -funsigned-char", {hasSwitchRange, hasComputedGoto, hasCpp,
hasGcGuard, hasGnuAsm, hasAttribute,
hasBuiltinUnreachable}), ("nvcc", "o",
" -O3 -fno-ident", " -Os -fno-ident", "nvcc", "nvcc",
"-c -x cu -Xcompiler=\"$options\" $include -o $objfile $file", " -mwindows",
" -shared", "ar rcs $libfile $objfiles", "",
"$buildgui $builddll -o $exefile $objfiles -Xcompiler=\"$options\"", " -I",
" -L", " -l$1", "", "-fPIC", "__asm__($1);$n", "$1 $3 $2 ",
"-Wa,-acdl=$asmfile -g -fverbose-asm -masm=intel",
"-std=gnu++17 -funsigned-char", {hasSwitchRange, hasComputedGoto, hasCpp,
hasGcGuard, hasGnuAsm, hasAttribute,
hasBuiltinUnreachable})]