From 91efdb04217204a5af41d1cb6e4ca71f70ab6a89 Mon Sep 17 00:00:00 2001 From: rahulp13 Date: Thu, 7 Jan 2021 20:47:29 +0530 Subject: updated packaging instructions --- Windows/README.md | 79 ++++++++++++++++++++++--------------------------------- 1 file changed, 32 insertions(+), 47 deletions(-) (limited to 'Windows') diff --git a/Windows/README.md b/Windows/README.md index f63e717..c01c147 100644 --- a/Windows/README.md +++ b/Windows/README.md @@ -1,13 +1,15 @@ NGHDL Installer (Windows OS) ==== +It contains all the documentation for making NGHDL executable (using PyInstaller) and packging NGHDL for Windows 7 and above. -It contains all the documenation for making NGHDL executable (using PyInstaller) and packging for eSim Installation Script on Windows 7 and above. +> Note: Do not develop NGHDL on Windows OS. Work only with `installers` branch on Windows OS and do development on Linux OS. +> Reference : https://stackoverflow.com/questions/37672886/cannot-get-rid-of-unstaged-files-in-git-on-my-local ## NGHDL Executable: -1. Download and install "Python-3.5.2", "Git For Windows". Use "Git Bash" for all following shell commands. +1. Download and install "Python-3.6.8", "Git For Windows". Use "Git Bash" for all following shell commands. Ensure that `tcl/tk` (`tkinter`) is also installed with Python as it is required by `matplotlib` dependency Reference - https://gitforwindows.org/ @@ -27,38 +29,20 @@ It contains all the documenation for making NGHDL executable (using PyInstaller) $ source nghdl/Scripts/activate -6. Install all Python dependencies for NGHDL within the virtual environment as: - - - Install PyInstaller, SetupTools through pip : +6. Install the Python dependencies `PyInstaller`, `SetupTools`, `PyQt5` through pip for NGHDL within the virtual environment: $ pip install pyinstaller - $ pip install --upgrade 'setuptools<45.0.0' - - - Install PyQt4 through pip (Reference - https://stackoverflow.com/questions/22640640/how-to-install-pyqt4-on-windows-using-pip) : - - $ pip install --upgrade 'sip<5.0.0' - $ pip install - - Download PyQt4 Wheel from - [https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyqt4] - Where cp37 represents the Python version i.e. 3.7.x and so on - - > Note : - - If there are any issues regarding loading of DLL files, refer : https://stackoverflow.com/questions/2738879/cannot-import-pyqt4-qtgui - - If above step works, then goto step 7. + $ pip install setuptools + $ pip install PyQt5 7. Test whether only NGHDL dependencies are available or not: $ pip freeze -> Note : Following dependencies should be available - -> - PyQt4 -> - sip -> - altgraph -> - future -> - pefile +> Note: Following Python packages for NGHDL along with their dependencies should be available - +> - PyQt5 +> - PyQt5-sip > - pyinstaller -> - pywin32-ctypes - 8. Create spec file as: @@ -69,39 +53,40 @@ It contains all the documenation for making NGHDL executable (using PyInstaller) $ pyinstaller -F --clean nghdl.spec 10. Verify whether all NGHDL `src` files (`*.py`) have been included in `Analysis-00.toc` file under the build folder generated by PyInstaller. -11. nghdl.exe is generated at the dist folder. ## How to package NGHDL with eSim ? -1. Place the nghdl.exe generated from the above process at the location /nghdl/src/ - -2. Delete all python files (files ending in .py) at /nghdl/src/ +1. Take the `master` branch of NGHDL. Rename the folder to `nghdl`. -3. Remove the following files at /nghdl/ - - .gitignore +2. Place the NGHDL executable (`nghdl.exe`) at the location `nghdl/src/`. Also, remove following files from the `nghdl` folder: + - `.git` folder + - python files from `nghdl/src` folder + - .gitignore - GHDLside.md - Workflow.md + - ngspice-nghdl.tar.xz (Move it outside the folder as it is required later on) -4. Place **nghdl** folder containing `src folder`, `Example folder` & `LICENSE` under folder named eSim/ +3. Place this **nghdl** folder containing `src` folder, `Example` folder, `LICENSE` file and `README.md` under folder named `eSim`. -5. Final directory structure should be: -- eSim/nghdl/Example -- eSim/nghdl/src -- eSim/nghdl/LICENSE +4. Final directory structure should be: + - eSim/nghdl/Example + - eSim/nghdl/src + - eSim/nghdl/LICENSE + - eSim/nghdl/README.md -6. Compress the `eSim` folder from step 4 in 7z format (Make sure that there is folder named `eSim` inside this compressed file) and name it as `nghdl-src.7z`.\ -(7z compression tool can be downloaded from - https://www.7-zip.org/download.html ) +5. Compress the `eSim` folder from step 4 in 7z format (Make sure that there is folder named `eSim` inside this compressed file) and name it as `nghdl-src.7z`. +(7z compression tool can be downloaded from - https://www.7-zip.org/download.html) -7. ALong with `nghdl-src.7z` from step 5, place the following 7z files at the installer folder for eSim. -(these can be obtained under *sources/* folder in the repository ) -- ghdl.7z -- MSYS.7z -- mingw64.7z +6. Along with `nghdl-src.7z` from step 5, place the following 7z files at the installer folder for eSim: + - ghdl.7z + - MSYS.7z + - mingw64.7z + - ngspice-nghdl.7z -- ngspice-nghdl.7z ( this file can be obtained by decompressing `ngspice-nghdl.tar.xz` file present at `master branch` of this repository and recompressing using 7z tool) +> Note: These compressed files can be obtained under *Windows/sources/* folder of NGHDL's `installers` branch -8. Place the script `installnghdl.nsi` at the eSim installer location. +7. Place the script `nghdl-setup-script.nsi` at the eSim's installer folder. -9. Follow the rest of the instructions for packging eSim [https://github.com/FOSSEE/eSim/tree/installers/Windows] and compile the NSI script (`esim-setup-script.nsi` file). Now only use the generated installer for distribution. +8. Follow rest of the [instructions](https://github.com/FOSSEE/eSim/tree/installers/Windows/README.md) for packaging eSim. -- cgit