Skip to content

BlocklyPropClient.macos.spec Creation Details

Parallax Git Administrator edited this page Mar 9, 2017 · 3 revisions

The BlocklyPropClient.macos.spec is the build specification file for Mac OS. This file contains Python executable source generated automatically by the pyi-makespec command and later amended to include features not expressible via the pyi-makespec command-line options.

This spec file is meant to be executed by the PyInstaller application to generate the proper Mac App Bundle format which includes an auto-generated Info.plist bundle description file and an icon file as well as the proper Python resources (executables and libraries).

At the time of this writing, here is the complete BlocklyPropClient.macos.spec file to use during Building and Packaging.

To regenerate a specification file for Mac OS:

  • Navigate to the project
    • $ cd ~/PythonProjects/BlocklyPropClient
  • Activate the Virtual Python environment for BlocklyPropClient
    • $ source VPython/bin/activate
  • Generate a new BlocklyPropClient.spec file
    • (VPython)$ pyi-makespec --windowed --icon BlocklyPropClient.icns --osx-bundle-identifier com.ParallaxInc.BlocklyPropClient --noupx BlocklyPropClient.py
  • Update the BlocklyPropClient.spec file to include propeller-tools content
    • Below the "exe" block, add the following three lines
    #Propeller Tools
    propeller_libs_and_tools = Tree('propeller-tools', prefix='propeller-tools', excludes=['*.pdf', 'windows', 'linux'])
    propeller_libs_and_tools += [('about.txt', 'about.txt', 'About file')]
  • Above the the "coll" block, indicate that it is modified
    #Collection (edited to include Propeller Tools)
  • Below the "coll" block's "a.datas," line, insert the following line
    propeller_libs_and_tools,
  • Remove the "pathex" from the "analysis" block and, if wanting to save it, place it in commented form at the bottom of the file as follows:
     #From Analysis
     #pathex=['/Users/<username>/PythonProjects/BlocklyPropClient'],
  • Save the file and rename to BlocklyPropClient.macos.spec