101 Commits

Author SHA1 Message Date
Jack Nagel
20d544085a Use a more descriptive variable name 2014-06-22 18:43:14 -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
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
6eb220d78f Share code for sanitizing ENV between both build environments 2014-05-26 14:10:24 -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
Mike McQuaid
8c426e8207 ENV/shared: fix gcc versions edge case. 2014-05-06 22:17:59 +01:00
Mike McQuaid
c92a16e2ce shared: refactor gcc_version_formula.
Avoid throwing unnecessary exceptions by checking for paths existing and
creating formulae as late as possible. Additionally use instance
variables for some caching.
2014-05-06 16:45:50 +01:00
Mike McQuaid
1b0647d747 shared: don't use Formula.factory unnecessarily.
Instead check if the path exists by using opt.
2014-05-06 16:45:50 +01:00
Mike McQuaid
116c2b06a8 ENV/shared: handle untapped e.g. gcc48 formula.
In this case we need to handle the throwing on an exception when
attempting to initialize the gcc48 Formula object.

This initialization should be unnecessary if the core GCC is already
installed and rescued if not.
2014-04-30 12:38:22 +01:00
Mike McQuaid
2c3b04fb26 ENV/shared: use homebrew/versions GCC if installed
Closes Homebrew/homebrew#28820.
2014-04-29 08:51:56 +01:00
Mike McQuaid
55d277c335 Support core GCC formula as a GCC compiler.
It is activated by the same mechanism as the Homebrew/versions compilers
which now check if the GCC formula uses the same, correct version.

References Homebrew/homebrew#28418.
2014-04-23 08:10:48 +01:00
Mike McQuaid
593702c70b shared: don't warn about non-Apple compilers now. 2014-04-23 08:10:48 +01:00
Jack Nagel
dc3691eccd Clean up some concatentation inside interpolation 2014-04-04 22:02:48 -05:00
Camillo Lugaresi
cbd14fde1e Correctly find Homebrew-installed fortran
Fixes Homebrew/homebrew#26338.
Closes Homebrew/homebrew#26352.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2014-02-02 14:13:53 -05:00
Mike McQuaid
996c7bd7d1 ENV: add method to prepend and create a PATH. 2014-01-04 13:19:20 +00:00
Jack Nagel
65a00e213b Make CompilerSelectionError an InstallationError
Fixes Homebrew/homebrew#19962.
2013-12-03 22:16:37 -06:00
Jack Nagel
ea992b02e5 Fix typo 2013-12-02 01:16:50 -06:00
Jack Nagel
98f25e4407 Yielded value is not used 2013-12-02 00:16:48 -06:00
Jack Nagel
0581532fdc Require Formula before using it 2013-11-27 17:30:21 -06:00
Misty De Meo
45e7f0ccb0 Allow older non-Apple GCCs to build things 2013-10-16 18:43:56 -07:00
Misty De Meo
48dde74503 Move ld64 into SharedEnvExtension
Superenv is being tested on Xcode 3.1.4, so this needs to be supported
in both ENVs, not just stdenv.
2013-09-28 17:22:27 -07:00
Misty De Meo
497ccdc41c ENV: Ensure @compiler is set
If @compiler isn't set/checked by ENV.compiler and the ENV.clang/etc.
methods, ENV.compiler may return unexpected results after fails_with
picks a fallback compiler.

See Homebrew/homebrew#22674.
2013-09-19 23:36:15 -07:00
Misty De Meo
1ae81f0bf7 Move CompilerSelector logic into build env setup
This moves the CompilerSelector fails_with logic into the build
environment setup, making the compiler selection available before
performing actions that depends on knowing what the compiler is, e.g.
setting up PATH.

ENV.setup_build_environment now optionally takes a Formula argument
to provide the information necessary to do the fails_with, and the new
ENV.validate_cc! extracts the fails_with logic from Build.install.
2013-09-17 12:43:38 -07:00
Jack Nagel
7e079fc37d ENV: convert values to strings in cc setters 2013-09-03 10:07:53 -05:00
Misty De Meo
96b50e013e Remove HOMEBREW_CC warning from ENV.compiler
ENV.compiler is called outside setting up the build environment, where
values unsupported for user input might have been specified - for
example, GNU GCC executables.
2013-09-01 14:42:37 -07:00
Misty De Meo
71268b7f16 Provide reusable GNU GCC constants in ENV 2013-09-01 13:19:13 -07:00
Misty De Meo
11f8b2f49c Experimental support for non-Apple GCCs 2013-09-01 13:19:12 -07:00
Jack Nagel
6b79a4e714 ENV: only set fortran flags in one place 2013-08-30 19:07:10 -05:00
Jack Nagel
8828187b4c ENV: use fc accessor 2013-08-30 19:00:19 -05:00
Jack Nagel
405ba3df68 Fix conditional in ENV.fortran 2013-08-30 18:59:58 -05:00
Jack Nagel
aa79e21ba4 ENV: add cc and cxx setters 2013-08-30 18:42:12 -05:00
Jack Nagel
4bee5db66d Simplify handling custom FCFLAGS 2013-08-30 16:42:04 -05:00
Jack Nagel
43bd5d44c2 Remove PATH hack from ENV.fortran 2013-08-30 16:30:34 -05:00
Misty De Meo
7e1af4b7d5 Unify compiler selection logic
This unifies the logic for selecting a compiler between superenv and
stdenv. A variation of superenv's `determine_cc`, which now returns a
symbol, has been moved into the shared ENV extension. Stdenv uses the
result of this directly (as it's always used symbols), while superenv
translates that back into a compiler string.

This also has the effect of disabling HOMEBREW_USE_(gcc|llvm|clang) in
stdenv, which have already been marked as deprecated for some time, and
enables the HOMEBREW_CC= environment variable syntax from superenv in
stdenv.
2013-08-30 07:52:13 -07:00
Misty De Meo
221bb2419f Add --cc= syntax for selecting compilers 2013-08-30 07:52:12 -07:00
Jack Nagel
fb50be432a Remove default values from ENV.{cc,cxx}
Closes Homebrew/homebrew#22138.
2013-08-29 19:22:36 -05:00
Jack Nagel
9e8638ea35 Only perform coercion to string once in ENV.{append,prepend} 2013-08-26 15:03:37 -05:00
Jack Nagel
4a3dac82ef Use ENV.prepend_path 2013-08-19 17:21:13 -05:00
Jack Nagel
b672b44cf9 Add ENV.append_path 2013-08-19 17:21:13 -05:00
Jack Nagel
b8bac2ba53 Fix typo 2013-08-19 14:07:14 -05:00
Amos Wenger
52ace99f14 Use File::PATH_SEPARATOR globally instead of ':'
On Unix, the path separator is ':', whereas on Windows,
it is ';'. This is the first of a series of patch to bring
macbrew's and winbrew's codebases closer together.

The main places the magic constant ':' was being used were:
  - the $PATH environment variable
  - CMAKE-related environment variables
  - pkg-config related environment variables

Closes Homebrew/homebrew#21921.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2013-08-19 13:35:44 -05:00
Jack Nagel
e0574b854e More robust implementation of ENV.with_build_environment 2013-08-19 12:32:59 -05:00