Module: CompilerConstants Private

Included in:
CompilerSelector, SharedEnvExtension
Defined in:
compilers.rb

This module is part of a private API. This module may only be used in the Homebrew/brew repository. Third parties should avoid using this module if possible, as it may be removed or changed without warning.

Constant Summary collapse

GNU_GCC_VERSIONS =

This constant is part of a private API. This constant may only be used in the Homebrew/brew repository. Third parties should avoid using this constant if possible, as it may be removed or changed without warning.

GCC 7 - Ubuntu 18.04 (ESM ends 2028-04-01) GCC 8 - RHEL 8 (ELS ends 2032-05-31)

%w[7 8 9 10 11 12 13 14 15].freeze
GNU_GCC_REGEXP =

This constant is part of a private API. This constant may only be used in the Homebrew/brew repository. Third parties should avoid using this constant if possible, as it may be removed or changed without warning.

/^gcc-(#{GNU_GCC_VERSIONS.join("|")})$/
COMPILER_SYMBOL_MAP =

This constant is part of a private API. This constant may only be used in the Homebrew/brew repository. Third parties should avoid using this constant if possible, as it may be removed or changed without warning.

T.let({
  "gcc"        => :gcc,
  "clang"      => :clang,
  "llvm_clang" => :llvm_clang,
}.freeze, T::Hash[String, Symbol])
COMPILERS =

This constant is part of a private API. This constant may only be used in the Homebrew/brew repository. Third parties should avoid using this constant if possible, as it may be removed or changed without warning.

T.let((COMPILER_SYMBOL_MAP.values +
GNU_GCC_VERSIONS.map { |n| "gcc-#{n}" }).freeze, T::Array[T.any(String, Symbol)])