Class: BuildOptions Private

Inherits:
Object
  • Object
show all
Defined in:
Library/Homebrew/build_options.rb

Overview

This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.

Options for a formula build.

Instance Method Summary collapse

Instance Method Details

#any_args_or_options?Boolean

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

True if the build has any arguments or options specified.

Returns:

  • (Boolean)

93
94
95
# File 'Library/Homebrew/build_options.rb', line 93

def any_args_or_options?
  !@args.empty? || !@options.empty?
end

#bottle?Boolean

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

True if a Formula is being built as a bottle (i.e. binary package).

Returns:

  • (Boolean)

52
53
54
# File 'Library/Homebrew/build_options.rb', line 52

def bottle?
  include? "build-bottle"
end

#cxx11?Boolean

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

True if a Formula is being built in C++11 mode.

Returns:

  • (Boolean)

88
89
90
# File 'Library/Homebrew/build_options.rb', line 88

def cxx11?
  include?("c++11") && option_defined?("c++11")
end

#devel?Boolean

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

True if a Formula is being built with Formula.devel instead of Formula.stable.

args << "--some-beta" if build.devel?

Returns:

  • (Boolean)

69
70
71
# File 'Library/Homebrew/build_options.rb', line 69

def devel?
  include? "devel"
end

#head?Boolean

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

True if a Formula is being built with Formula.head instead of Formula.stable.

args << "--some-new-stuff" if build.head?
# If there are multiple conditional arguments use a block instead of lines.
 if build.head?
   args << "--i-want-pizza"
   args << "--and-a-cold-beer" if build.with? "cold-beer"
 end

Returns:

  • (Boolean)

63
64
65
# File 'Library/Homebrew/build_options.rb', line 63

def head?
  include? "HEAD"
end

#include?(name) ⇒ Boolean

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Deprecated.

True if a Formula is being built with a specific option (which isn't named with-* or without-*).

Returns:

  • (Boolean)

16
17
18
# File 'Library/Homebrew/build_options.rb', line 16

def include?(name)
  @args.include?("--#{name}")
end

#stable?Boolean

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

True if a Formula is being built with Formula.stable instead of Formula.devel or Formula.head. This is the default.

args << "--some-beta" if build.devel?

Returns:

  • (Boolean)

76
77
78
# File 'Library/Homebrew/build_options.rb', line 76

def stable?
  !(head? || devel?)
end

#universal?Boolean

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

True if a Formula is being built universally. e.g. on newer Intel Macs this means a combined x86_64/x86 binary/library.

args << "--universal-binary" if build.universal?

Returns:

  • (Boolean)

83
84
85
# File 'Library/Homebrew/build_options.rb', line 83

def universal?
  include?("universal") && option_defined?("universal")
end

#with?(val) ⇒ Boolean

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

True if a Formula is being built with a specific option.

args << "--i-want-spam" if build.with? "spam"

args << "--qt-gui" if build.with? "qt" # "--with-qt" ==> build.with? "qt"

# If a formula presents a user with a choice, but the choice must be fulfilled:
if build.with? "example2"
  args << "--with-example2"
else
  args << "--with-example1"
end

Returns:

  • (Boolean)

31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'Library/Homebrew/build_options.rb', line 31

def with?(val)
  option_names = val.respond_to?(:option_names) ? val.option_names : [val]

  option_names.any? do |name|
    if option_defined? "with-#{name}"
      include? "with-#{name}"
    elsif option_defined? "without-#{name}"
      !include? "without-#{name}"
    else
      false
    end
  end
end

#without?(val) ⇒ Boolean

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

True if a Formula is being built without a specific option.

args << "--no-spam-plz" if build.without? "spam"

Returns:

  • (Boolean)

47
48
49
# File 'Library/Homebrew/build_options.rb', line 47

def without?(val)
  !with?(val)
end