aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/formula_support.rb
AgeCommit message (Collapse)Author
2013-06-09Separate formula conflicts from requirementsJack Nagel
Closes #20357.
2013-06-08Bottle DSL: allow checksums access.Mike McQuaid
2013-06-06Decouple bottle tags from MacOS.catJack Nagel
2013-06-06Use ivar accessorsJack Nagel
2013-06-04Extract attr_rw from Formula for reuseJack Nagel
Closes #20239.
2013-05-27Audit url/devel/head for redundant :usingAdam Vandenberg
2013-05-25Remove cat_without_underscores bottle methods.Mike McQuaid
2013-04-08Remove dead codeJack Nagel
This is initialized in #initialize.
2013-04-04Rename checksums.rb to match class nameJack Nagel
2013-03-28Suppress uninitialized instance variable warningsJack Nagel
2013-03-18Simplify SoftwareSpec checksum methodsJack Nagel
Reader methods for specific checksum types have been absent from the Formula class for some time, so there isn't any reason to expose them in SoftwareSpec, either. Thus, these methods now only act as setters, and #checksum should be used to access the constructed Checksum object.
2013-03-12Pass filename and lineno arguments to class_evalJack Nagel
2013-03-11Relocate bottles using install_name_tool.Mike McQuaid
This has two parts: 1. Bottles are temporarily relocated on bottling and tested if that is sufficient for them to contain no longer reference the prefix or cellar. If so, they are marked as relocatable. 2. On installation if bottles are marked as relocatable they will be relocated using install_name_tool to the current prefix and cellar. Closes #18374.
2013-03-09Remove redundant attr_readersJack Nagel
These are redefined later for use in the bottle DSL.
2013-03-09bottles: remove unused 'version' from DSL.Mike McQuaid
2013-03-01Add non-/usr/local bottles support.Mike McQuaid
Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
2013-03-01Add custom bottle URL support.Mike McQuaid
Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
2013-03-01Cleanup bottle DSL.Mike McQuaid
* Remove legacy url syntax. * Use revision instead of version. Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
2013-02-11Avoid nil in URL specsJack Nagel
2013-01-29Don't use underscores in (new) bottle filenames.Mike McQuaid
Closes #14270
2013-01-26Move BuildOptions to a separate fileJack Nagel
2013-01-26Refactor option handling internalsJack Nagel
Currently we handle options in several ways, and it is hard to remember what code needs an option string ("--foo"), what needs only the name ("foo") and what needs an Option object. Now that Option objects can act as strings and be converted to JSON, we can start using them instead of passing around strings between Formula objects, Tab objects, and ARGV-style arrays. The Options class is a special collection that can be queried for the inclusion of options in any form: '--foo', 'foo', or Option.new("foo").
2013-01-26BuildOptions: check has_option? for universal and 32-bitJack Nagel
2013-01-26BuildOptions: simplify setting descriptionJack Nagel
2013-01-26Options can be dumped as JSONJack Nagel
2013-01-26Options can be used interchangeably with StringsJack Nagel
We want to be able to use Option objects in place of strings and have this be transparent. Defining to_str means that methods like Kernel#system and Kernel#exec will be able to perform an implicit conversion.
2013-01-26Move option comparison into BuildOptionsJack Nagel
2012-10-15Test coverage for DownloadStrategyDetectorJack Nagel
While at it, make it use class methods instead; no reason to instantiate an object for this. Eventually there should be some functional tests for the individual strategies as well. Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-08-23Fix keg-only on pre-Mountain Lion formulae.Mike McQuaid
2012-08-20Simplify build options APIJack Nagel
Simplify access to the different forms of a formula's build options by making options into real objects rather than strings, and expose both the 'name' and 'flag' form.
2012-08-18Add support for custom version schemesJack Nagel
A version scheme is a class that inherits from Version and reimplements Version#<=>. This will allow formulae to specify a custom comparison method that will be used instead of the default, for cases where the default is insufficient.
2012-08-18SoftwareSpec: simplify conditionalJack Nagel
2012-08-18Add Version#detected_from_url?Jack Nagel
2012-08-18Replace version strings with Version objectsJack Nagel
2012-08-12Add :when_xquartz_installed as a keg-only reasonJack Nagel
Using :when_xquartz_installed will tell the keg-only machinery to activate if XQuartz is installed. Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-08-12Fix writing build options to install receiptJack Nagel
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-08-12BuildOptions: store option tuples in a SetJack Nagel
As options are stored in an object owned by the eigenclass of a formula, options defined in the Formula#options method can be added multiple times if the formula is instantiated multiple times. Store them in a set to prevent duplicates. Fixes #14133. Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-08-09New style is for option descriptions to not end with periodsAdam Vandenberg
2012-08-09options: remove duplicate functionAdam Vandenberg
2012-08-08Add `option` to the DSLAdam Vandenberg
Closes #9982
2012-07-05SoftwareSpec: initialize @mirrorsMisty De Meo
Since methods were being called on it without verifying its type.
2012-07-04Give SoftwareSpec an initializerJack Nagel
Tools like `brew create` need to create and manipulate SoftwareSpec objects. It is useful to be able to do this directly, rather than by proxy through the special methods that serve the main formula DSL. Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-07-04Teach download strategies to take a SoftwareSpecJack Nagel
Now that a URL, version, and the (for lack of a better term) "specs" associated with said URL (e.g. the VCS revision, or a download strategy hint) are neatly bundled up in a SoftwareSpec object, it doesn't make sense to pass them individually to download strategy constructors. These constructors now take only the formula name and a SoftwareSpec as parameters. This allows us to move mirror handling out out of Formula#fetch and into the download strategies themselves. While doing so, we adjust the mirror implementation a bit; mirrors now assume the same "specs" as their owner's URL. They are still only useable by the CurlDownloadStrategy, but this provides a basis for extending mirror support to other strategies. Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-07-04Refactor download strategy detectionJack Nagel
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-07-04Refactor checksummingJack Nagel
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-07-04Introduce new formula specsJack Nagel
2012-05-01Fix Ruby warnings.Mike McQuaid
Fixes #11966.
2012-04-01New fails_with infrastructureJack Nagel
- Formulae can now declare failures on any compiler. - FailsWithLLVM and associated formula elements have been moved to compat. Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-03-05Move llvm method to FailsWithLLVMAdam Vandenberg
2012-02-04Split some classes to formula_supportAdam Vandenberg
formula.rb is getting big, let's start splitting things out.