diff --git a/Library/Homebrew/dev-cmd/create.rb b/Library/Homebrew/dev-cmd/create.rb index 12644070fd363a1d27e98029bee851904f3aee24..42045c48cb61561e474abf3b80775f9fd06d797b 100644 --- a/Library/Homebrew/dev-cmd/create.rb +++ b/Library/Homebrew/dev-cmd/create.rb @@ -27,6 +27,8 @@ module Homebrew description: "Create a basic template for a Go build." switch "--meson", description: "Create a basic template for a Meson-style build." + switch "--perl", + description: "Create a basic template for a Perl build." switch "--python", description: "Create a basic template for a Python build." switch "--rust", @@ -46,7 +48,7 @@ module Homebrew switch :force switch :verbose switch :debug - conflicts "--autotools", "--cmake", "--go", "--meson", "--python", "--rust" + conflicts "--autotools", "--cmake", "--go", "--meson", "--perl", "--python", "--rust" end end @@ -81,6 +83,8 @@ module Homebrew :meson elsif args.go? :go + elsif args.perl? + :perl elsif args.python? :python elsif args.rust? diff --git a/Library/Homebrew/formula_creator.rb b/Library/Homebrew/formula_creator.rb index b87b280d108ffab6005693052da4158e3caf8d4f..168436d4ee23042dc652477f0837b19c570d7bde 100644 --- a/Library/Homebrew/formula_creator.rb +++ b/Library/Homebrew/formula_creator.rb @@ -108,6 +108,8 @@ module Homebrew <% elsif mode == :meson %> depends_on "meson" => :build depends_on "ninja" => :build + <% elsif mode == :perl %> + uses_from_macos "perl" <% elsif mode == :python %> depends_on "python" <% elsif mode == :rust %> @@ -116,8 +118,8 @@ module Homebrew # depends_on "cmake" => :build <% end %> - <% if mode == :python %> - # Additional Python dependency + <% if mode == :perl || mode == :python %> + # Additional dependency # resource "" do # url "" # sha256 "" @@ -142,6 +144,26 @@ module Homebrew system "ninja", "-v" system "ninja", "install", "-v" end + <% elsif mode == :perl %> + ENV.prepend_create_path "PERL5LIB", libexec/"lib/perl5" + ENV.prepend_path "PERL5LIB", libexec/"lib" + + # Stage additional dependency (Makefile.PL style) + # resource("").stage do + # system "perl", "Makefile.PL", "INSTALL_BASE=\#{libexec}" + # system "make" + # system "make", "install" + # end + + # Stage additional dependency (Build.PL style) + # resource("").stage do + # system "perl", "Build.PL", "--install_base", libexec + # system "./Build" + # system "./Build", "install" + # end + + bin.install name + bin.env_script_all_files(libexec/"bin", :PERL5LIB => ENV["PERL5LIB"]) <% elsif mode == :python %> virtualenv_install_with_resources <% elsif mode == :rust %> @@ -154,7 +176,7 @@ module Homebrew "--prefix=\#{prefix}" # system "cmake", ".", *std_cmake_args <% end %> - <% if mode == :autotools or mode == :cmake %> + <% if mode == :autotools || mode == :cmake %> system "make", "install" # if this fails, try separate make/make install steps <% end %> end diff --git a/docs/Manpage.md b/docs/Manpage.md index 14be219439f11e8ac4f696c0ac1d0937cd2504f6..e813202421cd010bdace17f7926c9e3af7f113ac 100644 --- a/docs/Manpage.md +++ b/docs/Manpage.md @@ -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. +* `--perl`: + Create a basic template for a Perl build. * `--python`: Create a basic template for a Python build. * `--rust`: diff --git a/manpages/brew.1 b/manpages/brew.1 index 8ba008578a2823de9847d0af8232b5338a2aa1cc..65c6a120133cd1d91fad7572f312e0e65ce79352 100644 --- a/manpages/brew.1 +++ b/manpages/brew.1 @@ -1028,6 +1028,10 @@ Create a basic template for a Go build\. Create a basic template for a Meson\-style build\. . .TP +\fB\-\-perl\fR +Create a basic template for a Perl build\. +. +.TP \fB\-\-python\fR Create a basic template for a Python build\. .