aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/extend/ENV/std.rb
AgeCommit message (Collapse)Author
2013-09-17Move CompilerSelector logic into build env setupMisty De Meo
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-03ENV: use cc accessorJack Nagel
2013-09-01Implement fails_with for non-Apple compilersMisty De Meo
This adds support for non-Apple GCC compilers in the fails_with code. A fails_with block for a non-Apple compiler looks like: fails_with :gcc => '4.8.1' do cause 'Foo' end Non-Apple compilers don't have build numbers, so compiler failures are based on version strings instead. Internally non-Apple compilers can be distinguished because they are passed around as strings instead of symbols. In addition, this alters the priority list for compilers, with the following changes: * Apple GCC 4.2 and LLVM-GCC swap positions, with GCC now taking priority. (Maybe LLVM-GCC should just go away.) * Non-Apple GCC compilers are ranked below GCC 4.2 but above LLVM-GCC and Apple GCC 4.0.
2013-09-01Experimental support for non-Apple GCCsMisty De Meo
2013-08-30ENV: use cflags setterJack Nagel
2013-08-30ENV: use cc accessorJack Nagel
2013-08-30ENV: add cc and cxx settersJack Nagel
2013-08-30Unify compiler selection logicMisty De Meo
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-30Add --cc= syntax for selecting compilersMisty De Meo
2013-08-28Allow building bottles with custom architecturesMisty De Meo
This allows overriding the "oldest CPU" behaviour - for instance, to build Intel bottles for a newer CPU than Core 2, to build a PPC bottle with or without Altivec on the same computer, etc.
2013-08-26Simplify conditionJack Nagel
2013-08-23Always pass -headerpad_max_install_names to the linkerJack Nagel
We use install_name_tool pretty liberally, so we need to take steps to ensure libraries and executables are always linked with this flag. Closes Homebrew/homebrew#20233. Fixes Homebrew/homebrew#17984. Fixes Homebrew/homebrew#22078.
2013-08-19Use ENV.append_pathJack Nagel
2013-08-19Use File::PATH_SEPARATOR globally instead of ':'Amos Wenger
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-19Remove ENV.expand_xcrunJack Nagel
This method is currently unused and after inspecting the git history, it appears it may never have been used at all.
2013-08-19Rename HomebrewEnvExtension to StdenvJack Nagel