Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -404,7 +404,9 @@ jobs:
mkdir -p build/ext-tester
EXE=querya-ext-tester
if [ "${{ runner.os }}" = "Windows" ]; then EXE=querya-ext-tester.exe; fi
dart compile exe bin/querya_ext_tester.dart -o "build/ext-tester/$EXE"
# Pure Dart in a throwaway package: `dart compile exe` rejects the
# app's graph (build hooks in sqlite3 and objective_c).
scripts/ci/build_ext_tester.sh "build/ext-tester/$EXE"
MCP=querya-mcp
if [ "${{ runner.os }}" = "Windows" ]; then MCP=querya-mcp.exe; fi
mkdir -p build/mcp
Expand Down
5 changes: 5 additions & 0 deletions pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,11 @@ dependency_overrides:

flutter:
uses-material-design: true
config:
# The vendored refresh_rate plugin's Package.swift points its target at
# ../Classes, outside the package root, so Swift Package Manager (on by
# default since Flutter 3.47) cannot resolve it; macOS builds use CocoaPods.
enable-swift-package-manager: false
assets:
- assets/images/
- assets/themes/
34 changes: 34 additions & 0 deletions scripts/ci/build_ext_tester.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
#!/usr/bin/env bash
# Compiles querya-ext-tester to one static executable.
#
# scripts/ci/build_ext_tester.sh build/ext-tester/querya-ext-tester
#
# `dart compile exe` refuses a package graph that has build hooks (sqlite3,
# objective_c), and the app's graph has them. The tester itself is pure Dart
# (lib/core/extensions + `package:path`), so it is built from a throwaway
# package that is named like the app, holds only lib/core/extensions and
# depends on `path`. Run it from the repository root; the output path is
# relative to it.
set -euo pipefail

OUT="${1:?usage: build_ext_tester.sh <output-file, relative to the repo root>}"
WORK="build/ext-tester-src"

rm -rf "$WORK"
mkdir -p "$WORK/lib/core" "$WORK/bin" "$(dirname "$OUT")"
cp -R lib/core/extensions "$WORK/lib/core/extensions"
cp bin/querya_ext_tester.dart "$WORK/bin/querya_ext_tester.dart"

cat > "$WORK/pubspec.yaml" <<'YAML'
name: querya_desktop
description: Throwaway package that builds querya-ext-tester (see scripts/ci/build_ext_tester.sh).
publish_to: none
environment:
sdk: '>=3.5.0 <4.0.0'
dependencies:
path: ^1.9.0
YAML

# The work directory is two levels below the repository root.
(cd "$WORK" && dart pub get && dart compile exe bin/querya_ext_tester.dart -o "../../$OUT")
rm -rf "$WORK"
Loading