Skip to content

Commit

Permalink
pyside2@5.15.11 setup new pyside2 formula
Browse files Browse the repository at this point in the history
  • Loading branch information
ipatch committed Nov 25, 2023
1 parent 1702d80 commit be33501
Showing 1 changed file with 87 additions and 0 deletions.
87 changes: 87 additions & 0 deletions Formula/pyside2@5.15.11.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
class Pyside2AT51511 < Formula

Check warning on line 1 in Formula/pyside2@5.15.11.rb

View workflow job for this annotation

GitHub Actions / test-bot (macos-13)

No bottle built for pyside2@5.15.11!

pyside2@5.15.11 has unbottled dependencies, so a bottle will not be built.

Check warning on line 1 in Formula/pyside2@5.15.11.rb

View workflow job for this annotation

GitHub Actions / test-bot (macos-12)

No bottle built for pyside2@5.15.11!

pyside2@5.15.11 has unbottled dependencies, so a bottle will not be built.
desc "Python bindings for Qt5 and greater"
homepage "https://code.qt.io/cgit/pyside/pyside-setup.git/tree/README.pyside2.md?h=5.15.2"
url "https://download.qt.io/official_releases/QtForPython/pyside2/PySide2-5.15.11-src/pyside-setup-opensource-src-5.15.11.tar.xz"
sha256 "da567cd3b7854d27a0b4afe3e89de8b2f98b7a6d57393be56f1fc13f770faf29"
license all_of: ["GFDL-1.3-only", "GPL-2.0-only", "GPL-3.0-only", "LGPL-2.1-only", "LGPL-3.0-only"]

livecheck do
url "https://download.qt.io/official_releases/QtForPython/pyside2/"
regex(%r{href=.*?PySide2[._-]v?(\d+(?:\.\d+)+)-src/}i)
end

keg_only :versioned_formula

depends_on "cmake" => :build
depends_on "freecad/freecad/shiboken2@5.15.5"
depends_on "llvm@15" # Upstream issue ref: https://bugreports.qt.io/browse/PYSIDE-2268
depends_on "python@3.10"
depends_on "qt@5"
depends_on "sphinx-doc"

uses_from_macos "libxml2"
uses_from_macos "libxslt"

on_linux do
depends_on "libxcb"
depends_on "mesa"
end

fails_with gcc: "5"

# Don't copy qt@5 tools.
patch do
url "https://src.fedoraproject.org/rpms/python-pyside2/raw/009100c67a63972e4c5252576af1894fec2e8855/f/pyside2-tools-obsolete.patch"
sha256 "ede69549176b7b083f2825f328ca68bd99ebf8f42d245908abd320093bac60c9"
end

def python3
"python3.10"
end

# NOTE: ipatch >= qt@5.15.3 tarballs require a c++17 compiler
def install
rpaths = if OS.mac?
pyside2_module = prefix/Language::Python.site_packages(python3)/"PySide2"
[rpath, rpath(source: pyside2_module)]
else
# Add missing include dirs on Linux.
# upstream issue: https://bugreports.qt.io/browse/PYSIDE-1684
extra_include_dirs = [Formula["mesa"].opt_include, Formula["libxcb"].opt_include]
inreplace "sources/pyside2/cmake/Macros/PySideModules.cmake",
"--include-paths=${shiboken_include_dirs}",
"--include-paths=${shiboken_include_dirs}:#{extra_include_dirs.join(":")}"

# Add rpath to qt@5 because it is keg-only.
[lib, Formula["qt@5"].opt_lib]
end

# Avoid shim reference.
inreplace "sources/shiboken2/ApiExtractor/CMakeLists.txt", "${CMAKE_CXX_COMPILER}", ENV.cxx

# This is a workaround for current problems with Shiboken2
# ENV["HOMEBREW_INCLUDE_PATHS"] = ENV["HOMEBREW_INCLUDE_PATHS"].sub(Formula["qt@5"].include, "")

ENV.append_path "CMAKE_PREFIX_PATH", Formula["qt@5"].opt_lib
system "cmake", "-S", ".", "-B", "build",
"-DPYTHON_EXECUTABLE=#{which(python3)}",
"-DCMAKE_INSTALL_RPATH=#{rpaths.join(";")}",
"-DFORCE_LIMITED_API=yes",
*std_cmake_args
system "cmake", "--build", "build"
system "cmake", "--install", "build"
end

def caveats
<<-EOS
if qt6, qt@6 is linked then this formula will fail to build from source
this formula requires manually linking after install
EOS
end

test do
Language::Python.each_python(build) do |python, _version|
system python, "-c", "from PySide2 import QtCore"
end
end
end

0 comments on commit be33501

Please sign in to comment.