###############################################################################
# Copyright (c) 2010 Nokia Siemens Networks Oyj, Finland.
#
# This program and the accompanying materials
# are made available under the terms of the Eclipse Public License 2.0
# which accompanies this distribution, and is available at
# https://www.eclipse.org/legal/epl-2.0/
#
# SPDX-License-Identifier: EPL-2.0
#
# Contributors:
#     Nokia Siemens Networks Oyj, initial LLVM support as an add-on to CDT.
###############################################################################

# plugin names
pluginName=LLVM Managed Build Definitions
providerName=Eclipse CDT

# Build Model Names
TargetName.llvm=LLVM
TargetName.llvm.bitcode=LLVM bitcode

# Tool-chain names
ToolChainName.llvm=LLVM
ToolChainName.llvm.with.linker=LLVM with C/C++ Linker
ToolChainName.llvm.with.static.compiler=LLVM with static compiler
ToolChainName.llvm.static.compiler.linux=LLVM with static compiler (Linux)
ToolChainName.llvm.static.compiler.macosx=LLVM with static compiler (MacOSX)
ToolChainName.llvm.static.compiler.win32=LLVM with static compiler (Windows)
ToolChainName.llvm.jit=LLVM with JIT/Interpreter
ToolChainName.llvm.jit.linux=LLVM with JIT/Interpreter (Linux)
ToolChainName.llvm.jit.macosx=LLVM with JIT/Interpreter (MacOSX)
ToolChainName.llvm.jit.win32=LLVM with JIT/Interpreter (Windows)
ToolChainName.llvm.clang=LLVM with Clang
ToolChainName.llvm.clang.win32.mingw=LLVM with Clang (Windows) (MinGW)\u0020
ToolChainName.llvm.clang.win32.cygwin=LLVM with Clang (Windows) (Cygwin)
ToolChainName.llvm.linux=LLVM with Clang (Linux)
ToolChainName.llvm.macosx=LLVM with Clang (MacOSX)
ToolChainName.llvm.gnu=LLVM with GCC
ToolChainName.llvm.gnu.linux=LLVM with GCC (Linux)
ToolChainName.llvm.gnu.macosx=LLVM with GCC (MacOSX)
ToolChainName.llvm.gnu.win32.cygwin=LLVM with GCC (Windows) (Cygwin)
ToolChainName.llvm.gnu.win32.mingw=LLVM with GCC (Windows) (MinGW)

# Default Configuration Names
# START NON-TRANSLATABLE
ConfigName.Rel=Release
ConfigName.Dbg=Debug
ConfigName.Rel.Win32=Release
ConfigName.Dbg.Win32=Debug
ConfigName.Rel.Gnu=Release
ConfigName.Dbg.Gnu=Debug

# END NON-TRANSLATABLE

# Generic platform names (copied from org.eclipse.cdt.managedbuilder.gnu.ui)
PlatformName.Rel=Release Platform
PlatformName.Dbg=Debug Platform

# LLVM tool names
ToolName.archiver.llvm=LLVM archiver
ToolName.assembler.llvm=LLVM assembler
ToolName.compiler.llvm.abstract=Abstract LLVM C/C++ compiler
ToolName.compiler.llvm.c.abstract=Abstract LLVM C compiler
ToolName.compiler.llvm.cpp.abstract=Abstract LLVM C++ compiler
ToolName.compiler.llvm.c=LLVM Clang
ToolName.compiler.llvm.cpp=LLVM Clang++
ToolName.compiler.llvm.gcc=LLVM GCC
ToolName.compiler.llvm.g++=LLVM G++
ToolName.linker.llvm.c=LLVM Clang C linker
ToolName.linker.llvm.cpp=LLVM Clang C++ linker
ToolName.linker.llvm.gcc=LLVM GNU C linker
ToolName.linker.llvm.g++=LLVM GNU C++ linker
ToolName.llc.llvm=LLVM Static Compiler
ToolName.llc.llvm.c=LLVM C Static Compiler
ToolName.llc.llvm.cpp=LLVM C++ Static Compiler
ToolName.lli.llvm=LLVM JIT compiler/Interpreter

# Option Names
# Generic Category Names
#OptionCategory.Symbols = Symbols
OptionCategory.Dialect = Dialect
OptionCategory.Preproc=Preprocessor
OptionCategory.Dirs=Directories
OptionCategory.General=General
OptionCategory.Optimize=Optimization
OptionCategory.Debug=Debugging
OptionCategory.Warn=Warnings
OptionCategory.Misc=Miscellaneous
OptionCategory.Includes=Includes
OptionCategory.Libs=Libraries
OptionCategory.Options=Options
OptionCategory.Optimizations=Optimization Options
OptionCategory.FloatingPointOptions=Floating Point Options
OptionCategory.CodeGenerationOptions=Code Generation Options
#OptionCategory.Shared.Settings=Shared Library Settings

# Generic Option Names
Option.Posix.PreprocOnly=Preprocess only (-E)
#Option.Posix.Nostdinc=Do not search system directories (-nostdinc)

Option.Posix.DefSym=Defined symbols (-D)
Option.Posix.UndefSym=Undefined symbols (-U)

Option.Posix.InclPaths=Include paths (-I)

Option.Posix.OptLevel=Optimization Level
Option.Posix.Optimize.None=None (-O0)
Option.Posix.Optimize.Optimize=Optimize (-O1)
Option.Posix.Optimize.More=Optimize more (-O2)
Option.Posix.Optimize.Most=Optimize most (-O3)
Option.Posix.Optimize.Runtime=Optimize at run-time (-O4)
Option.Posix.Optimize.Flags=Other optimization flags

Option.Posix.DebugLevel=Debug Level
Option.Posix.Debug.None=None
Option.Posix.Debug.Min=Minimal (-g1)
Option.Posix.Debug.Def=Default (-g)
Option.Posix.Debug.Max=Maximum (-g3)
Option.Posix.Debug.Other=Other debugging flags
#Option.Posix.Debug.gprof=Generate gprof information (-pg)
#Option.Posix.Debug.prof=Generate prof information (-p)
Option.Posix.Debug.sanitaddress=Sanitize address (-fsanitize=address)
Option.Posix.Debug.sanitpointers=Sanitize pointer operations (-fsanitize=pointer-compare -fsanitize=pointer-subtract)
Option.Posix.Debug.sanitthread=Sanitize data race in multi-thread (-fsanitize=thread)
Option.Posix.Debug.sanitleak=Sanitize memory leak (-fsanitize=leak)
Option.Posix.Debug.sanitundefined=Sanitize undefined behavior (-fsanitize=undefined)

Option.Posix.Warn.Syntax=Check syntax only (-fsyntax-only)
Option.Posix.Warn.Pedandic=Pedantic (-pedantic)
Option.Posix.Warn.PedErrors=Pedantic warnings as errors (-pedantic-errors)
Option.Posix.Warn.nowarn=Inhibit all warnings (-w)
Option.Posix.Warn.allwarn=All warnings (-Wall)
Option.Posix.Warn.toerrs=Warnings as errors (-Werror)
Option.Posix.Warn.wfloatequal=Direct float equal check (-Wfloat-equal)
Option.Posix.Warn.wcastalign=Pointer cast with different alignment (-Wcast-align)
Option.Posix.Warn.wcastqual=Removing type qualifier from cast target type (-Wcast-qual)
Option.Posix.Warn.woldstylecast=C-style cast used (-Wold-style-cast)
Option.Posix.Warn.wsignconv=Implicit conversions that may change the sign (-Wsign-conversion)
Option.Posix.Warn.wundef=An undefined identifier is evaluated in an #if directive (-Wundef)
Option.Posix.Warn.weffcpp=Effective C++ guidelines (-Weffc++)

Option.Posix.Verbose=Verbose (-v)
Option.OtherFlags=Other flags
#Option.Posix.Ansi=Support ANSI programs (-ansi)

Option.Posix.Archiver.delete=Delete files from the archive
Option.Posix.Archiver.print.contents=Print the table of contents
#Option.Posix.Linker.NoStartFiles=Do not use standard start files (-nostartfiles)
#Option.Posix.Linker.NoDefLibs=Do not use default libraries (-nodefaultlibs)
#Option.Posix.Linker.NoStdLibs=No startup or default libs (-nostdlib)
Option.Posix.Linker.Strip=Omit all debug and symbol information (-strip-all)
Option.Posix.Linker.Strip.Debug=Omit all debug information (-strip-debug)
Option.Posix.Linker.Stats=Print statistics
Option.Posix.Linker.Verbose=Verbose mode
Option.Posix.Linker.Verification=Verification pass
Option.Posix.Linker.DisableInternalize=Disable Internalize
Option.Posix.Linker.DisableOptimization=Disable Optimization
Option.Posix.Linker.DisableInhiling=Disable Inhiling
#Option.Posix.Linker.Static=No shared libraries (-static)
#Option.Posix.Linker.XLinker=Other options (-Xlinker [option])
Option.Posix.Linker.Flags=Linker flags
Option.Posix.Libs=Libraries (-l)
Option.Posix.Libsearch=Library search path (-L)
Option.Posix.UserBcs=Other bytecode files
#Option.Posix.Linker.Shared=Shared (-shared)
#Option.Posix.Linker.SOName=Shared object name (-Wl,-soname=)
#Option.Posix.Linker.Implib=Import Library name (-Wl,--out-implib=)
#Option.Posix.Linker.Defname=DEF file name (-Wl,--output-def=)
Option.Posix.Linker.link_as_library=Create a library
Option.Posix.Linker.LlvmOptions=Input/Output Options
Option.Posix.Linker.native=Create native binary (with LLVM native code generator)
Option.Posix.Linker.nativeCBackend=Create native binary (with C backend code generator)
Option.Posix.Static.Compiler.Flags=Static Compiler Flags

Option.Llvm.printStats=Print statistics
Option.Llvm.Archiver.Flags=Archiver flags
Option.Llvm.Llc.Flags=LLC flags
Option.Llvm.Llc.EmitC=Emit C code (not assembly)
Option.Llvm.Llc.Arch=Specify architecture for assembly code (x86 or sparcv9)
Option.Llvm.llc.optimization.disableExcessPrecisionOptimization=Disable optimizations that may produce excess precision for floating point
Option.Llvm.llc.optimization.disableFramePointerEliminationOptimization=Disable frame pointer elimination optimization
Option.Llvm.Lli.Flags=LLVM JIT/Interpreter flags
Option.Llvm.Lli.ForceInterpreter=Force Interpreter
Option.Llvm.Lli.disable-excess-fp-precision=Disable optimizations that may increase floating point precision
Option.Llvm.Lli.enable-finite-only-fp-math=Enable optimizations that assume only finite floating point math
Option.Llvm.Lli.enable-unsafe-fp-math=Enable optimizations that may decrease floating point precision
Option.Llvm.Lli.soft-float=Generate software floating point library calls instead of equivalent hardware instructions
Option.Llvm.Lli.disable-post-RA-scheduler=Disable scheduling after register allocation
Option.Llvm.Lli.disable-spill-fusing=Disable fusing of spill code into instructions
Option.Llvm.Lli.enable-correct-eh-support=Make the -lowerinvoke pass insert expensive, but correct, EH code
Option.Llvm.Lli.jit-enable-eh=Exception handling should be enabled in the just-in-time compiler
Option.Llvm.Assembler.Flags=Assembler flags
Option.Llvm.Assembler.warn.suppress=Suppress warnings (-W)
Option.Llvm.Assembler.version=Announce version (-v)

# Platform specific option names
#Option.Windows.Windres.OutputFormat = Output format
#Option.Windows.Windres.OutputFormat.Coff = coff (--output-format coff)
#Option.Windows.Windres.OutputFormat.RC = rc (--output-format rc)
#Option.Windows.Windres.OutputFormat.Res = res (--output-format res)
#Option.MacOSX.Linker.Shared=Shared (-dynamiclib)

# Artifact types
BuildProperty.type.name.bcexe=LLVM bytecode executable for LLI
BuildProperty.type.name.bclib=LLVM bytecode library

# Content types
ContentType.LlvmBytecodeFileName=LLVM bytecode file
#LLVM assembler file (human-readable)
ContentType.LlvmSourceFileName=LLVM
ContentType.LlvmExecutableFileName=LLVM executable
ContentType.LlvmAssemblerCode=LLVM Assembly Code

# Languages
Language.LlvmAssembly=LLVM bytecode assembly

option.name = Clang Option
page.name = LLVM
extension.name = Clang++ managed make per project SCD profile
extension.name.0 = Clang managed make per project SCD profile
extension.name.1 = LLVM-G++ managed make per project SCD profile
extension.name.2 = LLVM-GCC managed make per project SCD profile
option.tip = In this mode the linker will print additional information about the actions it takes, programs it executes, etc.
option.tip.0 = Strip all debug and symbol information from the executable to make it smaller.
option.tip.1 = Strip all debug information from the executable to make it smaller.
option.tip.2 = Run the verification pass after each of the passes to verify intermediate results.
option.tip.3 = Do not mark all symbols as internal.
option.tip.4 = Completely disable optimization.
option.tip.5 = Do not run the inlining pass. Functions will not be inlined into other functions.
option.tip.6 = Generate a native machine code executable.
option.tip.7 = Generate a native machine code executable with the LLVM C backend. Uses the C backend to generate code for the program instead of an LLVM native code generator.
option.tip.8 = Link the bitcode files together as a library, not an executable. In this mode, undefined symbols will be permitted.
option.tip.9 = Print the table of contents.
option.tip.10 = Print statistics recorded by code-generation passes.
option.tip.11 = Disable optimizations that may produce excess precision for floating point. Note that this option can dramatically slow down code on some systems (e.g. X86).
option.tip.12 = Print statistics from the code-generation passes.
enumeratedOptionValue.name = true
enumeratedOptionValue.name.0 = false
option.tip.13 = Causes lli to generate software floating point library calls instead of equivalent hardware instructions.
option.tip.14 = Causes lli to enable optimizations that may decrease floating point precision.
option.tip.15 = Disable optimizations that may increase floating point precision.
option.tip.16 = Enable optimizations that assumes only finite floating point math. That is, there is no NAN or Inf values.