Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

create: add --python option #6485

Merged
merged 3 commits into from Sep 25, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
6 changes: 5 additions & 1 deletion Library/Homebrew/dev-cmd/create.rb
Expand Up @@ -27,6 +27,8 @@ def create_args
description: "Create a basic template for a Go build."
switch "--meson",
description: "Create a basic template for a Meson-style build."
switch "--python",
description: "Create a basic template for a Python build."
switch "--no-fetch",
description: "Homebrew will not download <URL> to the cache and will thus not add its SHA-256 "\
"to the formula for you, nor will it check the GitHub API for GitHub projects "\
Expand All @@ -42,7 +44,7 @@ def create_args
switch :force
switch :verbose
switch :debug
conflicts "--autotools", "--cmake", "--go", "--meson"
conflicts "--autotools", "--cmake", "--go", "--meson", "--python"
end
end

Expand Down Expand Up @@ -77,6 +79,8 @@ def create
:meson
elsif args.go?
:go
elsif args.python?
:python
end

if fc.name.nil? || fc.name.strip.empty?
Expand Down
18 changes: 17 additions & 1 deletion Library/Homebrew/formula_creator.rb
Expand Up @@ -85,6 +85,10 @@ def template
# https://rubydoc.brew.sh/Formula
# PLEASE REMOVE ALL GENERATED COMMENTS BEFORE SUBMITTING YOUR PULL REQUEST!
class #{Formulary.class_s(name)} < Formula
<% if mode == :python %>
include Language::Python::Virtualenv

<% end %>
desc "#{desc}"
homepage "#{homepage}"
<% if head? %>
Expand All @@ -104,10 +108,20 @@ class #{Formulary.class_s(name)} < Formula
<% elsif mode == :meson %>
depends_on "meson" => :build
depends_on "ninja" => :build
<% elsif mode == :python %>
depends_on "python"
<% elsif mode.nil? %>
# depends_on "cmake" => :build
<% end %>

<% if mode == :python %>
# Additional Python dependency
# resource "" do
# url ""
# sha256 ""
# end

<% end %>
def install
# ENV.deparallelize # if your formula fails when building in parallel
<% if mode == :cmake %>
Expand All @@ -126,6 +140,8 @@ def install
system "ninja", "-v"
system "ninja", "install", "-v"
end
<% elsif mode == :python %>
virtualenv_install_with_resources
<% else %>
# Remove unrecognized options if warned by configure
system "./configure", "--disable-debug",
Expand All @@ -134,7 +150,7 @@ def install
"--prefix=\#{prefix}"
# system "cmake", ".", *std_cmake_args
<% end %>
<% if mode != :meson and mode != :go %>
<% if mode == :autotools or mode == :cmake %>
system "make", "install" # if this fails, try separate make/make install steps
<% end %>
end
Expand Down
2 changes: 2 additions & 0 deletions docs/Manpage.md
Expand Up @@ -805,6 +805,8 @@ a simple example. For the complete API, see:
Create a basic template for a Go build.
* `--meson`:
Create a basic template for a Meson-style build.
* `--python`:
Create a basic template for a Python build.
* `--no-fetch`:
Homebrew will not download *`URL`* to the cache and will thus not add its SHA-256 to the formula for you, nor will it check the GitHub API for GitHub projects (to fill out its description and homepage).
* `--HEAD`:
Expand Down
4 changes: 4 additions & 0 deletions manpages/brew.1
Expand Up @@ -1028,6 +1028,10 @@ Create a basic template for a Go build\.
Create a basic template for a Meson\-style build\.
.
.TP
\fB\-\-python\fR
Create a basic template for a Python build\.
.
.TP
\fB\-\-no\-fetch\fR
Homebrew will not download \fIURL\fR to the cache and will thus not add its SHA\-256 to the formula for you, nor will it check the GitHub API for GitHub projects (to fill out its description and homepage)\.
.
Expand Down