1185 Commits

Author SHA1 Message Date
Jack Nagel
cf4080a9e0 Remove a RUBY_VERSION check, add a FIXME comment 2014-07-05 16:01:09 -05:00
Camillo Lugaresi
4001c6f8f1 stop Xcode tools from overriding deps when CLT is not installed
Closes Homebrew/homebrew#30641.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2014-07-03 16:25:59 -05:00
Jack Nagel
618b894c3e Replace ComparableSet with a Requirements collection 2014-07-03 14:50:57 -05:00
Jack Nagel
ef9f6ec4af Accept -s as shorthand for --build-from-source
This is experimental and will be reverted if it causes problems.

Closes Homebrew/homebrew#30392.
2014-07-02 23:15:22 -05:00
Jack Nagel
32d84377d5 Move constants so we don't have to load all of ENV to get them 2014-07-02 21:58:43 -05:00
Jack Nagel
177eee419a Replace find_all + each with grep 2014-07-01 21:39:15 -05:00
Jack Nagel
70f22fc31e Use canonical_name in the exception message 2014-06-26 22:59:45 -05:00
Jack Nagel
cfd02fd415 Use canonical_name when checking LinkedKegs and opt
name is the user-provided string and may be an alias, path, or URL.
2014-06-26 22:57:49 -05:00
Jack Nagel
401bc1c6c7 The rack variable is only used inside the block now 2014-06-26 22:36:49 -05:00
Jack Nagel
301f1b20e6 Remove a dead branch from ARGV.kegs
rack cannot be nil at the point where FormulaUnavailableError is raised,
so we don't need a branch to deal with that.
2014-06-26 22:28:00 -05:00
Jack Nagel
dce7b04ea5 Simplify NoSuchKegError condition
dirs will be empty if the rack directory does not exist.
2014-06-26 22:26:13 -05:00
Jack Nagel
20d544085a Use a more descriptive variable name 2014-06-22 18:43:14 -05:00
Jack Nagel
0fda322e0e Use Pathname#split 2014-06-22 18:38:30 -05:00
Shaun Jackman
42c20b0979 Move the compiler-selecting methods to ENV/shared
Closes Homebrew/homebrew#30210.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2014-06-22 18:30:15 -05:00
Jack Nagel
4d9d01893e Move deprecated Formula class methods to compat
These have all been moved to Formulary.
2014-06-22 15:03:17 -05:00
Jack Nagel
445dd80e44 Remove ARGV.filter_for_dependencies 2014-06-20 21:32:36 -05:00
Jack Nagel
10fda9e9b9 Decouple spec selection from ARGV 2014-06-20 21:32:36 -05:00
Jack Nagel
c73baa39cb Add explicit mkpath to Pathname#write_env_script 2014-06-17 21:51:45 -05:00
Jack Nagel
5cbc5437f5 Add explicit mkpath to Pathname#write_jar_script 2014-06-17 21:51:45 -05:00
Jack Nagel
d96f15e324 Add explicit mkpath to Pathname#write_exec_script 2014-06-17 21:51:45 -05:00
Jack Nagel
b2c42fc63c Make signature of Pathname#write compatible with Ruby 2.1+ 2014-06-17 12:14:51 -05:00
Jack Nagel
96195295a3 Deprecate Pathname#cp and Pathname#chmod_R
As far as I can tell these methods have only ever been used in the test
suite.

Since Formula includes FileUtils, it is generally simpler (and in the
case of cp, more readable) to use the FileUtils methods directly.

Closes Homebrew/homebrew#30081.
2014-06-12 09:00:58 -05:00
Jack Nagel
faaa622820 Deprecate Pathname#/ with non-string/non-pathname arguments
Ruby 2.2 will define Pathname#/ as a simple alias of Pathname#+.
In practice, this means that it will raise a TypeError unless the
argument responds to to_path or to_str.

Currently we blindly convert the argument to a string using to_s, so
deprecate this in the interest of matching the upstream behavior. In the
future we can replace this with

  alias_method :/, :+ unless method_defined?(:/)

Closes Homebrew/homebrew#30079.
2014-06-12 09:00:51 -05:00
Jack Nagel
93d8e71641 Use Digest#file if it's available 2014-06-11 12:05:19 -05:00
Jack Nagel
191e588212 Stop caching Superenv.bin
It is not a hotspot and causes an ordering dependency in the tests.
2014-06-10 17:50:33 -05:00
Jack Nagel
7f10aa3b6e Fix visibility of FileUtils extension methods 2014-06-09 21:37:52 -05:00
Jack Nagel
9e57da83a2 Stop exposing mktemp as a public method on formula objects 2014-06-09 21:36:36 -05:00
Jack Nagel
e3f082c294 Stop joining symbols to pathnames
Ruby 2.2's native Pathname#/ accepts only string-like objects.
2014-06-09 14:57:21 -05:00
Jack Nagel
fb3f95923b Just access the ivar directly 2014-06-08 20:04:16 -05:00
Jack Nagel
d27dc1d02f Work around encoding issue in Pathname#inspect on Ruby 2.0
Pathname#inspect on Ruby 2.0 throws away the encoding of the object's
underlying string and returns a string tagged as ASCII-8BIT.

If you simply write

  puts Pathname.new("some string with non-ascii bytes").inspect

no error will be raised, because the implementation of Pathname#inspect
does not call into Object#inspect.

However, if you wrap that pathname object in an array first, then

  puts [Pathname.new("some string with non-ascii bytes")].inspect

will raise Encoding::CompatibilityError: "inspected result must be ASCII
only or use the same encoding with default external".

Raising an error in this codepath is new in Ruby 2.0, and this specific
bug is fixed in Ruby 2.1. I've opened a bug upstream:
  https://bugs.ruby-lang.org/issues/9915

Fixes Homebrew/homebrew#29947.
2014-06-08 20:00:52 -05:00
Jack Nagel
6d0f0cb195 metafiles: simplify #copy? further 2014-06-07 23:40:28 -05:00
Jack Nagel
07257f2f48 Simplify Pathname#install_metafiles 2014-06-07 21:15:56 -05:00
Jack Nagel
fcacb25cd5 Eliminate FORMULA_META_FILES constant 2014-06-07 21:15:56 -05:00
Jack Nagel
6e616b29c5 Use a || b 2014-06-03 09:43:27 -05:00
Shaun Jackman
bd682d5519 Treat HOMEBREW_CC the same as --cc
Closes Homebrew/homebrew#29762.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2014-06-03 09:43:27 -05:00
Shaun Jackman
6e56009217 HOMEBREW_CC: Remove COMPILER_ALIASES
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2014-06-03 09:43:21 -05:00
Jack Nagel
a023f10310 Use Pathname.glob when we want pathname objects 2014-05-31 23:53:51 -05:00
Jack Nagel
c90247aa44 Place X11 ahead of OpenGL when X11 is active
Fixes Homebrew/homebrew#29651.
2014-05-28 09:23:36 -05:00
Adam Vandenberg
2c61e3c02a --help and --version only apply as first argument
This fixes external commands that provide their own
help and version subcommands.

Closes Homebrew/homebrew#26755.
2014-05-27 21:03:05 -07:00
Jack Nagel
6eb220d78f Share code for sanitizing ENV between both build environments 2014-05-26 14:10:24 -05:00
Jack Nagel
d69be7f619 Add ENV.m64 to superenv 2014-05-22 09:18:34 -05:00
Jack Nagel
d61615890f Fix ENV.m32 under superenv 2014-05-22 09:18:34 -05:00
Jack Nagel
b894d6e246 Set sysroot for non-clang compilers on 10.9
Although the correct sysroot is built into Apple's tools on 10.9, we
need to continue setting it for custom compilers.
2014-05-19 14:41:03 -05:00
Jack Nagel
613292e3ce Reorganize superenv include and library path setup
I found the dual use of CMAKE_*_PATH variables to make it difficult to
reason about this code. Now a separate set of variables are used to
communicate with the cc wrapper, and less work is performed in the
wrapper itself.

We no longer pass the SDK include path as a -isystem directory on
Xcode-only setups. Doing so is redundant with `--sysroot` and has other
side effects, namely changing the include path search order, which can
break compilation of some software (e.g. qemu).

On Xcode-only 10.9, we can additionally omit `--sysroot`, as the correct
paths are built into the tools.

A new variable, HOMEBREW_SYSROOT, is used to this information to the
wrapper. It will be unset on Xcode-only 10.9. HOMEBREW_SDKROOT will
continue to be set, as it is used for other things besides setting the
include search path.
2014-05-19 14:41:02 -05:00
Jack Nagel
f6fda5651b Remove deprecated --use-{gcc,llvm,clang}
Closes Homebrew/homebrew#29380.
2014-05-19 10:37:45 -05:00
Jack Nagel
16c073a153 Remove hardcoded reference to ENV 2014-05-18 14:41:49 -05:00
Jack Nagel
930cf4c768 Add accessor for HOMEBREW_CC 2014-05-18 14:34:31 -05:00
Jack Nagel
ff9bbe941b ENV.cc= and ENV.cxx= are private 2014-05-18 14:34:31 -05:00
Jack Nagel
9e8d419070 Use a case statement 2014-05-18 14:23:45 -05:00
Jack Nagel
858da0063d Allow disabling arch flag filtering
Closes Homebrew/homebrew#17352.
2014-05-14 00:00:59 -05:00