BUILD.md
Pre-requisites:
There are three components which are built from one visual studio solution:
notepad++.exe: (contains libSciLexer.lib)libScintilla.lib : static library based on ScintillalibLexilla.lib : static library based on LexillaNotepad++ is always built with Boost regex PCRE support instead of default c++11 regex ECMAScript used by plain Scintilla.
notepad++.exePowerEditor\visual.net\notepadPlus.slnlibScintilla.lib and libLexilla.libAs mentioned above, you'll need libScintilla.lib and libLexilla.lib for the Notepad++ build. This is done automatically on building the whole solution. So normally you don't need to care about this.
libScintilla.lib with boost and libLexilla.lib via nmakeThis is not necessary any more and just here for completeness as this option is still available. Boost is taken from boost 1.90.0 and stripped down to the project needs available at boost in this repo.
scintilla\win32\nmake -f scintilla.maknmake DEBUG=1 -f scintilla.maknmake -f scintilla.maklexilla\src\nmake -f lexilla.maknmake DEBUG=1 -f lexilla.makMore about the previous build process: https://community.notepad-plus-plus.org/topic/13959/building-notepad-with-visual-studio-2015-2017
Since Notepad++ version 6.0 - 7.9.5, the build of dynamic linked SciLexer.dll that is distributed
uses features from Boost's Boost.Regex library.
If you have MinGW-w64 installed, you can compile Notepad++ with GCC. Otherwise MinGW-w64 can be downloaded here. You can also download some collection of tools which supports MinGW-w64, like MSYS2 or WinLibs.
Building Notepad++ is regularly tested on a Windows system by using MSYS2 project. Current versions of tools used to building (such as GCC, Clang, Make or Bash) can be checked by looking at some logs from the finished building (for example in the current-build page). Other versions may also work but are untested.
Note: Before building make sure that the system PATH environment variable contains $MinGW-root$\bin directory. Otherwise you have to set this directory yourself in Windows settings. You can also use a command like set PATH=$MinGW-root$\bin;%PATH% each time cmd is launched. But beware that if PATH contains several versions of MinGW-w64 GCC, only the first one will be usable.
cmd and add $MinGW-root$\bin to PATH if necessary.cd into notepad-plus-plus\PowerEditor\gcc.mingw32-make.notepad++.exe will be generated either in bin.i686 or in bin.x86_64 directory respectively, depending on the target CPU of the compiler — look for the full path to the resulting binary at the end of the build process.notepad++.exe will also contain everything needed for Notepad++ to start.DEBUG=1 to the mingw32-make invocation above. The output directory then will be suffixed with -debug.VERBOSE=1 to the same command.PowerEditor/gcc directory, for example when using -f option, then the entire project path must not contain any spaces. Additionally, the path to makefile of this project should be listed as first.TARGET_CPU variable with x86_64 or i686 as value.CXX variable with clang++ as value.CLANGANALYZE=1 to the mingw32-make invocation.