Tools
This page lists several tools we use with WinMerge development.
Contents |
InnoSetup
InnoSetup, available from www.jrsoftware.org is used for creating WinMerge installers.
Working with installer is expained in readme-InnoSetup.html.
Doxygen
Doxygen, available from www.doxygen.org is used to create code documentation.
Our basic rule is that every class, struct, enum, and function must be documented. Unfortunately we still have lots of undocumented old code.
Documentation format is explained in readme-developers.html.
Example function/variable documentation in .h file:
/**
* Current difference index.
* This variable tells the current difference index
* in the difference list.
*/
UINT m_index;Example function documentation in .cpp file:
/** * @brief Short description of the function. * Longer description of the function in next line. * @param [in] param1 Param going in, not returning value. * @param [in,out] param2 Parameter going in and returning value. * @return Return value(s). */ int example_func(int param1, int * param2) { }
Scripts
There are many scripts scattered around our folder structure. Scripts are used for things like:
- create user manual
- compile languages
- build WinMerge
- run some tests
- create changelog
Most scripts are written in VBScript, couple are DOS batch files, etc.
/ (root folder)
Build Script:
-
buildall.batcompiles almost all WinMerge projects. Only works directly with VC6, later VS versions need all projects first converted.
Src
Version set script:
SetResourceVersions.bat sets version to all .rc files. Must be run before compiling releases.
Src/Languages
Scripts in this folder are related to building / generating / updating translations related files.
MergeLang.dll building:
-
BuildMergeLangDll.batbuildsMergeLang.dllneeded by translation system.
Creating PO template file:
-
CreateMasterPotFile.vbscreates PO template file used for translating.
Translation status generation:
-
GetTranslationsStatus.vbsgenerates translation status statistics.
Updating PO files:
-
UpdatePoFilesFromPotFile.vbsupdates all PO files from POT file.
Tools/Scripts
This folder should be default place for new scripts.
ChangeLog Script:
-
changelog.pyis a Python script creating a changelog from SVN log.
Build Script:
-
create_release.pyis a Python script taking care many tasks in creating a release.
Manual build scripts:
-
BuildManualChm.batbuilds Windows HTML Help -formatted manual. -
BuildManualWeb.batbuilds HTML -formatted manual for web.
Resource scripts:
-
CheckMenuResources.vbschecks menu resources for missing mnemonics or description strings -
CheckUnusedResources.vbschecks for resource IDs that are not used anymore
Translation update script:
-
UpdateTranslations.batupdates translation files
Sysinternals Tools
Sysinternals has many very good and useful tools:
- Process Explorer is very handy tool for managing and examining processes
- Process Monitor allows monitoring process, its resource usage (files, registry...), possible error codes...
Unicode Supporting Editor
Having a good Unicode-supporting editor is essential when working with Unicode files. Many editors support Unicode, but most of them don't allow selecting encoding etc. Window's Notepad supports Unicode, but it also always writes BOM bytes for UTF-8 files (see the BOM -article in Wikipedia).
NotePad++ is an excellent editor with lots of handy features.
Virtual Machines
Virtual Machines are very useful especially when testing installer.
Mercurial
Even though we use Subversion as our version control, Mercurial is very handy for working with patches locally.