easybuild.tools.toolchain.compiler module¶
Toolchain compiler module, provides abstract class for compilers.
Authors:
- Stijn De Weirdt (Ghent University)
- Kenneth Hoste (Ghent University)
- Damian Alvarez (Forschungszentrum Juelich GmbH)
-
class
easybuild.tools.toolchain.compiler.Compiler(*args, **kwargs)¶ Bases:
easybuild.tools.toolchain.toolchain.ToolchainGeneral compiler-like class can’t be used without creating new class C(Compiler,Toolchain)
-
COMPILER_CC= None¶
-
COMPILER_CXX= None¶
-
COMPILER_C_FLAGS= ['cstd']¶
-
COMPILER_C_UNIQUE_FLAGS= []¶
-
COMPILER_F77= None¶
-
COMPILER_F90= None¶
-
COMPILER_FAMILY= None¶
-
COMPILER_FC= None¶
-
COMPILER_FLAGS= ['debug', 'ieee', 'openmp', 'pic', 'shared', 'static', 'unroll', 'verbose']¶
-
COMPILER_F_FLAGS= ['i8', 'r8']¶
-
COMPILER_F_UNIQUE_FLAGS= []¶
-
COMPILER_GENERIC_OPTION= None¶
-
COMPILER_MODULE_NAME= None¶
-
COMPILER_OPTIMAL_ARCHITECTURE_OPTION= None¶
-
COMPILER_OPT_FLAGS= ['noopt', 'lowopt', 'defaultopt', 'opt']¶
-
COMPILER_PREC_FLAGS= ['strict', 'precise', 'defaultprec', 'loose', 'veryloose']¶
-
COMPILER_SHARED_OPTION_MAP= {'32bit': 'm32', 'cstd': 'std=%(value)s', 'debug': 'g', 'defaultopt': 'O2', 'extra_cflags': '%(value)s', 'extra_cxxflags': '%(value)s', 'extra_f90flags': '%(value)s', 'extra_fcflags': '%(value)s', 'extra_fflags': '%(value)s', 'lowopt': 'O1', 'noopt': 'O0', 'openmp': 'fopenmp', 'opt': 'O3', 'pic': 'fPIC', 'shared': 'shared', 'static': 'static', 'unroll': 'unroll', 'verbose': 'v'}¶
-
COMPILER_SHARED_OPTS= {'32bit': (False, 'Compile 32bit target'), 'cciscxx': (False, 'Use CC as CXX'), 'cstd': (None, 'Specify C standard'), 'debug': (False, 'Enable debug'), 'defaultopt': (False, 'Default compiler optimizations'), 'defaultprec': (False, 'Default precision'), 'extra_cflags': (None, 'Specify extra CFLAGS options.'), 'extra_cxxflags': (None, 'Specify extra CXXFLAGS options.'), 'extra_f90flags': (None, 'Specify extra F90FLAGS options.'), 'extra_fcflags': (None, 'Specify extra FCFLAGS options.'), 'extra_fflags': (None, 'Specify extra FFLAGS options.'), 'i8': (False, 'Integers are 8 byte integers'), 'ieee': (False, 'Adhere to IEEE-754 rules'), 'loose': (False, 'Loose precision'), 'lowopt': (False, 'Low compiler optimizations'), 'noopt': (False, 'Disable compiler optimizations'), 'openmp': (False, 'Enable OpenMP'), 'opt': (False, 'High compiler optimizations'), 'optarch': (True, 'Enable architecture optimizations'), 'packed-linker-options': (False, 'Pack the linker options as comma separated list'), 'pic': (False, 'Use PIC'), 'precise': (False, 'High precision'), 'r8': (False, 'Real is 8 byte real'), 'rpath': (True, 'Use RPATH wrappers when --rpath is enabled in EasyBuild configuration'), 'shared': (False, 'Build shared library'), 'static': (False, 'Build static library'), 'strict': (False, 'Strict (highest) precision'), 'unroll': (False, 'Unroll loops'), 'vectorize': (None, 'Enable compiler auto-vectorization, default except for noopt and lowopt'), 'verbose': (False, 'Verbose output'), 'veryloose': (False, 'Very loose precision')}¶
-
COMPILER_UNIQUE_OPTION_MAP= None¶
-
COMPILER_UNIQUE_OPTS= None¶
-
LIB_MATH= None¶
-
LIB_MULTITHREAD= None¶
-
LIB_RUNTIME= None¶
-
LINKER_TOGGLE_START_STOP_GROUP= {'start': '--start-group', 'stop': '--end-group'}¶
-
LINKER_TOGGLE_STATIC_DYNAMIC= None¶
-
comp_family(prefix=None)¶ Return compiler family used in this toolchain. @prefix: Prefix for compiler (e.g. ‘CUDA_’).
-
set_options(options)¶ Process compiler toolchain options.
-
set_variables()¶ Set the variables
-
-
easybuild.tools.toolchain.compiler.mk_infix(prefix)¶ Create an infix based on the given prefix.