Merge pull request #1411 from xu-cheng/homebrew-formula

Let homebrew handle external resources download
This commit is contained in:
John Szakmeister
2014-11-07 08:50:13 -05:00
2 changed files with 34 additions and 2 deletions

View File

@@ -9,9 +9,34 @@ class Neovim < Formula
depends_on "automake" => :build depends_on "automake" => :build
depends_on "autoconf" => :build depends_on "autoconf" => :build
resource "libuv" do
url "https://github.com/joyent/libuv/archive/v0.11.28.tar.gz"
sha1 "3b70b65467ee693228b8b8385665a52690d74092"
end
resource "msgpack" do
url "https://github.com/msgpack/msgpack-c/archive/ecf4b09acd29746829b6a02939db91dfdec635b4.tar.gz"
sha1 "c160ff99f20d9d0a25bea0a57f4452f1c9bde370"
end
resource "luajit" do
url "http://luajit.org/download/LuaJIT-2.0.3.tar.gz"
sha1 "2db39e7d1264918c2266b0436c313fbd12da4ceb"
end
resource "luarocks" do
url "https://github.com/keplerproject/luarocks/archive/0587afbb5fe8ceb2f2eea16f486bd6183bf02f29.tar.gz"
sha1 "61a894fd5d61987bf7e7f9c3e0c5de16ba4b68c4"
end
def install def install
ENV["GIT_DIR"] = cached_download/".git" if build.head? ENV["GIT_DIR"] = cached_download/".git" if build.head?
ENV.deparallelize ENV.deparallelize
resources.each do |r|
r.stage(target=buildpath/".deps/build/src/#{r.name}")
end
system "make", "CMAKE_BUILD_TYPE=RelWithDebInfo", "CMAKE_EXTRA_FLAGS=\"-DCMAKE_INSTALL_PREFIX:PATH=#{prefix}\"", "install" system "make", "CMAKE_BUILD_TYPE=RelWithDebInfo", "CMAKE_EXTRA_FLAGS=\"-DCMAKE_INSTALL_PREFIX:PATH=#{prefix}\"", "install"
end end
end end

View File

@@ -18,6 +18,15 @@ if(NOT DEFINED TARGET)
message(FATAL_ERROR "TARGET must be defined.") message(FATAL_ERROR "TARGET must be defined.")
endif() endif()
set(SRC_DIR ${PREFIX}/src/${TARGET})
# Check whether the source has been downloaded. If true, skip it.
# Useful for external downloads like homebrew.
if(EXISTS "${SRC_DIR}" AND IS_DIRECTORY "${SRC_DIR}")
message(STATUS "${SRC_DIR} is found, skipping download and extraction. ")
return()
endif()
# Taken from ExternalProject_Add. Let's hope we can drop this one day when # Taken from ExternalProject_Add. Let's hope we can drop this one day when
# ExternalProject_Add allows you to disable SHOW_PROGRESS on the file download. # ExternalProject_Add allows you to disable SHOW_PROGRESS on the file download.
if(TIMEOUT) if(TIMEOUT)
@@ -71,8 +80,6 @@ endif()
message(STATUS "downloading... done") message(STATUS "downloading... done")
set(SRC_DIR ${PREFIX}/src/${TARGET})
# Slurped from a generated extract-TARGET.cmake file. # Slurped from a generated extract-TARGET.cmake file.
message(STATUS "extracting... message(STATUS "extracting...
src='${file}' src='${file}'