163 Commits

Author SHA1 Message Date
Jack Nagel
7adbb1ccb9 Single character options should not be used in a formula 2014-08-28 23:54:00 -05:00
Jack Nagel
023f02b90a Make fails_with available in spec blocks
Closes Homebrew/homebrew#31706.
2014-08-19 17:14:02 -05:00
Jack Nagel
268cd143be Replace Options.coerce with an alternate constructor 2014-08-13 11:09:57 -05:00
Jack Nagel
c5a888fb3a Always pass an Options instance to the BuildOptions constructor 2014-08-13 11:09:57 -05:00
Mike McQuaid
9f14262d92 Revert "Always pass an Options instance to the BuildOptions constructor"
This reverts commit e143bcef259ca76b2124e6e73bd9bdf872418723.

Closes Homebrew/homebrew#31557.
Closes Homebrew/homebrew#31559.
Closes Homebrew/homebrew#31561.
Closes Homebrew/homebrew#31562.
2014-08-13 08:46:17 +01:00
Mike McQuaid
a61c3615d2 Revert "Replace Options.coerce with an alternate constructor"
This reverts commit 8d2ef974a3a87bf4207f71ccb8a7b4776e16a016.
2014-08-13 08:45:06 +01:00
Jack Nagel
25395c6de6 Replace Options.coerce with an alternate constructor 2014-08-12 23:55:28 -05:00
Jack Nagel
ecaf1592a0 Always pass an Options instance to the BuildOptions constructor 2014-08-12 20:09:35 -05:00
Jack Nagel
d122ae8eea Handle legacy options in the method_added hook
We only need to process the legacy options at load time, not each time
the class is instantiated, and only when there is an options method
defined.
2014-08-10 21:45:23 -05:00
Jack Nagel
0c51cf1245 Use predefined options for universal, cxx11, and 32-bit options
:universal and :cxx11 are now handled directly, so we don't need to
always convert symbols to strings in this method. Symbols should be
reserved for future use.
2014-08-07 10:45:32 -05:00
Jack Nagel
efd63447d8 Move management of options collection to the spec object 2014-08-07 10:45:32 -05:00
Jack Nagel
acc1c35f35 Raise ArgumentError for argument errors 2014-08-07 00:48:13 -05:00
Jack Nagel
f4ae1c9e1b Hide the options data structure better 2014-07-31 19:59:09 -05:00
Jack Nagel
abdff27cd7 Make options available on the spec objects 2014-07-31 19:37:39 -05:00
Jack Nagel
bc937f56e7 Rename resource? to resource_defined? 2014-07-30 18:56:37 -05:00
Jack Nagel
a55e196f5f Simplify internal representation of patches
- remove support for IO objects, since we no longer access ::DATA
   directly
 - since we don't need to support IO objects, use a separate class for
   string patches and stop wrapping strings in StringIO ojects
2014-07-29 16:22:06 -05:00
Jack Nagel
c3a5b1152e Stop exposing the downloader as an attribute 2014-07-22 19:14:30 -05:00
Jack Nagel
d99379bc63 Hide the downloader implementation from the installer 2014-07-22 19:14:30 -05:00
Jack Nagel
6f02314cba Add a factory method that accepts a formula object 2014-07-18 15:15:12 -05:00
Jack Nagel
49a97c280a Ask the filename object for the prefix 2014-07-18 15:15:12 -05:00
Jack Nagel
1cc3747094 Move bottle URL construction to the bottle object 2014-07-18 15:15:11 -05:00
Jack Nagel
a87d2108ea Move bottle filename construction to a class 2014-07-18 15:14:57 -05:00
Jack Nagel
44fcb24606 Spell out "formula" in parameter name 2014-07-17 20:46:39 -05:00
Jack Nagel
33eed80ccc Rename fetch_bottle_for to fetch_checksum_for 2014-07-16 14:52:18 -05:00
Jack Nagel
68326805ae Implement []= on BottleCollector 2014-07-15 21:55:14 -05:00
Jack Nagel
33cdff99ba Make some constant strings into actual constants
We only need one copy of each of these strings, not ~7500.
2014-05-27 21:16:15 -05:00
Jack Nagel
7d3215c9f4 Extract tag and checksum selection from DSL method 2014-04-01 16:03:08 -05:00
Jack Nagel
7552669719 Remove now unnecessary branching from bottle DSL methods 2014-04-01 16:03:07 -05:00
Jack Nagel
f1601f6d8a Stop jumping through hoops to get at the collector object 2014-04-01 16:03:07 -05:00
Jack Nagel
45bdeadd94 Set bottle download strategy directly
We know what strategy we want, so going through DownloadStrategyDetector
is wasted work. Now we can remove those patterns from the detector and
have two fewer branches each time through.
2014-03-18 21:28:33 -05:00
Jack Nagel
4e48560701 Detect build-time deps from resource downloads 2014-03-14 23:46:20 -05:00
Jack Nagel
665b14c4a4 Enable new patch implementation with compatibility layer 2014-03-13 21:35:41 -05:00
Jack Nagel
bc6e4a1894 New patch implementation and DSL
This commit introduces a new patch implementation that supports
checksums and caching.

Patches are declared in blocks:

  patch do
    url ...
    sha1 ...
  end

A strip level of -p1 is assumed. It can be overridden using a symbol
argument:

  patch :p0 do
    url ...
    sha1 ...
  end

Patches can be declared in stable, devel, and head blocks. This form is
preferred over using conditionals.

  stable do
    # ...

    patch do
      url ...
      sha1 ...
    end
  end

Embedded (__END__) patches are declared like so:

  patch :DATA
  patch :p0, :DATA

Patches can also be embedded by passing a string. This makes it possible
to provide multiple embedded patches while making only some of them
conditional.

  patch :p0, "..."
2014-03-13 21:35:41 -05:00
Jack Nagel
7dcb54a963 Set bottle name so brew fetch --retry works 2014-03-13 10:01:01 -05:00
Mike McQuaid
35093b7a37 Revert "software_spec: set a name for bottles."
This reverts commit 7cdcd13aa08ed91a73837b73dc185ad9147f7130.
2014-03-13 13:13:06 +00:00
Mike McQuaid
5d11b5e7a5 software_spec: set a name for bottles.
Avoids errors on `brew fetch --retry` with bottles.
2014-03-13 11:22:33 +00:00
Jack Nagel
32ab18c189 Wrap cellar compatibility check in a method 2014-03-10 14:56:02 -05:00
Jack Nagel
7da459874f Make bottle implementation more generic 2014-03-10 14:56:02 -05:00
Jack Nagel
7e8c693218 Consolidate bottle defaults and remove a method 2014-03-05 10:24:33 -06:00
Jack Nagel
4928b4e02c Set owner ivar in SoftwareSpec 2014-02-27 14:50:22 -06:00
Jack Nagel
9d3b9edb4d Remove download_strategy from SoftwareSpec 2014-02-22 20:17:04 -05:00
Jack Nagel
fb350bad0f Remove downloader from Formula 2014-02-21 00:41:07 -05:00
Jack Nagel
5e0a8668fb Silence more warnings 2013-12-09 15:15:53 -06:00
Misty De Meo
a9823bc518 SoftwareSpec: compact array that may contain nil 2013-12-05 23:09:52 -08:00
Misty De Meo
e2af1cbeeb Use BottleCollector in Bottle SoftwareSpec 2013-12-05 18:24:51 -08:00
Jack Nagel
85f424b270 SoftwareSpec: set resource version when missing
Closes Homebrew/homebrew#24695.
2013-11-26 20:35:28 -06:00
Mike McQuaid
42c9ecd665 Bottle: handle legacy bottle OS tags.
Otherwise :mountainlion, :snowleopard in the history for CMake breaks 
bottle_filenames from versions for new CMake bottles.
2013-10-28 10:50:02 +00:00
Xiyue Deng
f2132c47bd C++11 support.
* Add options and ENV method to specify building in C++11 mode.
  - Set C++ compiler flags to enable C++11 mode.
  - To add options to support C++11 mode, a formula can now use

      option :cxx11

    to provide "--c++11" option, and detect and enable C++11 support in
    install method using

      ENV.cxx11 if build.cxx11?

Closes Homebrew/homebrew#22453.
2013-10-26 22:17:04 -07:00
Jack Nagel
c5289f2503 Infer dependencies from download strategies and URLs
Closes Homebrew/homebrew#20849.
Closes Homebrew/homebrew#22871.
2013-09-28 16:37:05 -05:00
Jack Nagel
cb32f76f27 SoftwareSpec: remove dead code 2013-09-27 21:29:37 -05:00