quackle

Quackle crossword game artificial intelligence and analysis tool

120
33
C++

Requirements:

  1. Xcode 9 or above (for the compiler and build tools)
  2. A version of Qt 5 or 6. Homebrew, vcpkg, macports, or whatever you prefer. For
    example, in HomeBrew…
    brew install qt

Note that Qt6 imposes greater Xcode and macOS requirements. Qt6 uses std::filesystem, which
is only implemented with a 10.15 or later minimum macOS deployment target.

Building Quackle:

Follow the cmake instructions in README.md. You can use the Xcode generator
to make an Xcode project if you wish.

Creating the DMG:

  • Set up Xcode with your Mac Developer account, and make sure you
    have a Developer ID Application signing certificate installed into
    your Keychain.
  • In the Xcode settings, set the deployment target to 10.9 (earlier versions
    don’t appear to work with C++11).
  • Create an Archive build using XCode.
  • From the Archive interface, click Validate… and validate for a Developer
    ID-signed Application. If you have a signing profile, this validation
    should work.
  • Click Export… and export as a Mac Application.
  • You now have an unsigned application which is missing Qt frameworks, but
    will work locally.
  • From the Qt4 distribution, run ‘macdeployqt Quackle.app’.
  • But, it turns out that the Frameworks installed by macdeployqt are partly
    broken and can’t be code-signed. So, remove the Frameworks directory, clone
    https://github.com/jfultz/MacQt4Frameworks.git
    and cp -R the entire Frameworks directory into Quackle.app/Contents.
  • Run ‘codesign -s --force --deep Quackle.app’ where
    is the SHA1 of your certificate (if you open it in Keychain and scroll all
    the way to the bottom, you’l see it…but you’ll have to strip the spaces).
  • Verify code-signing with
    spctl --assess --type execute --verbose Quackle.app
  • Package it up in a .dmg. I used the very nice package create-dmg off of
    Github with the following command-line:

create-dmg --app-drop-link 400 100 --icon Quackle.app 100 100
–window-size 500 250 --background DmgBackground.png Quackle.dmg Quackle.app