Merge pull request #37 from ltworf/windows

Windows fixes
master
Salvo 'LtWorf' Tomaselli 2020-09-02 19:18:20 +07:00 committed by GitHub
commit e3214def4c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 60 additions and 129 deletions

@ -1,27 +1,14 @@
Requirements:
1)Python 3.4, 32bit
2)PyQt5 for python 3.4, 32bit (it should already include the qt libs);
3)Py2exe
4)Innosetup
Due to py2exe and pyinstaller not working at all, the setup now just installs python
uses pip to install the requirements and then creates some links to start relational.
It is necessary to have the: Microsoft Visual C++ 2010 Redistributable Package.
You will need:
Create an exe file
- Move the file windows/input.py to ../
- Chech that the version number is correct
- Execute "python input.py py2exe"
At the end, there should be a directory named "dist" containing the exe file and the needed libs (excluding for the c++ one)
within the dist directory there should be a "platforms" directory with a dll the PyQt5 directory.
1) Innosetup
2) The python installer executable in the windows directory
Create the setup with Inno Setup
- Run make or it will just never work
- Move windows/ss.iss to ../
- Download the Microsoft Visual C++ 2010 Redistributable, call it vcredist_x86.exe and save it in the relational main directory
- Open ss.iss with Inno Setup, Build and Compile
A directory named "Output" will be created, which will contain the installer.
Notes:
- To create the setup, don't move the "dist" directory or its content.
- Do not delete or move the directory windows/font dejavu
- If the shell is open, it will not work. The windows shell does not support unicode and will generate exceptions when trying to print expressions on it

@ -1,57 +0,0 @@
# Relational
# Copyright (C) 2008-2020 Salvo "LtWorf" Tomaselli
#
# Relational is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# author Salvo "LtWorf" Tomaselli <tiposchi@tiscali.it>
from distutils.core import setup
import py2exe
#It was complaining about the already installed MSVCP90.dll
#So it is removed from the checks and signals to the user the
#probable need to manually install it. Since to redistribute it
#some dammit certificates are needed.
includes = (
"sip",
"PyQt5",
"PyQt5.QtCore",
"PyQt5.QtGui",
)
datafiles = (
(
"platforms", ["C:\\Python34\\Lib\\site-packages\\PyQt5\\plugins" + "\\platforms\\qwindows.dll"]
),
)
setup(
data_files=datafiles,
zipfile=None,
options={
"py2exe": {
"includes": includes,
"dll_excludes": ["MSVCP90.dll"],
}
},
windows=[
{
"script": "relational.py",
"icon_resources": [(0, "windows/favicon.ico")],
}
],
name="Relational",
version="3.0",
)

@ -0,0 +1,4 @@
# install dependencies using pip
py -m pip install typedload
py -m pip install xtermcolor
py -m pip install PyQt5

@ -1,53 +1,50 @@
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{6F127615-6AD4-4BD7-8135-2444A335B5CD}
AppName=Relational
AppVerName=Relational ver. 3.0
AppPublisher=Salvo 'LtWorf' Tomaselli
AppPublisherURL=http://ltworf.github.io/relational/
AppSupportURL=http://ltworf.github.io/relational/
AppUpdatesURL=http://ltworf.github.io/relational/
DefaultDirName={pf}\Relational
DefaultGroupName=Relational
AllowNoIcons=yes
LicenseFile=COPYING
OutputBaseFilename=SetupRelational
SetupIconFile=windows\favicon.ico
Compression=lzma
SolidCompression=yes
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
[Run]
; add the Parameters, WorkingDir and StatusMsg as you wish, just keep here
; the conditional installation Check
Filename: "{tmp}\vcredist_x86.exe"; Parameters: "/passive /norestart";
[Files]
Source: "dist\relational_gui.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "dist\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; Source: "windows\font dejavu\*"; DestDir: "{fonts}"; FontInstall: "Dejavu Sans"
Source: "samples\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "vcredist_x86.exe"; DestDir: {tmp}; Flags: deleteafterinstall
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
[Icons]
Name: "{group}\Relational"; Filename: "{app}\relational_gui.exe"
Name: "{group}\{cm:ProgramOnTheWeb,Relational}"; Filename: "http://ltworf.github.io/relational/"
Name: "{group}\{cm:UninstallProgram,Relational}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\Relational"; Filename: "{app}\relational_gui.exe"; Tasks: desktopicon
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\Relational"; Filename: "{app}\relational_gui.exe"; Tasks: quicklaunchicon
[Run]
Filename: "{app}\relational_gui.exe"; Description: "{cm:LaunchProgram,Relational}"; Flags: nowait postinstall skipifsilent
[Setup]
AppId={{6F127615-6AD4-4BD7-8135-2444A335B5CD}
AppName=Relational
AppVerName=Relational ver. 3.0
AppPublisher=Salvo 'LtWorf' Tomaselli
AppPublisherURL=https://ltworf.github.io/relational/
AppSupportURL=https://ltworf.github.io/relational/
AppUpdatesURL=https://ltworf.github.io/relational/
DefaultDirName={pf}\Relational
DefaultGroupName=Relational
AllowNoIcons=yes
LicenseFile=COPYING
OutputBaseFilename=SetupRelational
SetupIconFile=windows\favicon.ico
Compression=lzma
SolidCompression=yes
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
[Run]
; add the Parameters, WorkingDir and StatusMsg as you wish, just keep here
; the conditional installation Check
Filename: "{tmp}\python-3.8.5-amd64.exe"; Parameters: "/passive InstallAllUsers=1";
Filename: "powershell"; Parameters: "-file {tmp}\pipscript.bat"
[Files]
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
Source: "windows\python-3.8.5-amd64.exe"; DestDir: {tmp}; Flags: deleteafterinstall
Source: "windows\pipscript.bat"; DestDir: {tmp}; Flags: deleteafterinstall
Source: "relational.py"; DestDir: "{app}"; Flags: ignoreversion
Source: "relational\*"; DestDir: "{app}\relational"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "relational_gui\*"; DestDir: "{app}\relational_gui"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "samples\*"; DestDir: "{app}\samples"; Flags: ignoreversion recursesubdirs createallsubdirs
[Icons]
Name: "{group}\Relational"; Filename: "pyw"; Parameters: "relational.py"; WorkingDir: "{app}"
Name: "{group}\{cm:ProgramOnTheWeb,Relational}"; Filename: "https://ltworf.github.io/relational/"
Name: "{group}\{cm:UninstallProgram,Relational}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\Relational"; Tasks: desktopicon; Filename: "pyw"; Parameters: "relational.py"; WorkingDir: "{app}"
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\Relational"; Tasks: quicklaunchicon; Filename: "pyw"; Parameters: "relational.py"; WorkingDir: "{app}"
[Run]
Description: "{cm:LaunchProgram,Relational}"; Flags: nowait postinstall skipifsilent; Filename: "pyw"; Parameters: "relational.py"; WorkingDir: "{app}"