mirror of
https://github.com/LizardByte/Sunshine.git
synced 2024-12-28 00:18:14 +00:00
9abba8048a
* build(deps): bump LizardByte/homebrew-release-action Bumps the lizardbyte-actions group with 1 update: [LizardByte/homebrew-release-action](https://github.com/lizardbyte/homebrew-release-action). Updates `LizardByte/homebrew-release-action` from 2024.1105.185654 to 2024.1115.14934 - [Release notes](https://github.com/lizardbyte/homebrew-release-action/releases) - [Commits](https://github.com/lizardbyte/homebrew-release-action/compare/v2024.1105.185654...v2024.1115.14934) --- updated-dependencies: - dependency-name: LizardByte/homebrew-release-action dependency-type: direct:production update-type: version-update:semver-minor dependency-group: lizardbyte-actions ... Signed-off-by: dependabot[bot] <support@github.com> * docs(homebrew): update brew installation steps --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: ReenigneArcher <42013603+ReenigneArcher@users.noreply.github.com>
163 lines
4.5 KiB
Ruby
163 lines
4.5 KiB
Ruby
require "language/node"
|
|
|
|
class @PROJECT_NAME@ < Formula
|
|
# conflicts_with "sunshine", because: "sunshine and sunshine-beta cannot be installed at the same time"
|
|
desc "@PROJECT_DESCRIPTION@"
|
|
homepage "@PROJECT_HOMEPAGE_URL@"
|
|
url "@GITHUB_CLONE_URL@",
|
|
tag: "@GITHUB_TAG@"
|
|
version "@FORMULA_VERSION@"
|
|
license all_of: ["GPL-3.0-only"]
|
|
head "@GITHUB_CLONE_URL@", branch: "@GITHUB_DEFAULT_BRANCH@"
|
|
|
|
# https://docs.brew.sh/Brew-Livecheck#githublatest-strategy-block
|
|
livecheck do
|
|
url :stable
|
|
regex(/^v?(\d+\.\d+\.\d+)$/i)
|
|
strategy :github_latest do |json, regex|
|
|
match = json["tag_name"]&.match(regex)
|
|
next if match.blank?
|
|
|
|
match[1]
|
|
end
|
|
end
|
|
|
|
option "with-docs", "Enable docs"
|
|
option "with-static-boost", "Enable static link of Boost libraries"
|
|
option "without-static-boost", "Disable static link of Boost libraries" # default option
|
|
|
|
depends_on "cmake" => :build
|
|
depends_on "doxygen" => :build
|
|
depends_on "graphviz" => :build
|
|
depends_on "node" => :build
|
|
depends_on "pkg-config" => :build
|
|
depends_on "curl"
|
|
depends_on "miniupnpc"
|
|
depends_on "openssl"
|
|
depends_on "opus"
|
|
depends_on "boost" => :recommended
|
|
depends_on "icu4c" => :recommended
|
|
|
|
on_linux do
|
|
depends_on "avahi"
|
|
depends_on "libcap"
|
|
depends_on "libdrm"
|
|
depends_on "libnotify"
|
|
depends_on "libva"
|
|
depends_on "libx11"
|
|
depends_on "libxcb"
|
|
depends_on "libxcursor"
|
|
depends_on "libxfixes"
|
|
depends_on "libxi"
|
|
depends_on "libxinerama"
|
|
depends_on "libxrandr"
|
|
depends_on "libxtst"
|
|
depends_on "numactl"
|
|
depends_on "pulseaudio"
|
|
depends_on "systemd"
|
|
depends_on "wayland"
|
|
end
|
|
|
|
def install
|
|
ENV["BRANCH"] = "@GITHUB_BRANCH@"
|
|
ENV["BUILD_VERSION"] = "@BUILD_VERSION@"
|
|
ENV["COMMIT"] = "@GITHUB_COMMIT@"
|
|
|
|
args = %W[
|
|
-DBUILD_WERROR=ON
|
|
-DCMAKE_INSTALL_PREFIX=#{prefix}
|
|
-DHOMEBREW_ALLOW_FETCHCONTENT=ON
|
|
-DOPENSSL_ROOT_DIR=#{Formula["openssl"].opt_prefix}
|
|
-DSUNSHINE_ASSETS_DIR=sunshine/assets
|
|
-DSUNSHINE_BUILD_HOMEBREW=ON
|
|
-DSUNSHINE_ENABLE_TRAY=OFF
|
|
-DSUNSHINE_PUBLISHER_NAME='LizardByte'
|
|
-DSUNSHINE_PUBLISHER_WEBSITE='https://app.lizardbyte.dev'
|
|
-DSUNSHINE_PUBLISHER_ISSUE_URL='https://app.lizardbyte.dev/support'
|
|
]
|
|
|
|
if build.with? "docs"
|
|
ohai "Building docs: enabled"
|
|
args << "-DBUILD_DOCS=ON"
|
|
else
|
|
ohai "Building docs: disabled"
|
|
args << "-DBUILD_DOCS=OFF"
|
|
end
|
|
|
|
if build.without? "static-boost"
|
|
args << "-DBOOST_USE_STATIC=OFF"
|
|
ohai "Disabled statically linking Boost libraries"
|
|
else
|
|
args << "-DBOOST_USE_STATIC=ON"
|
|
ohai "Enabled statically linking Boost libraries"
|
|
|
|
unless Formula["icu4c"].any_version_installed?
|
|
odie <<~EOS
|
|
icu4c must be installed to link against static Boost libraries,
|
|
either install icu4c or use brew install sunshine --with-static-boost instead
|
|
EOS
|
|
end
|
|
ENV.append "CXXFLAGS", "-I#{Formula["icu4c"].opt_include}"
|
|
icu4c_lib_path = Formula["icu4c"].opt_lib.to_s
|
|
ENV.append "LDFLAGS", "-L#{icu4c_lib_path}"
|
|
ENV["LIBRARY_PATH"] = icu4c_lib_path
|
|
ohai "Linking against ICU libraries at: #{icu4c_lib_path}"
|
|
end
|
|
|
|
args << "-DCUDA_FAIL_ON_MISSING=OFF" if OS.linux?
|
|
|
|
system "cmake", "-S", ".", "-B", "build", *std_cmake_args, *args
|
|
|
|
cd "build" do
|
|
system "make"
|
|
system "make", "install"
|
|
|
|
bin.install "tests/test_sunshine"
|
|
end
|
|
|
|
# codesign the binary on intel macs
|
|
system "codesign", "-s", "-", "--force", "--deep", bin/"sunshine" if OS.mac? && Hardware::CPU.intel?
|
|
|
|
bin.install "src_assets/linux/misc/postinst" if OS.linux?
|
|
end
|
|
|
|
service do
|
|
run [opt_bin/"sunshine", "~/.config/sunshine/sunshine.conf"]
|
|
end
|
|
|
|
def caveats
|
|
caveats_message = <<~EOS
|
|
Thanks for installing @PROJECT_NAME@!
|
|
|
|
To get started, review the documentation at:
|
|
https://docs.lizardbyte.dev/projects/sunshine/en/latest/
|
|
EOS
|
|
|
|
if OS.linux?
|
|
caveats_message += <<~EOS
|
|
ATTENTION: To complete installation, you must run the following command:
|
|
`sudo #{bin}/postinst`
|
|
EOS
|
|
end
|
|
|
|
if OS.mac?
|
|
caveats_message += <<~EOS
|
|
Sunshine can only access microphones on macOS due to system limitations.
|
|
To stream system audio use "Soundflower" or "BlackHole".
|
|
|
|
Gamepads are not currently supported on macOS.
|
|
EOS
|
|
end
|
|
|
|
caveats_message
|
|
end
|
|
|
|
test do
|
|
# test that the binary runs at all
|
|
system bin/"sunshine", "--version"
|
|
|
|
# run the test suite
|
|
system bin/"test_sunshine", "--gtest_color=yes"
|
|
end
|
|
end
|