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

WIP: cmake-latest: Add formula for v3.31.0 #1208

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
235 changes: 235 additions & 0 deletions Library/Formula/cmake-latest.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,235 @@
class CmakeLatest < Formula
desc "Cross-platform make"
homepage "http://www.cmake.org/"
url "https://github.com/Kitware/CMake/releases/download/v3.31.0/cmake-3.31.0.tar.gz"
mirror "http://fresh-center.net/linux/misc/cmake-3.31.0.tar.gz"
mirror "http://fresh-center.net/linux/misc/legacy/cmake-3.31.0.tar.gz"
sha256 "300b71db6d69dcc1ab7c5aae61cbc1aa2778a3e00cbd918bc720203e311468c3"
license "BSD-3-Clause"

head "https://cmake.org/cmake.git"

bottle do
end

patch :p0, :DATA

conflicts_with "cmake"

option "without-docs", "Don't build man pages"
option "with-completion", "Install Bash completion (Has potential problems with system bash)"

depends_on "pkg-config" => :build
depends_on "bzip2"
depends_on "curl"
depends_on "expat"
depends_on "libarchive"
depends_on "libuv"
depends_on :python => :build if MacOS.version <= :snow_leopard && build.with?("docs")
depends_on "rhash"
depends_on "xz" => :build
depends_on "zlib"

# The `with-qt` GUI option was removed due to circular dependencies if
# CMake is built with Qt support and Qt is built with MySQL support as MySQL uses CMake.
# For the GUI application please instead use brew install caskroom/cask/cmake.

resource "sphinx_rtd_theme" do
url "https://files.pythonhosted.org/packages/35/b4/40faec6790d4b08a6ef878feddc6ad11c3872b75f52273f1418c39f67cd6/sphinx_rtd_theme-1.2.0.tar.gz"
sha256 "a0d8bd1a2ed52e0b338cbe19c4b2eef3c5e7a048769753dac6a9f059c7b641b8"
end

resource "snowballstemmer" do
url "https://files.pythonhosted.org/packages/a3/3d/d305c9112f35df6efb51e5acd0db7009b74d86f35580e033451b5994a0a9/snowballstemmer-2.1.0.tar.gz"
sha256 "e997baa4f2e9139951b6f4c631bad912dfd3c792467e2f03d7239464af90e914"
end

resource "six" do
url "https://files.pythonhosted.org/packages/71/39/171f1c67cd00715f190ba0b100d606d440a28c93c7714febeca8b79af85e/six-1.16.0.tar.gz"
sha256 "1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"
end

resource "pygments" do
url "https://files.pythonhosted.org/packages/cb/9f/27d4844ac5bf158a33900dbad7985951e2910397998e85712da03ce125f0/Pygments-2.5.2.tar.gz"
sha256 "98c8aa5a9f778fcd1026a17361ddaf7330d1b7c62ae97c3bb0ae73e0b9b6b0fe"
end

resource "docutils" do
url "https://files.pythonhosted.org/packages/4c/17/559b4d020f4b46e0287a2eddf2d8ebf76318fd3bd495f1625414b052fdc9/docutils-0.17.1.tar.gz"
sha256 "686577d2e4c32380bb50cbb22f575ed742d58168cee37e99117a854bcd88f125"
end

resource "pytz" do
url "https://files.pythonhosted.org/packages/5e/32/12032aa8c673ee16707a9b6cdda2b09c0089131f35af55d443b6a9c69c1d/pytz-2023.3.tar.gz"
sha256 "1d8ce29db189191fb55338ee6d0387d82ab59f3d00eac103412d64e0ebd0c588"
end

resource "babel" do
url "https://files.pythonhosted.org/packages/41/1b/5ed6e564b9ca54318df20ebe5d642ab25da4118df3c178247b8c4b26fa13/Babel-2.9.0.tar.gz"
sha256 "da031ab54472314f210b0adcff1588ee5d1d1d0ba4dbd07b94dba82bde791e05"
end

resource "markupsafe" do
url "https://files.pythonhosted.org/packages/b9/2e/64db92e53b86efccfaea71321f597fa2e1b2bd3853d8ce658568f7a13094/MarkupSafe-1.1.1.tar.gz"
sha256 "29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b"
end

resource "jinja2" do
url "https://files.pythonhosted.org/packages/4f/e7/65300e6b32e69768ded990494809106f87da1d436418d5f1367ed3966fd7/Jinja2-2.11.3.tar.gz"
sha256 "a6d58433de0ae800347cab1fa3043cebbabe8baa9d29e668f1c768cb87a333c6"
end

resource "alabaster" do
url "https://files.pythonhosted.org/packages/cc/b4/ed8dcb0d67d5cfb7f83c4d5463a7614cb1d078ad7ae890c9143edebbf072/alabaster-0.7.12.tar.gz"
sha256 "a661d72d58e6ea8a57f7a86e37d86716863ee5e92788398526d58b26a4e4dc02"
end

resource "typing" do
url "https://files.pythonhosted.org/packages/b0/1b/835d4431805939d2996f8772aca1d2313a57e8860fec0e48e8e7dfe3a477/typing-3.10.0.0.tar.gz"
sha256 "13b4ad211f54ddbf93e5901a9967b1e07720c1d1b78d596ac6a439641aa1b130"
end

resource "packaging" do
url "https://files.pythonhosted.org/packages/86/3c/bcd09ec5df7123abcf695009221a52f90438d877a2f1499453c6938f5728/packaging-20.9.tar.gz"
sha256 "5b327ac1320dc863dca72f4514ecc086f31186744b84a230374cc1fd776feae5"
end

resource "requests" do
url "https://files.pythonhosted.org/packages/60/f3/26ff3767f099b73e0efa138a9998da67890793bfa475d8278f84a30fec77/requests-2.27.1.tar.gz"
sha256 "68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61"
end

resource "imagesize" do
url "https://files.pythonhosted.org/packages/a7/84/62473fb57d61e31fef6e36d64a179c8781605429fd927b5dd608c997be31/imagesize-1.4.1.tar.gz"
sha256 "69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a"
end

resource "pyparsing" do
url "https://files.pythonhosted.org/packages/c1/47/dfc9c342c9842bbe0036c7f763d2d6686bcf5eb1808ba3e170afdb282210/pyparsing-2.4.7.tar.gz"
sha256 "c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1"
end

resource "idna" do
url "https://files.pythonhosted.org/packages/ea/b7/e0e3c1c467636186c39925827be42f16fee389dc404ac29e930e9136be70/idna-2.10.tar.gz"
sha256 "b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6"
end

resource "chardet" do
url "https://files.pythonhosted.org/packages/ee/2d/9cdc2b527e127b4c9db64b86647d567985940ac3698eeabc7ffaccb4ea61/chardet-4.0.0.tar.gz"
sha256 "0d6f53a15db4120f2b08c94f11e7d93d2c911ee118b6b30a04ec3ee8310179fa"
end

resource "certifi" do
url "https://files.pythonhosted.org/packages/b8/e2/a3a86a67c3fc8249ed305fc7b7d290ebe5e4d46ad45573884761ef4dea7b/certifi-2020.4.5.1.tar.gz"
sha256 "51fcb31174be6e6664c5f69e3e1691a2d72a1a12e90f872cbdb1567eb47b6519"
end

resource "urllib" do
url "https://files.pythonhosted.org/packages/21/79/6372d8c0d0641b4072889f3ff84f279b738cd8595b64c8e0496d4e848122/urllib3-1.26.15.tar.gz"
sha256 "8a388717b9476f934a21484e8c8e61875ab60644d29b9b39e11e4b9dc1c6b305"
end

resource "sphinx" do
url "https://files.pythonhosted.org/packages/95/74/5cef400220b2f22a4c85540b9ba20234525571b8b851be8a9ac219326a11/Sphinx-1.8.6.tar.gz"
sha256 "e096b1b369dbb0fcb95a31ba8c9e1ae98c588e601f08eada032248e1696de4b1"
end

resource "sphinxcontrib-websupport" do
url "https://files.pythonhosted.org/packages/e8/3d/b33240484f128c4fcbf7bb04837a9b93f8259d3fbcb8e521c7c6267a0da9/sphinxcontrib-websupport-1.1.2.tar.gz"
sha256 "1501befb0fdf1d1c29a800fdbf4ef5dc5369377300ddbdd16d2cd40e54c6eefc"
end

def install
# Expect unsetenv() to return a value
# error: void value not ignored as it ought to be
ENV.append_to_cflags "-D__DARWIN_UNIX03" if MacOS.version == :tiger

if build.with? "docs"
ENV.prepend_create_path "PYTHONPATH", buildpath/"sphinx/lib/python2.7/site-packages"
resources.each do |r|
r.stage do
system "python", *Language::Python.setup_install_args(buildpath/"sphinx")
end
end

# There is an existing issue around OS X & Python locale setting
# See http://bugs.python.org/issue18378#msg215215 for explanation
ENV["LC_ALL"] = "en_US.UTF-8"
end

args = %W[
--prefix=#{prefix}
--parallel=#{ENV.make_jobs}
--datadir=/share/cmake
--docdir=/share/doc/cmake
--mandir=/share/man
--bootstrap-system-libuv
--bootstrap-system-librhash
--no-system-jsoncpp
--system-curl
--system-expat
--system-zlib
--system-bzip2
--system-libarchive
--system-liblzma
--system-librhash
--system-libuv
]

if build.with? "docs"
args << "--sphinx-man" << "--sphinx-build=#{buildpath}/sphinx/bin/sphinx-build"
end

# gcc-4.2 does not find stdarg.h if the sysroot is set to an SDK
args << "--" << "-DCMAKE_OSX_SYSROOT=/"

system "./bootstrap", *args, "-DCMAKE_USE_SYSTEM_JSONCPP=OFF"
system "make"
system "make", "install"

if build.with? "completion"
cd "Auxiliary/bash-completion/" do
bash_completion.install "ctest", "cmake", "cpack"
end
end

(share/"emacs/site-lisp/cmake").install "Auxiliary/cmake-mode.el"
end

test do
(testpath/"CMakeLists.txt").write("find_package(Ruby)")
system "#{bin}/cmake", "."
end
end
__END__
--- Source/cmMachO.cxx.orig 2024-11-15 18:19:22.000000000 +0000
+++ Source/cmMachO.cxx 2024-11-15 18:23:12.000000000 +0000
@@ -373,6 +373,7 @@
if (Valid() && !this->Headers.empty()) {
for (const auto& header : this->Headers) {
const char* archName = "unknown";
+#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101500
#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 130000
if (__builtin_available(macOS 13.0, *)) {
archName = (header.CpuType & CPU_TYPE_ARM)
@@ -397,6 +398,7 @@
if (archInfo) {
archName = archInfo->name;
}
}
+#endif /* __MAC_OS_X_VERSION_MIN_REQUIRED >= 101500 */
archs.push_back(archName);
}
--- Source/cmSystemTools.cxx.orig 2024-11-15 18:18:38.000000000 +0000
+++ Source/cmSystemTools.cxx 2024-11-15 18:26:54.000000000 +0000
@@ -15,6 +15,10 @@
#if defined(__APPLE__)
// Restore Darwin APIs removed by _POSIX_C_SOURCE.
// NOLINTNEXTLINE(bugprone-reserved-identifier)
+#if __MAC_OS_X_VERSION_MIN_REQUIRED < 1050
+// _POSIX_C_SOURCE produces different results before 10.5
+# undef _POSIX_C_SOURCE
+#endif
# define _DARWIN_C_SOURCE
#endif