Skip to content

Building self contained binaries and installers

Mike Hucka edited this page Jun 25, 2018 · 13 revisions

MacOS

Currently, we build binaries for macOS 10.12 (Sierra) and 10.13 (High Sierra). The process is automated through the use of a simple Makefile at the top level of the MOCCASIN source directory. To use it:

  1. Start a virtual machine for the desired operating system
  2. Change directory to the MOCCASIN source directory
  3. make clean
  4. make

If there are no problems, the installer will be left in the dist subdirectory.

Here is a log of the entire process as it worked for me in my Parallels 13-based VM for macOS 10.12.

Linux

Linux builds are much like Mac builds, and use the same Makefile at the top level of the MOCCASIN source directory. To use it:

  1. Start a virtual machine for the desired operating system
  2. Change directory to the MOCCASIN source directory
  3. make clean
  4. make

If there are no problems, the installer will be left in the dist subdirectory.

Windows

Windows is less automated at the moment.

  1. Start a virtual machine for the desired operating system
  2. Start a terminal emulator shell of some kind (Mike uses cmder)
  3. Change directory to the MOCCASIN source directory
  4. Delete the dist directory using something like rd /s dist
  5. Run this command:
    pyinstaller --clean pyinstaller-win32.spec
    

If all goes well, the steps above will produce a .exe in the dist subdirectory. Next comes adjusting the binary before building the installer; this is needed because I could not find a way to script this part:

  1. Using the Windows file explorer, right-click on the MOCCASIN.exe file and select the Properties menu option
  2. Switch to the Compatibility tab in the Properties panel
  3. Check the checkbox for "Override high DPI scaling behavior" and in the pull-down menu, select System (Enhanced)


Once that's done, the last step is actually creating the installer:

  1. Run Innosetup, open dev/installer-builders/windows/innosetup-windows-installer.iss, and run it.

The result of this should be an installer for Windows in the dist subdirectory.