Files
flatcam-wsl/make_freezed.py
Marius Stanciu eed7e3d620 - some minor changes in the Python version detection
- added a new Tcl Command named SetPath which will set a path to be used by the Tcl commands. Once set will serve as a fallback path in case that the files fail to be opened first time. It will be persistent, saved in preferences.
- added the GUI for the new Open Example in the FIle -> Scripting menu.
- I am modifying all the open ... handlers to add a parameter that will flag if the method was launched from Tcl Shell. This way if the method will fail to open the filename (which include the path) it will try to open from a set fallback path.
- fixed issue #406, bug introduced recently (leftover changes).
- modified the ImportSVG Tcl command name to OpenSVG (open_svg alias)
- added a new Tcl command named OpenDXF (open_dxf alias)
- fixed some errors in Scripting features
- added a new Tcl command named GetPath as a convenient way to get the current default path stored in App.defaults['global_tcl_path']
2020-04-28 14:37:34 +03:00

121 lines
4.7 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: 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
import site
import sys
import 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, "matplotlib"), "matplotlib"))
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(("preprocessors", "lib/preprocessors"))
include_files.append(("assets", "lib/assets"))
include_files.append(("assets/examples", "lib/assets/examples"))
include_files.append(("assets/linux", "lib/assets/linux"))
include_files.append(("assets/resources", "lib/assets/resources"))
include_files.append(("share", "lib/share"))
include_files.append(("flatcamGUI/VisPyData", "lib/vispy"))
include_files.append(("config", "lib/config"))
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
)
if sys.platform == "win32":
buildOptions["include_msvcr"] = True
print("INCLUDE_FILES", include_files)
def getTargetName():
my_OS = platform.system()
if my_OS == 'Linux':
return "FlatCAM"
elif my_OS == 'Windows':
return "FlatCAM.exe"
else:
return "FlatCAM.dmg"
exe = Executable("FlatCAM.py", icon='share/flatcam_icon48.ico', base=base, targetName=getTargetName())
setup(
name="FlatCAM",
author="Community effort",
version="8.9",
description="FlatCAM Evo: 2D Computer Aided PCB Manufacturing",
options=dict(build_exe=buildOptions),
executables=[exe]
)