Files
flatcam-wsl/make_win.py
Marius Stanciu 5c75998dbb - stored inside FlatCAM app the VisPy data files and at the first start the application will try to copy those files to the APPDATA (roaming) folder in case of running under Windows
- created an app 'switch' named 'self.portable' which when set True it will 'cx-freeze' an portable application
2019-08-15 02:18:13 +03:00

100 lines
4.0 KiB
Python

# ########################################################## ##
# FlatCAM: 2D Post-processing for Manufacturing #
# http://flatcam.org #
# Author: Juan Pablo Caram (c) #
# Date: 12/20/2018 #
# MIT Licence #
# #
# Creates a portable copy of FlatCAM, including Python #
# itself and all dependencies. #
# #
# This is not an aid to install FlatCAM from source on #
# Windows platforms. It is only useful when FlatCAM is up #
# and running and ready to be packaged. #
# ########################################################## ##
# ########################################################## ##
# File Modified (major mod): Marius Adrian Stanciu #
# Date: 3/10/2019 #
# ########################################################## ##
# Files not needed: Qt, tk.dll, tcl.dll, tk/, tcl/, vtk/,
# scipy.lib.lapack.flapack.pyd, scipy.lib.blas.fblas.pyd,
# numpy.core._dotblas.pyd, scipy.sparse.sparsetools._bsr.pyd,
# scipy.sparse.sparsetools._csr.pyd, scipy.sparse.sparsetools._csc.pyd,
# scipy.sparse.sparsetools._coo.pyd
import os, site, sys, platform
from cx_Freeze import setup, Executable
# this is done to solve the tkinter not being found
PYTHON_INSTALL_DIR = os.path.dirname(os.path.dirname(os.__file__))
os.environ['TCL_LIBRARY'] = os.path.join(PYTHON_INSTALL_DIR, 'tcl', 'tcl8.6')
os.environ['TK_LIBRARY'] = os.path.join(PYTHON_INSTALL_DIR, 'tcl', 'tk8.6')
# Get the site-package folder, not everybody will install
# Python into C:\PythonXX
site_dir = site.getsitepackages()[1]
include_files = []
include_files.append((os.path.join(site_dir, "shapely"), "shapely"))
include_files.append((os.path.join(site_dir, "svg"), "svg"))
include_files.append((os.path.join(site_dir, "svg/path"), "svg"))
include_files.append((os.path.join(site_dir, "vispy"), "vispy"))
include_files.append((os.path.join(site_dir, "vispy/app"), "vispy/app"))
include_files.append((os.path.join(site_dir, "vispy/app/backends"), "vispy/app/backends"))
include_files.append((os.path.join(site_dir, "rtree"), "rtree"))
if platform.architecture()[0] == '64bit':
include_files.append((os.path.join(site_dir, "google"), "google"))
include_files.append((os.path.join(site_dir, "google/protobuf"), "google/protobuf"))
include_files.append((os.path.join(site_dir, "ortools"), "ortools"))
include_files.append(("locale", "lib/locale"))
include_files.append(("postprocessors", "lib/postprocessors"))
include_files.append(("share", "lib/share"))
include_files.append(("flatcamGUI/VisPyData", "lib/vispy"))
include_files.append(("README.md", "README.md"))
include_files.append(("LICENSE", "LICENSE"))
base = None
# Lets not open the console while running the app
if sys.platform == "win32":
base = "Win32GUI"
if platform.architecture()[0] == '64bit':
buildOptions = dict(
include_files=include_files,
excludes=['scipy','pytz'],
# packages=['OpenGL','numpy','vispy','ortools','google']
# packages=['numpy','google', 'rasterio'] # works for Python 3.7
packages = ['opengl', 'numpy', 'google', 'rasterio'] # works for Python 3.6.5 and Python 3.7.1
)
else:
buildOptions = dict(
include_files=include_files,
excludes=['scipy', 'pytz'],
# packages=['OpenGL','numpy','vispy','ortools','google']
# packages=['numpy', 'rasterio'] # works for Python 3.7
packages = ['opengl', 'numpy', 'rasterio'] # works for Python 3.6.5 and Python 3.7.1
)
print("INCLUDE_FILES", include_files)
# execfile('clean.py')
setup(
name="FlatCAM",
author="Juan Pablo Caram",
version="8.9",
description="FlatCAM: 2D Computer Aided PCB Manufacturing",
options=dict(build_exe=buildOptions),
executables=[Executable("FlatCAM.py", icon='share/flatcam_icon48.ico', base=base)]
)