Skip to content
Graphical cross platform data hashing tool for Linux, Windows and Mac
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
DateTimePicker Delete auto-generated file zvdatetimectrls.pas Jun 28, 2017
HashLib4Pascal/HashLib/src Delete auto-generated file HashLib4PascalPackage.pas May 24, 2017
MultiThreadIdea Potential multi-threading concept added but not part of the main prog… May 25, 2017
misc no gap in name Jan 21, 2018
.gitignore Update .gitignore Jul 27, 2018
CHANGELOG.md Update CHANGELOG.md (spelling/grammar) Jan 16, 2019
CODE_OF_CONDUCT.md Disk hashing now uses udisksctl from udisk2 package instead of udisk.… Jan 10, 2018
FindAllFilesEnhanced.pas v3.0.4 tweaks - expected hash message, use of DL library on OSX for S… Jan 16, 2019
GPTMBR.pas Further cross-compliation tweaks added and general polish. Better GPL… Jan 9, 2018
LICENSE Disk hashing now uses udisksctl from udisk2 package instead of udisk.… Jan 10, 2018
Makefile Update Linux build files Jan 11, 2019
README.md Updated the README Jan 9, 2019
UserManual.fodt user manual updated to v3.0.4 Jan 16, 2019
UserManual.pdf user manual updated to v3.0.4 Jan 16, 2019
dbases_sqlite.lfm v3.0.4 tweaks - expected hash message, use of DL library on OSX for S… Jan 16, 2019
dbases_sqlite.lrs Further v3 additions and improvements, notably save as HTML etc Oct 22, 2017
dbases_sqlite.pas v3.0.4 tweaks - expected hash message, use of DL library on OSX for S… Jan 16, 2019
diskmodule.lfm v3.0.4 tweaks - expected hash message, use of DL library on OSX for S… Jan 16, 2019
diskmodule.pas v3.0.4 tweaks - expected hash message, use of DL library on OSX for S… Jan 16, 2019
diskspecification.lfm Remove executable bit from files Dec 21, 2016
diskspecification.pas Remove executable bit from files Dec 21, 2016
frmaboutunit.lfm v3.0.4 tweaks - expected hash message, use of DL library on OSX for S… Jan 16, 2019
frmaboutunit.lrs v3.0.4 tweaks - expected hash message, use of DL library on OSX for S… Jan 16, 2019
frmaboutunit.pas v3.0.4 tweaks - expected hash message, use of DL library on OSX for S… Jan 16, 2019
project1.ico v3.0.2 fixes and improvements Feb 28, 2018
quickhash.ico swapped GetUserDir for GetAppConfigDir for dbase creartion path on OSX Jan 8, 2018
quickhash.lpi ensured lpi file shows v3.0.4 Jan 16, 2019
quickhash.lpr v3.0.4 tweaks - expected hash message, use of DL library on OSX for S… Jan 16, 2019
quickhash_linux.lpi Update Linux build files Jan 11, 2019
sqlite3-win32.dll Added 32 and 64 bit SQlite DLLs for Windows Jan 11, 2018
sqlite3-win64.dll Added 32 and 64 bit SQlite DLLs for Windows Jan 11, 2018
uGPT.pas Further cross-compliation tweaks added and general polish. Better GPL… Jan 9, 2018
uKnownHashLists.pas v3.0.4 tweaks - expected hash message, use of DL library on OSX for S… Jan 16, 2019
udisplaygrid.lfm v3.0.4 tweaks - expected hash message, use of DL library on OSX for S… Jan 16, 2019
udisplaygrid.lrs Further v3 additions and improvements, notably save as HTML etc Oct 22, 2017
udisplaygrid.pas v3.0.4 tweaks - expected hash message, use of DL library on OSX for S… Jan 16, 2019
unit2.lfm v3.0.4 tweaks - expected hash message, use of DL library on OSX for S… Jan 16, 2019
unit2.lrs Further v3 additions and improvements, notably save as HTML etc Oct 22, 2017
unit2.pas typo: remove var LongPathOveride and use LongPathOverride Jan 21, 2019
uprogress.lfm v3.0.4 tweaks - expected hash message, use of DL library on OSX for S… Jan 16, 2019
uprogress.pas v3.0.4 tweaks - expected hash message, use of DL library on OSX for S… Jan 16, 2019

README.md

QuickHash

Compiling the Project

Pre-compiled binaries for Windows, Linux and Apple macOS are available from http://quickhash-gui.org.

If you need, or want, to compile it yourself, then first clone the source code using git : git clone https://github.com/tedsmith/quickhash.git

There is an LPR file that is the Lazarus Project File. So you need the Lazarus IDE and Freepascal Compiler (fpc v3.0.4 and Lazarus v1.8.4 or above) for your chosen platform, available from www.lazarus-ide.org.

After installation of Lazarus and Freepascal, you need to set some things up.

HashLib4Pascal package: The library is included in the GitHub QuickHash project. So simply choose "Package", then "Open Package File (lpk)" from the top menu of Lazarus. Choose and navigate to CloneOfQuickHashProject/HashLib4Pascal/HashLib/src/Packages/FPC/HashLib4PascalPackage.lpk then click the 'Compile' button. Then later, when you open the QuickHash project, you need to add it to the project, but that will be explained later.

DateTimePicker : Repeat the same process for the package DateTimePicker which was added in v2.8.3 to enable scheduled hashing. So simply choose 'Package --> Open Package File (lpk)' from the top menu of Lazarus and navigate to CloneOfQuickHashProject/DateTimePicker/zvdatetimectrls.lpk, choose "Compile" and then Install to ensure it is part of the IDE.

LazDBExport : in Lazarus, go to Package --> Install\Uninstall Packages --> find 'lazdbexport' 1.0' in the right hand pane under 'Available for installation'. Select the package and click 'Install Selection' button. Click 'Save and Rebuild IDE'. The next window will show a list of installed packages and the ones to be installed. Click 'Continue'. The IDE will rebuild.

SQLdb Tab : You MAY also need to ensure you have the 'SQLdb' tab in your Lazarus IDE interface. It is important since v3.0.0 because it uses the 'TSQLDBLibraryLoader', which is used to try and enable QuickHash to load the default SQLite library on your system. It is possible your IDE will not have this tab (most do, but I've experienced it not to be there). To get it, ensure the SQLdbLaz package is installed, again via 'Tools --> Install\Uninstall Packages', find SQLdbLaz in the right and add it to the "To be installed" pane.

Now you can open the QuickHash project. Choose Project --> Open Project". Lazarus looks for LPI files by default (local config file for a project) but there isn't one in the GitHub project. Simply adjust the drop down menu for file type (bottom right) to "All files", and then select the LPR file. Lazarus will then warn you that a project session file is missing and would you like to create one. Choose "Yes" and then just click OK in the next window (the one that asks what type of project you are making - it should default to 'Application'). After clicking OK for the last time, a local LPI file will be created for your computer session.

Assuming it opens OK, when you go to compile it, Lazarus will report that the project can not find certain packages that are declared in the uses clause. So use the "Package" menu again to ensure it knows where these units are. So choose "Open loaded package", and for "HashLib4Pascal" package and "LazDBExport" package and "ZVDateTimeCtrls" package, select each one (one at a time) and choose "open". Once open in the package manager, choose "Use --> Add to Project". Now when you compile, it should find all the units and compile OK. You may also need to do this for SQLDb package.

Now save your project (Project --> Save Project) which will create a new LPI file. Then you can compile QuickHash yourself using Lazarus.

I am hopeful this guide might encourage collaborators and also help various Linux distributors include QuickHash into their package management platforms.

Ted Smith

You can’t perform that action at this time.