Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

!This is a draft page, subject to review !This is a guide for building the release artifacts of MiNiFi C++ binaries for Windows. Follow it to create the artifacts and document the process as described in the documentation section. When packaging, the resulting MSI cannot be redistributed under the Apache License 2.0, because it includes Microsoft redistributable DLLs.

Required environment

Operating System: Microsoft Windows 10 x64 or later

Recommended hardware: at least 4 CPU cores and 16 GiB RAM

Required software

  • Microsoft Visual Studio 2017 2022 Community or Enterprise
    • Install with the "Desktop development with C++" workload, it should include all needed components
  • CMake >=3.16 24 (https://cmake.org/download/)
    • Choose the "Add CMake to the system path..." option when installing
  • git (https://git-scm.com/download/win)
  • WiX Toolset >= 3.11 (https://wixtoolset.org/releases/)
    • WiX Toolset requires .NET 3.5 to install, which you can install via the "Turn Windows features on or off" utility
  • Perl (Strawberry Perl http://strawberryperl.com/)
    • If Strawberry Perl is used the ${StrawberryPerlRoot}\c\bin directory should not be part of the PATH variable, or make sure to find git's patch executable before that, as Strawberry Perl's patch.exe will be found as the patch executable in the configure phase instead of the git patch executable. When installed via scoop, this is not a problem, because only perl binaries are added to the PATH.
    • An alternative is ActiveState Perl, https://www.activestate.com/ActivePerl for which you may need to explicitly build the Perl module Win32/Console.pm via https://platform.activestate.com/ActiveState and then download it)
  • NASM (https://www.nasm.us)
    • Make sure to add NASM to the system PATH variable

Build process

To build the 64-bit msi execute the following steps:

  1. Create the C:\Development directory
  2. Open x64 Native Tools Command Prompt for VS 20172022

  3. Code Block
    titleExecute the following commands
    cd C:\Development
    git clone clone httpshttps://github.com/apache/nifi-minifi-cpp.git
    cd nifi-minifi-cpp
    git checkout <tag>
    win_build_vs.bat build64 /64 /T /K /P


  4. The artifact will be at C:\Development\nifi-minifi-cpp\build64\nifi-minifi-cpp.msi

...

  1. Open x86 Native Tools Command Prompt for VS 20172022

  2. Code Block
    titleExecute the following commands
    cd C:\Development\nifi-minifi-cpp
    win_build_vs.bat build32 /T /K /P


  3. The artifact will be at C:\Development\nifi-minifi-cpp\build32\nifi-minifi-cpp.msi

Documentation

To document how a particulate release was built, duplicate this page (as it can change over time and will no longer reflect the process that was followed) and can be built, substitute the example values:

InformationHow to obtainValue
git tag of the used sourceKnowing this is a precondition for starting the buildrel/minifi-cpp-0.7.0main
OS versionOpen "About your PC" and use Edition, Version and OS build under the Windows specifications sectionWindows 10 Pro 1809 177632004 19041.9141052
MSVC versionRun cl from x64 Native Tools Command Prompt for VS 20172022 and extract the version19.1637.2703432825
VC Redistributable Merge Module VersionRun set VCToolsRedistDir from x64 Native Tools Command Prompt for VS 20172022 and extract the version14.1636.2701232532
CMake versionRun cmake --version and extract the version3.16.024
git versionRun git --version and extract the version2.2430.0.windows.2
WiX Toolset versionRun the WiX application which displays the versionv3.11.2.4516

...