- scripts/fetch-argyll.sh: POSIX sh port of fetch-argyll.mjs; queries
the Gitea release API for the *_macOS_universal_bin.tgz asset,
extracts Argyll_V*/bin, chmod+x, strips quarantine xattr; honors
ARGYLL_SERVER_URL / ARGYLL_REPO / ARGYLL_RELEASE_TAG / GITEA_TOKEN.
Verified end-to-end: 51 universal tools from v3.5.0-ICCery1.8.
- BinaryResolver: settings argyll_binary_dir override (existence-gated)
→ bundled Argyll/<platform>/, macos-universal preferred when instlist
marker present, else macos-arm64/macos-x86_64; constructed path
returned even when absent (spawn surfaces process:error). Mock and
reference-gamut helpers.
- Vendored tracked resources: mocks/{chartread,colprof,profcheck}.mock
+ reference_gamuts/sRGB.gam from ICCery v1, copied as a folder
reference so the Argyll/ subtree structure survives into the bundle.
- Build phase rsyncs Vendor/Argyll/ → Contents/Resources/Argyll/.
- AppDelegate: killAll via terminateLater so children are signaled
before teardown (#147/#149).
- 6 resolver tests + fetch script smoke-verified against real release.
Generated with [Devin](https://devin.ai)
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
97 lines
2.6 KiB
YAML
97 lines
2.6 KiB
YAML
name: ICCery
|
|
options:
|
|
bundleIdPrefix: com.gronod
|
|
deploymentTarget:
|
|
macOS: "14.0"
|
|
groupSortPosition: top
|
|
|
|
packages:
|
|
ICCeryCore:
|
|
path: Packages/ICCeryCore
|
|
|
|
targets:
|
|
ICCery:
|
|
type: application
|
|
platform: macOS
|
|
deploymentTarget: "14.0"
|
|
sources:
|
|
- path: Sources/ICCery
|
|
- path: Resources
|
|
excludes:
|
|
- ICCery.entitlements
|
|
- Argyll
|
|
- path: Resources/Argyll
|
|
type: folder
|
|
dependencies:
|
|
- package: ICCeryCore
|
|
product: ICCeryCore
|
|
postBuildScripts:
|
|
- name: Copy Argyll sidecars
|
|
script: |
|
|
set -e
|
|
SRC="${SRCROOT}/Vendor/Argyll"
|
|
DEST="${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Argyll"
|
|
if [ -d "$SRC" ]; then
|
|
mkdir -p "$DEST"
|
|
rsync -a "$SRC/" "$DEST/"
|
|
else
|
|
echo "note: Vendor/Argyll absent — run scripts/fetch-argyll.sh"
|
|
fi
|
|
basedOnDependencyAnalysis: false
|
|
settings:
|
|
base:
|
|
PRODUCT_BUNDLE_IDENTIFIER: com.gronod.iccery2
|
|
PRODUCT_NAME: ICCery
|
|
PRODUCT_BUNDLE_PACKAGE_TYPE: APPL
|
|
GENERATE_INFOPLIST_FILE: YES
|
|
INFOPLIST_KEY_CFBundleDisplayName: ICCery
|
|
INFOPLIST_KEY_LSMinimumSystemVersion: "14.0"
|
|
INFOPLIST_KEY_NSPrincipalClass: NSApplication
|
|
INFOPLIST_KEY_NSHumanReadableCopyright: "Copyright © 2026 Gronod. AGPLv3."
|
|
MARKETING_VERSION: "2.0.0"
|
|
CURRENT_PROJECT_VERSION: "1"
|
|
ENABLE_HARDENED_RUNTIME: YES
|
|
CODE_SIGN_ENTITLEMENTS: Resources/ICCery.entitlements
|
|
CODE_SIGN_IDENTITY: "-"
|
|
CODE_SIGN_STYLE: Automatic
|
|
ENABLE_APP_SANDBOX: NO
|
|
ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon
|
|
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME: AccentColor
|
|
SWIFT_VERSION: "6.0"
|
|
SWIFT_STRICT_CONCURRENCY: complete
|
|
MACOSX_DEPLOYMENT_TARGET: "14.0"
|
|
ARCHS: "$(ARCHS_STANDARD)"
|
|
|
|
ICCeryCoreTests:
|
|
type: bundle.unit-test
|
|
platform: macOS
|
|
deploymentTarget: "14.0"
|
|
sources:
|
|
- path: Tests/ICCeryCoreTests
|
|
dependencies:
|
|
- package: ICCeryCore
|
|
product: ICCeryCore
|
|
- target: ICCery
|
|
settings:
|
|
base:
|
|
BUNDLE_LOADER: "$(TEST_HOST)"
|
|
TEST_HOST: "$(BUILT_PRODUCTS_DIR)/ICCery.app/Contents/MacOS/ICCery"
|
|
GENERATE_INFOPLIST_FILE: YES
|
|
CODE_SIGN_IDENTITY: "-"
|
|
SWIFT_VERSION: "6.0"
|
|
MACOSX_DEPLOYMENT_TARGET: "14.0"
|
|
|
|
schemes:
|
|
ICCery:
|
|
build:
|
|
targets:
|
|
ICCery: all
|
|
ICCeryCoreTests: [test]
|
|
run:
|
|
config: Debug
|
|
test:
|
|
config: Debug
|
|
gatherCoverageData: false
|
|
targets:
|
|
- ICCeryCoreTests
|