Skip to content

Latest commit

 

History

History
56 lines (38 loc) · 2 KB

development.md

File metadata and controls

56 lines (38 loc) · 2 KB

Development Notes

TLDR use build-debug.sh, run-debug.sh, and run-tests.sh scripts.

Build Dependencies

The dependencies that are required to build AeroSpace:

brew install xcodegen gsed asciidoctor

Debug Build

Entry point scripts

  • build-debug.sh - Build debug build to .debug dir
  • run-tests.sh - Run tests
  • run-debug.sh - Run debug build of AeroSpace.app
  • run-cli.sh - Run aerospace in CLI. Arguments are forwarded to aerospace binary
  • build-docs.sh - Build the site and manpages to .site and .man dirs respectively
  • generate.sh - Regenerate generated project files. AeroSpace.xcodeproj is generated, and some of the source files (the source files have Generated suffix in their names)

Important

Debug build uses ~/.aerospace-debug.toml instead of ~/.aerospace.toml

Release Build

Signing

  1. Change DEVELOPMENT_TEAM in project.yml
  2. Run generate.sh script

The easiest way to know your DEVELOPMENT_TEAM id is to set the Team in Xcode GUI and see the git diff

Entry point scripts

After you setup signing, you can build the release build:

  • build-release.sh - Build release build to .release dir
  • install-release.sh - Build and install release build to /Applications/AeroSpace.app and ~/.bin/aerospace

Caveats

  • Signing the binary is required to preserve accessibility permission across rebuilds. run-debug.sh runs the AeroSpace.app on behalf of the terminal app, that's why it's not affected by this caveat.
  • You can use script/clean-project.sh to clean the project when something goes wrong.

Tips

  • Use built-in "Accessibility Inspector.app" to inspect accessibility properties of windows
  • Use BetterDisplay 2 to emulate several monitors