Go to file
Virgil Dupras fa2ee01d3f Updated the project file to include newly added units for 5.8, updated the preferences XIB to add the Custom Command field and updated the help file to include custom commands. 2010-04-14 09:33:42 +02:00
cocoa Updated the project file to include newly added units for 5.8, updated the preferences XIB to add the Custom Command field and updated the help file to include custom commands. 2010-04-14 09:33:42 +02:00
core [#4 state:fixed] Filters are now applied on the whole file path. 2010-04-13 11:40:20 +02:00
core_me [#85 state:fixed] Fixed crash when sorting by Words Used after a Contents scan. 2010-02-05 17:47:17 +01:00
core_pe Added a dialog giving more information about the causes of problems during operations. 2010-04-12 12:21:01 +02:00
core_se [#85 state:fixed] Fixed crash when sorting by Words Used after a Contents scan. 2010-02-05 17:47:17 +01:00
debian_me Added a missing python-lxml dep to the debian packages. 2010-04-07 09:32:49 -07:00
debian_pe Added a missing python-lxml dep to the debian packages. 2010-04-07 09:32:49 -07:00
debian_se Added a missing python-lxml dep to the debian packages. 2010-04-07 09:32:49 -07:00
help_me Updated the project file to include newly added units for 5.8, updated the preferences XIB to add the Custom Command field and updated the help file to include custom commands. 2010-04-14 09:33:42 +02:00
help_pe Changed the release date for pe 1.8.6, which has been delayed by packaging problems. 2010-04-08 08:35:17 +02:00
help_se se v2.10.0 2010-04-13 11:58:53 +02:00
images dgse cocoa: extracted the pref pane from MainMenu.xib into Preferences.xib, Removed column menu items, which are now generated in the code. other little things. 2009-10-30 12:56:05 +00:00
qt Fixed Windows packaging for dgse. 2010-04-13 14:04:15 +01:00
.hgignore ifdef'd min/max functions when compiled under VC. It seems that VC already defines them. 2010-01-31 11:05:13 +00:00
.hgtags Added tag se2.10.0 for changeset 914902428395 2010-04-13 17:31:36 +02:00
LICENSE Changed copyright year to 2010 2010-01-01 21:11:34 +01:00
README Updated dependencies to include cx_Freeze. 2010-04-08 15:01:21 +02:00
build.py Fixed build script 2010-02-10 00:18:25 -08:00
configure.py Removed the 'build64' option and added a 'dev' configuration to all xcode projects. 2010-02-04 13:45:35 +01:00
package.py Fixed Windows packaging for dgse. 2010-04-13 14:04:15 +01:00
run.py Removed the 'build64' option and added a 'dev' configuration to all xcode projects. 2010-02-04 13:45:35 +01:00

README

Contents
=====

This package contains the source for dupeGuru. To learns how to build it, refer to the "Build dupeGuru" section. Below is the description of the various subfolders:

- core: Contains the core logic code for dupeGuru. It's Python code written in TDD style.
- core_*: Edition-specific-cross-toolkit code written in Python.
- cocoa: UI code for the Cocoa toolkit. It's Objective-C code.
- qt: UI code for the Qt toolkit. It's written in Python and uses PyQt. Before redistributing changes in this part of the code, read the "qt/WARNING" file.
- images: Images used by the different UI codebases.

There are also other sub-folder that comes from external repositories (automatically checked out
with svn:externals):

- hsutil: A collection of helpers used across HS applications.
- hsdocgen: An ad-hoc document generation used across HS project (used for help files)
- hsmedia: A library to read audio file metadata, used in dupeGuru ME.
- cocoalib: A collection of helpers used across Cocoa UI codebases of HS applications.
- qtlib: A collection of helpers used across Qt UI codebases of HS applications.

dupeGuru Dependencies
=====

Before being able to build dupeGuru, a few dependencies have to be installed:

General dependencies
-----

- Python 2.6 (http://www.python.org)
- Send2Trash (http://hg.hardcoded.net/send2trash)
- lxml, to read and write XML files. (http://codespeak.net/lxml/)
- Mako, to generate help files. (http://www.makotemplates.org/)
- PyYaml, for help files and the build system. (http://pyyaml.org/)
- Nose, to run unit tests. (http://somethingaboutorange.com/mrl/projects/nose/)

OS X prerequisites
-----

- XCode 3.1 (http://developer.apple.com/TOOLS/xcode/)
- Sparkle (http://sparkle.andymatuschak.org/)
- PyObjC 2.2. (http://pyobjc.sourceforge.net/)
- py2app (http://svn.pythonmac.org/py2app/py2app/trunk/doc/index.html)

Windows prerequisites
---

- Visual Studio 2008 (Express is enough) is needed to build C extensions. (http://www.microsoft.com/Express/)
- PyQt 4.6 (http://www.riverbankcomputing.co.uk/news)
- Python Imaging Library for dupeGuru PE. (http://www.pythonware.com/products/pil/)
- cx_Freeze, if you want to build a exe. You don't need it if you just want to run dupeGuru. (http://cx-freeze.sourceforge.net/)
- Advanced Installer, if you want to build the installer file. (http://www.advancedinstaller.com/)

Building dupeGuru
=====

First, make sure you meet the dependencies listed in the section above. Then you need to configure your build with:

	python configure.py
	
If you want, you can specify a UI to use with the `--ui` option. So, if you want to build dupeGuru with Qt on OS X, then you have to type `python configure.py --ui=qt`. You can also use the `--dev` flag to indicate a dev build (it will build `dg_cocoa.plugin` in alias mode and use the "dev" config in XCode).

Then, just build the thing and then run it with:

	python build.py
	python run.py

If you want to create ready-to-upload package, run:

	python package.py

64-bit on OS X
---

The "release" configuration of dupeGuru's XCode project build with archs "i386 x86_64 ppc". However there are currently problems with py2app and 64 bit. If you want to correctly build 64-bit apps, refer to http://www.hardcoded.net/articles/building-64-bit-pyobjc-applications-with-py2app.htm .