mac_app_path := ./dist/Buzz.app mac_zip_path := ./dist/Buzz-$$BUZZ_VERSION-mac.zip mac_dmg_path := ./dist/Buzz-$$BUZZ_VERSION-mac.dmg unix_zip_path := ./dist/Buzz-$$BUZZ_VERSION-unix.tar.gz windows_zip_path := ./dist/Buzz-$$BUZZ_VERSION-windows.tar.gz buzz: make clean pyinstaller --noconfirm Buzz.spec clean: rm -r dist/* || true test: pytest --cov --cov-fail-under=65 version: poetry version ${version} bundle_linux: make buzz tar -czf ${unix_zip_path} dist/Buzz bundle_windows: make buzz tar -czf ${windows_zip_path} dist/Buzz # MAC bundle_mac: make buzz bundle_mac_local: make buzz make codesign_all_mac make zip_mac make notarize_zip make staple_app_mac make dmg_mac staple_app_mac: xcrun stapler staple ${mac_app_path} codesign_all_mac: make codesign_mac path="./dist/Buzz.app" make codesign_mac path="./dist/Buzz.app/Contents/MacOS/Buzz" for i in $$(find dist/Buzz.app/Contents/Resources -name "*.dylib" -o -name "*.so" -type f); \ do \ make codesign_mac path="$$i"; \ done for i in $$(find dist/Buzz.app/Contents/Resources/torch/bin -name "*" -type f); \ do \ make codesign_mac path="$$i"; \ done make codesign_mac path="./dist/Buzz.app/Contents/MacOS/Buzz" make codesign_verify codesign_mac: codesign --deep --force --options=runtime --entitlements ./entitlements.plist --sign "$$BUZZ_CODESIGN_IDENTITY" --timestamp ${path} zip_mac: ditto -c -k --keepParent "${mac_app_path}" "${mac_zip_path}" # Prints all the Mac developer identities used for code signing print_identities_mac: security find-identity -p basic -v notarize_zip: xcrun notarytool submit ${mac_zip_path} --keychain-profile "$$BUZZ_KEYCHAIN_NOTARY_PROFILE" --wait dmg_mac: ditto -x -k "${mac_zip_path}" dist/dmg create-dmg \ --volname "Buzz" \ --volicon "dist/Buzz.app/Contents/Resources/icon-windowed.icns" \ --window-pos 200 120 \ --window-size 600 300 \ --icon-size 100 \ --icon "dist/Buzz.app/Contents/Resources/icon-windowed.icns" 175 120 \ --hide-extension "Buzz.app" \ --app-drop-link 425 120 \ --codesign "$$BUZZ_CODESIGN_IDENTITY" \ --notarize "$$BUZZ_KEYCHAIN_NOTARY_PROFILE" \ "${mac_dmg_path}" \ "dist/dmg/" # HELPERS # Get the build logs for a notary upload notarize_log: xcrun notarytool log ${id} --keychain-profile "$$BUZZ_KEYCHAIN_NOTARY_PROFILE" codesign_verify: codesign --verify --deep --strict --verbose=2 dist/Buzz.app