Merge pull request #5958 from xu-cheng/compiler
CompilerSelector: prefer the gcc version offered by the gcc formula
This commit is contained in:
commit
8ce7b1d39c
@ -102,11 +102,19 @@ class CompilerSelector
|
|||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
|
def gnu_gcc_versions
|
||||||
|
# prioritize gcc version provided by gcc formula.
|
||||||
|
v = Formulary.factory("gcc").version.to_s.slice(/\d/)
|
||||||
|
GNU_GCC_VERSIONS - [v] + [v] # move the version to the end of the list
|
||||||
|
rescue FormulaUnavailableError
|
||||||
|
GNU_GCC_VERSIONS
|
||||||
|
end
|
||||||
|
|
||||||
def find_compiler
|
def find_compiler
|
||||||
compilers.each do |compiler|
|
compilers.each do |compiler|
|
||||||
case compiler
|
case compiler
|
||||||
when :gnu
|
when :gnu
|
||||||
GNU_GCC_VERSIONS.reverse_each do |v|
|
gnu_gcc_versions.reverse_each do |v|
|
||||||
name = "gcc-#{v}"
|
name = "gcc-#{v}"
|
||||||
version = compiler_version(name)
|
version = compiler_version(name)
|
||||||
yield Compiler.new(name, version) unless version.null?
|
yield Compiler.new(name, version) unless version.null?
|
||||||
|
|||||||
@ -39,6 +39,12 @@ describe CompilerSelector do
|
|||||||
expect(subject.compiler).to eq("gcc-7")
|
expect(subject.compiler).to eq("gcc-7")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it "returns gcc-6 if gcc formula offers gcc-6" do
|
||||||
|
software_spec.fails_with(:clang)
|
||||||
|
allow(Formulary).to receive(:factory).with("gcc").and_return(double(version: "6.0"))
|
||||||
|
expect(subject.compiler).to eq("gcc-6")
|
||||||
|
end
|
||||||
|
|
||||||
it "raises an error when gcc or llvm is missing" do
|
it "raises an error when gcc or llvm is missing" do
|
||||||
software_spec.fails_with(:clang)
|
software_spec.fails_with(:clang)
|
||||||
software_spec.fails_with(gcc: "7")
|
software_spec.fails_with(gcc: "7")
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user