mirror of
https://github.com/arsenetar/dupeguru.git
synced 2026-01-22 14:41:39 +00:00
Initial Update of Windows Packaging (#438)
* Update run.py & .gitignore for windows - Update run.py to execute on windows as SIGQUIT is not available. - Update .gitignore to ignore the generate .pyd files Ref #300, #393 * Update package.py for windows Add package_windows back into package.py - Using cx_freeze for freezing installation - Will be using nsis for actual installer Tested with python 3.5 64bit on windows 10 Ref #393 * Update makefile for windows (+2 misc) - Update the makefile to support windows - Use different bin path in virtualenv - Use pyd instead of so files - Tested with Msys2 - Add *.exe to .gitignore - Fix minor format error in package.py Ref #393 * Add requirements-windows Add the requirements-windows.txt - contains cx-Freeze for bundling Ref #393 * Add initial setup.nsi Initial Version of a NSIS installer script - Multi-user install (install for just one or all) - Registers uninstaller (more values need to finish up) - Tested both single and all install / uninstall and works - Still need to add parameters instead of hardcoded values in some spots - Need to clean up vendor folders / keys if empty on uninstall - Need to add the other dupeGuru languages to the language list - Minor cleanup of script needed as well Ref #393 * Update setup.nsi Updates to setup.nsi including: - Defines from CLI - Version information (MAJOR, MINOR, PATCH) - Bits (64 / 32) - SourcePath (if we wanted something other than build) - Added extra defines to move application specifics to one location - Added extra defines for uninstall information - Added calculation of install size - Added switching between 64 and 32 bit contexts (need to verify functionality) - Updated output file naming - Added NSIS supported languages which are also supported by dupeGuru - Added rest of registry keys for uninstall information - Added missing registry key for installType - Added removeing Vendor folder and registry key if empty on uninstall Should be very close to having this installer script ready to integrate into the package.py script if desired. Ref #393 * Update README & requirements-windows Minor update to README to indicate windows is supported. Add PyQt5 to requirements-windows.txt to make installation easier. * Update packaging for windows - Update package.py to integrate NSIS for windows - Update makefile to deal with a few additional windows issues - Add Windows.md to contain specific windows instructions, if we want this can be merged with README.md - Minor formatting update to setup.nsi Ref #393 * Update README & Windows Instructions - Update the README to include a reference to the Windows instructions. - Add some additional notes into Windows Instructions and remove one incorrect command. - Update .gitignore to ignore all permutations of env* to allow for multiple side by side virtual environments (used to build different versions for windows) Ref: #393 * Update Window.md Fix broken python link and move nsis link for consistency. * More Details in Windows.md Update Windows.md including: - Information on compilier requirements for windows - Notes about the windows 10 sdk - Some clarification around some of the steps - Addition of msys2 links Going to review this a bit more to polish it up. Ref #393.
This commit is contained in:
38
Makefile
38
Makefile
@@ -1,7 +1,23 @@
|
||||
PYTHON ?= python3
|
||||
PYRCC5 ?= pyrcc5
|
||||
REQ_MINOR_VERSION = 4
|
||||
PREFIX ?= /usr/local
|
||||
|
||||
# Window compatability via Msys2
|
||||
# - venv creates Scripts instead of bin
|
||||
# - compile generates .pyd instead of .so
|
||||
# - venv with --sytem-site-packages has issues on windows as well...
|
||||
|
||||
ifeq ($(shell uname -o), Msys)
|
||||
BIN = Scripts
|
||||
SO = pyd
|
||||
VENV_OPTIONS =
|
||||
else
|
||||
BIN = bin
|
||||
SO = so
|
||||
VENV_OPTIONS = --system-site-packages
|
||||
endif
|
||||
|
||||
# Set this variable if all dependencies are already met on the system. We will then avoid the
|
||||
# whole vitualenv creation and pip install dance.
|
||||
NO_VENV ?=
|
||||
@@ -9,7 +25,7 @@ NO_VENV ?=
|
||||
ifdef NO_VENV
|
||||
VENV_PYTHON = $(PYTHON)
|
||||
else
|
||||
VENV_PYTHON = ./env/bin/python
|
||||
VENV_PYTHON = ./env/$(BIN)/python
|
||||
endif
|
||||
|
||||
# If you're installing into a path that is not going to be the final path prefix (such as a
|
||||
@@ -61,33 +77,33 @@ ifndef NO_VENV
|
||||
$(VENV_PYTHON) -m pip install -r requirements.txt
|
||||
# We can't use the "--system-site-packages" flag on creation because otherwise we end up with
|
||||
# the system's pip and that messes up things in some cases (notably in Gentoo).
|
||||
${PYTHON} -m venv --upgrade --system-site-packages env
|
||||
${PYTHON} -m venv --upgrade ${VENV_OPTIONS} env
|
||||
endif
|
||||
|
||||
build/help : | env
|
||||
$(VENV_PYTHON) build.py --doc
|
||||
|
||||
qt/dg_rc.py : qt/dg.qrc
|
||||
pyrcc5 qt/dg.qrc > qt/dg_rc.py
|
||||
$(PYRCC5) qt/dg.qrc > qt/dg_rc.py
|
||||
|
||||
i18n: $(mofiles)
|
||||
|
||||
%.mo : %.po
|
||||
msgfmt -o $@ $<
|
||||
|
||||
core/pe/_block.*.so : core/pe/modules/block.c core/pe/modules/common.c | env
|
||||
core/pe/_block.*.$(SO) : core/pe/modules/block.c core/pe/modules/common.c | env
|
||||
$(VENV_PYTHON) hscommon/build_ext.py $^ _block
|
||||
mv _block.*.so core/pe
|
||||
mv _block.*.$(SO) core/pe
|
||||
|
||||
core/pe/_cache.*.so : core/pe/modules/cache.c core/pe/modules/common.c | env
|
||||
core/pe/_cache.*.$(SO) : core/pe/modules/cache.c core/pe/modules/common.c | env
|
||||
$(VENV_PYTHON) hscommon/build_ext.py $^ _cache
|
||||
mv _cache.*.so core/pe
|
||||
mv _cache.*.$(SO) core/pe
|
||||
|
||||
qt/pe/_block_qt.*.so : qt/pe/modules/block.c | env
|
||||
qt/pe/_block_qt.*.$(SO) : qt/pe/modules/block.c | env
|
||||
$(VENV_PYTHON) hscommon/build_ext.py $^ _block_qt
|
||||
mv _block_qt.*.so qt/pe
|
||||
mv _block_qt.*.$(SO) qt/pe
|
||||
|
||||
modules : core/pe/_block.*.so core/pe/_cache.*.so qt/pe/_block_qt.*.so
|
||||
modules : core/pe/_block.*.$(SO) core/pe/_cache.*.$(SO) qt/pe/_block_qt.*.$(SO)
|
||||
|
||||
mergepot :
|
||||
$(VENV_PYTHON) build.py --mergepot
|
||||
@@ -123,6 +139,6 @@ uninstall :
|
||||
clean:
|
||||
-rm -rf build
|
||||
-rm locale/*/LC_MESSAGES/*.mo
|
||||
-rm core/pe/*.so qt/pe/*.so
|
||||
-rm core/pe/*.$(SO) qt/pe/*.$(SO)
|
||||
|
||||
.PHONY : clean srcpkg normpo mergepot modules i18n reqs run pyc install uninstall all
|
||||
|
||||
Reference in New Issue
Block a user