class documentation

A helper class for CCompilerOpt containing all utilities that related to the fundamental compiler's functions.

Method __init__ Undocumented
Method cc_normalize_flags Remove the conflicts that caused due gathering implied features flags.
Method cc_test_cexpr Same as the above but supports compile-time expressions.
Method cc_test_flags Returns True if the compiler supports 'flags'.
Instance Variable cc_flags Dictionary containing the initialized flags of _Config.conf_cc_flags
Instance Variable cc_has_debug True if the compiler has debug flags
Instance Variable cc_has_native True if the compiler has native flags
Instance Variable cc_is_cached Undocumented
Instance Variable cc_is_clang True if the compiler is Clang
Instance Variable cc_is_gcc True if the compiler is GNU or if the compiler is unknown
Instance Variable cc_is_icc True if the compiler is Intel compiler (unix like)
Instance Variable cc_is_iccw True if the compiler is Intel compiler (msvc like)
Instance Variable cc_is_nocc True if the compiler isn't supported directly, Note: that cause a fail-back to gcc
Instance Variable cc_march The target architecture name, or "unknown" if the architecture isn't supported
Instance Variable cc_name The compiler name, or "unknown" if the compiler isn't supported
Instance Variable cc_noopt True if the compiler has definition 'DISABLE_OPT*', or 'cc_on_noarch' is True
Instance Variable cc_on_aarch64 True when the target architecture is 64-bit Armv8-a+
Instance Variable cc_on_armhf True when the target architecture is 32-bit ARMv7+
Instance Variable cc_on_noarch True when the target architecture is unknown or not supported
Instance Variable cc_on_ppc64 True when the target architecture is 64-bit big-endian powerpc
Instance Variable cc_on_ppc64le True when the target architecture is 64-bit litle-endian powerpc
Instance Variable cc_on_s390x True when the target architecture is IBM/ZARCH on linux
Instance Variable cc_on_x64 True when the target architecture is 64-bit x86
Instance Variable cc_on_x86 True when the target architecture is 32-bit x86
Method _cc_normalize_unix Undocumented
Method _cc_normalize_win Undocumented
Class Variable _cc_normalize_arch_ver Undocumented
Class Variable _cc_normalize_unix_frgx Undocumented
Class Variable _cc_normalize_unix_krgx Undocumented
Class Variable _cc_normalize_unix_mrgx Undocumented
Class Variable _cc_normalize_win_frgx Undocumented
Class Variable _cc_normalize_win_mrgx Undocumented
def __init__(self): (source)

Undocumented

def cc_normalize_flags(self, flags): (source)

Remove the conflicts that caused due gathering implied features flags.

Examples

>>> self.cc_normalize_flags(['-march=armv8.2-a+fp16', '-march=armv8.2-a+dotprod'])
['armv8.2-a+fp16+dotprod']
>>> self.cc_normalize_flags(
    ['-msse', '-msse2', '-msse3', '-mssse3', '-msse4.1', '-msse4.2', '-mavx', '-march=core-avx2']
)
['-march=core-avx2']
Parameters
flagsUndocumented
'flags' listflags should be sorted from the lowest to the highest interest.
compiler flagsflags should be sorted from the lowest to the highest interest.
Returns
list, filtered from any conflicts.
@_Cache.me
def cc_test_cexpr(self, cexpr, flags=[]): (source)

Same as the above but supports compile-time expressions.

@_Cache.me
def cc_test_flags(self, flags): (source)

Returns True if the compiler supports 'flags'.

cc_flags: dict = (source)

Dictionary containing the initialized flags of _Config.conf_cc_flags

cc_has_debug: bool = (source)

True if the compiler has debug flags

cc_has_native: bool = (source)

True if the compiler has native flags

cc_is_cached: bool = (source)

Undocumented

cc_is_clang: bool = (source)

True if the compiler is Clang

cc_is_gcc: bool = (source)

True if the compiler is GNU or if the compiler is unknown

cc_is_icc: bool = (source)

True if the compiler is Intel compiler (unix like)

cc_is_iccw: bool = (source)

True if the compiler is Intel compiler (msvc like)

cc_is_nocc: bool = (source)

True if the compiler isn't supported directly, Note: that cause a fail-back to gcc

cc_march: str = (source)

The target architecture name, or "unknown" if the architecture isn't supported

The compiler name, or "unknown" if the compiler isn't supported

cc_noopt: bool = (source)

True if the compiler has definition 'DISABLE_OPT*', or 'cc_on_noarch' is True

cc_on_aarch64: bool = (source)

True when the target architecture is 64-bit Armv8-a+

cc_on_armhf: bool = (source)

True when the target architecture is 32-bit ARMv7+

cc_on_noarch: bool = (source)

True when the target architecture is unknown or not supported

cc_on_ppc64: bool = (source)

True when the target architecture is 64-bit big-endian powerpc

cc_on_ppc64le: bool = (source)

True when the target architecture is 64-bit litle-endian powerpc

cc_on_s390x: bool = (source)

True when the target architecture is IBM/ZARCH on linux

cc_on_x64: bool = (source)

True when the target architecture is 64-bit x86

cc_on_x86: bool = (source)

True when the target architecture is 32-bit x86

def _cc_normalize_unix(self, flags): (source)

Undocumented

def _cc_normalize_win(self, flags): (source)

Undocumented

_cc_normalize_arch_ver = (source)

Undocumented

_cc_normalize_unix_frgx = (source)

Undocumented

_cc_normalize_unix_krgx = (source)

Undocumented

_cc_normalize_unix_mrgx = (source)

Undocumented

_cc_normalize_win_frgx = (source)

Undocumented

_cc_normalize_win_mrgx = (source)

Undocumented