113547Sjulian# Install from source 213547Sjulian 335025SjbFor instructions to bring nvi2 as a part of your operating system's base system, see [Porting](https://github.com/lichray/nvi2/wiki/Porting) in the Wiki. This document is an overview of the build process that allows you to give nvi2 a try. 413547Sjulian 513547Sjulian## Prerequisites 613547Sjulian 713547Sjulian- CMake >= 3.17; 813547Sjulian- Ninja build system; 913547Sjulian- libiconv (for `USE_ICONV`); 1013547Sjulian- libncursesw (for `USE_WIDECHAR`); 1113547Sjulian 1213547SjulianAnything required by a minimal nvi, notably: 1313547Sjulian 1413547Sjulian- Berkeley DB1 in libc; 1513547Sjulian- /var/tmp/vi.recover/ with mode 41777. 1613547Sjulian 1713547Sjulian## Building 1813547Sjulian 1913547SjulianNvi2 uses CMake build system generator. By specifying "Ninja Multi-Config" as the build system to generate, you can compile the project in both Debug and Release modes without re-running CMake. Under the project root directory, run 2013547Sjulian 2113547Sjulian```sh 2213547Sjuliancmake -G "Ninja Multi-Config" -B build 2313547Sjulian``` 2413547Sjulian 2513547SjulianNow `build` becomes your build directory to hold the artifacts. To build nvi2 in Debug mode, run 2613547Sjulian 2713547Sjulian```sh 2813547Sjulianninja -C build 2913547Sjulian``` 3013547Sjulian 3113547SjulianUpon finishing, the nvi2 executable will be available as `build/Debug/nvi`. To launch it in `ex` mode, you can create a symlink 3213547Sjulian 3350473Speter```sh 3413547Sjulianln -s nvi build/Debug/ex 3513547Sjulian``` 3613547Sjulian 3713547Sjulianand run `./build/Debug/ex` rather than `./build/Debug/nvi`. 3813547Sjulian 3913547SjulianTo build nvi2 in Release mode, use the following command instead: 4013547Sjulian 4113547Sjulian```sh 42146824Srodrigcninja -C build -f build-Release.ninja 43149692Sstefanf``` 44149692Sstefanf 45149692SstefanfUpon finishing, you will be able to edit files with `./build/Release/nvi`. 4644965Sjb 47149692SstefanfTo change configure-time options, such as disabling wide character support, use `ccmake build`. 4813547Sjulian