diff --git a/Library/Formula/cmake-latest.rb b/Library/Formula/cmake-latest.rb new file mode 100644 index 0000000000..6c2ca9eac8 --- /dev/null +++ b/Library/Formula/cmake-latest.rb @@ -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 +