Skip to content

Commit

Permalink
[email protected] using py310
Browse files Browse the repository at this point in the history
  • Loading branch information
ipatch committed Dec 24, 2023
1 parent 8c0438a commit 3ac62a5
Showing 1 changed file with 86 additions and 0 deletions.
86 changes: 86 additions & 0 deletions Formula/[email protected]_py310.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
class Shiboken2AT51511Py310 < Formula
desc "GeneratorRunner plugin that outputs C++ code for CPython extensions"
homepage "https://code.qt.io/cgit/pyside/pyside-setup.git/tree/README.shiboken2-generator.md?h=5.15.2"
license all_of: ["GFDL-1.3-only", "GPL-2.0-only", "GPL-3.0-only", "LGPL-2.1-only", "LGPL-3.0-only"]
revision 4
head "https://github.com/qt/qt5.git", branch: "dev", shallow: false

stable do
url "https://download.qt.io/official_releases/QtForPython/shiboken2/PySide2-5.15.11-src/pyside-setup-opensource-src-5.15.11.zip"
sha256 "9bf6d4f3192697b8d5d7e92219c8d964dcfbfe96a438916bb1cdb78265584081"
end

keg_only :versioned_formula

depends_on "cmake" => :build
depends_on "[email protected]" => :build
depends_on "llvm@15"
depends_on "numpy"
depends_on "qt@5"
depends_on "sphinx-doc"

uses_from_macos "libxml2"
uses_from_macos "libxslt"

def python3
"python3.10"
end

def install
rpaths = if OS.mac?
shiboken2_module = prefix/Language::Python.site_packages(python3)/"shiboken2"
[rpath, rpath(source: shiboken2_module)]
end

ENV.append_path "CMAKE_PREFIX_PATH", Formula["qt@5"].opt_lib
ENV.append_path "CMAKE_PREFIX_PATH", Formula["llvm@15"].opt_lib

cmake_args = std_cmake_args

# NOTE: ipatch build will fail if using `python3` cmake requires major+minor ie. `python3.10`
python_executable = Formula["[email protected]"].opt_bin/"python3.10"
python_lib = Formula["[email protected]"].opt_lib/"libpython3.10.dylib"

cmake_args << "-DPYTHON_EXECUTABLE=#{python_executable}"
cmake_args << "-DPYTHON_LIBRARY=#{python_lib}"

system "cmake", "-S", "./sources/shiboken2", "-B", "build",
"-DCMAKE_INSTALL_RPATH=#{rpaths.join(";")}",
"-DFORCE_LIMITED_API=no",
"-DLLVM_CONFIG=#{Formula["llvm@15"].opt_bin}/llvm-config",
"-DCMAKE_LIBRARY_PATH=#{Formula["llvm@15"].opt_lib}",
"-L",
*cmake_args

system "cmake", "--build", "build"
system "cmake", "--install", "build"
end

def post_install
# explicitly set python version
python_version = "3.10"

# Unlink the existing .pth file to avoid reinstall issues
pth_file = lib/"python#{python_version}/site-packages/shiboken2.pth"
pth_file.unlink if pth_file.exist?

ohai "Creating .pth file for shiboken2 module"
# write the .pth file to the site-packages directory
(lib/"python#{python_version}/site-packages/shiboken2.pth").write <<~EOS
import site; site.addsitedir('#{lib}/python#{python_version}/site-packages/')
EOS
end

def caveats
<<-EOS
this formula is keg-only
got a build failure on macos catalina,
see: https://github.com/FreeCAD/homebrew-freecad/pull/449#issuecomment-1846177315
EOS
end

test do
# NOTE: using `#{bin}` allows for testing formula installed in custom prefix
system "#{bin}/shiboken2", "--version"
end
end

0 comments on commit 3ac62a5

Please sign in to comment.