Add optional dependencies to Brewfile and improve CMake configuration

This commit updates the Brewfile to include additional optional dependencies such as Vulkan headers, RapidJSON, and various libraries for enhanced functionality. It also modifies CMake files to make the handling of optional components more user-friendly, allowing missing dependencies to disable features without causing build failures on macOS. Additionally, it refines the search paths for the Sparkle framework and adjusts the linking of the discord-rpc library based on the availability of RapidJSON.
This commit is contained in:
2026-01-22 14:19:33 +09:00
parent 81d5f57d13
commit a69024c0be
10 changed files with 175 additions and 9 deletions

45
Formula/qtsparkle-qt6.rb Normal file
View File

@@ -0,0 +1,45 @@
class QtsparkleQt6 < Formula
desc "Qt wrapper library for in-app updates (Qt 6 build)"
homepage "https://github.com/strawberrymusicplayer/qtsparkle"
url "https://github.com/strawberrymusicplayer/qtsparkle/archive/95ca3b77a79540d632b29e9a4df9aed30af5f901.tar.gz"
sha256 "945c9e96d2f6175b134a8ccfd6ec1acd268266d31969b5870d4037e8e5877834"
license "GPL-3.0-or-later"
depends_on "cmake" => :build
depends_on "ninja" => :build
depends_on "qt"
def install
args = std_cmake_args + %W[
-GNinja
-DBUILD_WITH_QT6=ON
-DBUILD_WITH_QT5=OFF
-DBUILD_SHARED_LIBS=ON
-DBUILD_STATIC_LIBS=OFF
]
system "cmake", "-S", ".", "-B", "build", *args
system "cmake", "--build", "build"
system "cmake", "--install", "build"
end
test do
# Strawberry expects: find_package(qtsparkle-qt6) and target qtsparkle-qt6::qtsparkle
(testpath/"CMakeLists.txt").write <<~CMAKE
cmake_minimum_required(VERSION 3.16)
project(qtsparkle_test LANGUAGES CXX)
find_package(qtsparkle-qt6 CONFIG REQUIRED)
add_library(dummy STATIC dummy.cpp)
target_link_libraries(dummy PRIVATE qtsparkle-qt6::qtsparkle)
CMAKE
(testpath/"dummy.cpp").write <<~CPP
int dummy() { return 0; }
CPP
system "cmake", "-S", ".", "-B", "build",
"-DCMAKE_PREFIX_PATH=#{opt_prefix}"
system "cmake", "--build", "build"
end
end

View File

@@ -0,0 +1,10 @@
# qtsparkle-qt6 (local Homebrew formula)
This installs Strawberrys Qt updater helper library as a CMake package:
- `find_package(qtsparkle-qt6 CONFIG REQUIRED)`
- target: `qtsparkle-qt6::qtsparkle`
Strawberry will pick it up automatically when present and enable the optional
**QtSparkle integration**.

View File

@@ -0,0 +1,19 @@
class SparkleFramework < Formula
desc "Sparkle.framework for macOS app updates (framework-only packaging)"
homepage "https://sparkle-project.org/"
url "https://github.com/sparkle-project/Sparkle/releases/download/2.8.1/Sparkle-2.8.1.tar.xz"
sha256 "5cddb7695674ef7704268f38eccaee80e3accbf19e61c1689efff5b6116d85be"
license "MIT"
depends_on :macos
def install
frameworks = prefix/"Frameworks"
frameworks.install "Sparkle.framework"
end
test do
assert_predicate prefix/"Frameworks/Sparkle.framework", :exist?
end
end

View File

@@ -0,0 +1,9 @@
# sparkle-framework (local Homebrew formula)
Installs the upstream `Sparkle.framework` into:
- `$(brew --prefix sparkle-framework)/Frameworks/Sparkle.framework`
This is used to enable Strawberrys optional **Sparkle integration** on macOS
(`find_library(SPARKLE Sparkle)` in the main `CMakeLists.txt`).