OSDN Git Service

Merge remote-tracking branch 'upstream/master' into jp
[winmerge-jp/winmerge-jp.git] / README.md
1 [![logo](Docs/Logos/WinMerge_logo_24bit.png)](https://github.com/WinMerge/winmerge)
2
3
4 # WinMerge
5 [![Build status](https://ci.appveyor.com/api/projects/status/h3v3ap1kswi1tyyt?svg=true)](https://ci.appveyor.com/project/sdottaka/winmerge/build/artifacts)
6 [![CI](https://github.com/WinMerge/winmerge/workflows/CI/badge.svg)](https://github.com/WinMerge/winmerge/actions)
7 [![sourceforge.net downloads](https://img.shields.io/sourceforge/dt/winmerge)](https://sourceforge.net/projects/winmerge/files/)
8 [![Github Releases All](https://img.shields.io/github/downloads/winmerge/winmerge/total.svg)](https://github.com/WinMerge/winmerge/releases/latest)
9 [![Translation status](https://img.shields.io/badge/translations-36-green)](https://github.com/WinMerge/winmerge/blob/master/Translations/TranslationsStatus.md)
10
11 [WinMerge](https://winmerge.org/) is an open source differencing and merging tool
12 for Windows. WinMerge can compare files and folders, presenting differences
13 in a visual format that is easy to understand and manipulate.
14
15 ## Build Requirements
16
17 ### Visual Studio 2017
18
19  * *Community*, *Professional* or *Enterprise* Edition
20  * VC++ 2017 latest v141 tools
21  * Visual C++ compilers and libraries for (ARM, ARM64)
22  * Windows XP support for C++
23  * Visual C++ MFC for (x86 and x64, ARM, ARM64)
24  * Visual C++ ATL for (x86 and x64, ARM, ARM64)
25  * Windows 10 SDK
26
27 ### Visual Studio 2019
28
29  * *Community*, *Professional* or *Enterprise* Edition
30  * MSVC v142 - VS 2019 C++ (x64/x86, ARM, ARM64) build tools (Latest)
31  * C++ MFC for latest v142 build tools (x86 & x64, ARM, ARM64)
32  * C++ ATL for latest v142 build tools (x86 & x64, ARM, ARM64)
33  * Windows 10 SDK
34
35 ### Visual Studio 2022
36
37  * *Community*, *Professional* or *Enterprise* Edition
38  * MSVC v143 Buildtools (x64/x86, ARM, ARM64)
39  * C++ MFC for latest v143 build tools (x64/x86, ARM, ARM64)
40  * C++ ATL for latest v143 build tools (x64/x86, ARM, ARM64)
41  * Windows 10 SDK
42  
43 ### Other utilities/programs
44
45  * git
46  * Inno Setup 5.x and 6.x
47  * 7-Zip
48  * Python
49  * Pandoc
50
51 ## How to Build
52
53 ~~~
54 git clone https://github.com/winmerge/winmerge
55 cd winmerge
56 git submodule init
57 git submodule update
58 DownloadDeps.cmd
59 BuildAll.vs2022.cmd [x86|x64|ARM|ARM64] or BuildAll.vs2019.cmd [x86|x64|ARM|ARM64] or BuildAll.vs2017.cmd [x86|x64|ARM|ARM64]
60 ~~~
61
62 ## Folder Structure
63
64 Source code for the WinMerge program, its plugins, filters, setup program,
65 and various utilities are all kept in the subfolders listed below.
66
67 The changelog file is in `Docs/Users/ChangeLog.md` and it documents 
68 both user-visible and significant changes.
69
70 Subfolders include:
71
72  - `Docs`  
73    Both user and developer documentation, in different subfolders.  
74    Can be browsed by opening `index.html` in the `Docs` folder.
75
76  - `Src`  
77    Source code to the WinMerge program itself.
78
79  - `Plugins`  
80    Source code and binaries for WinMerge runtime plugin dlls & scripts.
81
82  - `Filters`  
83    WinMerge file filters which are shipped with the distribution.
84
85  - `ArchiveSupport`  
86    Source code for the Merge7z dlls, which connect WinMerge with 7-Zip.  
87    Also this folder is required to compile `WinMergeU.exe`.  
88    There is also a standalone installer for Merge7z dlls.
89
90  - `Externals`  
91    This folder contains several libraries whose sources come from
92    outside WinMerge project.  
93    They are stored here for convenience for building and possibly 
94    needed small changes for WinMerge.  
95    Libraries include an XML parser and a regular expression parser.
96
97  - `Installer`  
98    Installer for WinMerge.
99
100  - `Tools`  
101    Various utilities used by WinMerge developers; see readme files in each.
102
103  - `ShellExtension`  
104    Windows Shell (Explorer) integration.  
105    Adds menuitems to Explorer context menu for comparing files and folders.
106
107  - `Testing`  
108    A suite of test diff files and a script to run them and report the results.  
109    This folder also has a `Google Test` subfolder containing unit tests made
110    with [Google Test Framework](https://github.com/google/googletest).
111
112  - `Build`  
113    This folder gets created by the compiler when WinMerge is compiled.  
114    It contains compiled executables, libraries, the user manual, etc.
115
116  - `BuildTmp`  
117    This folder gets created by the compiler when WinMerge is compiled.  
118    It contains temporary files created during the compilation and can be 
119    safely deleted. 
120
121
122 ## How to CONTRIBUTE
123
124    You will need to fork the main Winmerge repository and create a branch on that fork
125    
126    Your new code needs to follow Eric Allman identation https://en.wikipedia.org/wiki/Indentation_style#Allman_style
127    
128    When your code is ready for a review/merge create a pull request explaining the changes that you made
129    
130
131 ## How to RUN and DEBUG
132
133    The winmerge folder has different Visual Studio solution files (.sln) that you can use to build, debug and run while you test your changes
134    
135    If you have run any of the BuildAll scripts you can run WinMerge from path `\Build\X64\Release\WinMergeU.exe` 
136    if your architecture is not `X64` look for any of the other folders generated after the build has finished
137    
138    Another way to Debug, run the exe from previous step, then from VS attach to the running process.