James Medel created MINIFICPP-2346: -------------------------------------- Summary: Speed up MiNiFi Build with Conan package manager (C++) Key: MINIFICPP-2346 URL: https://issues.apache.org/jira/browse/MINIFICPP-2346 Project: Apache NiFi MiNiFi C++ Issue Type: Improvement Affects Versions: 0.15.0 Environment: Ubuntu 22.04 Reporter: James Medel Assignee: James Medel
*Description of Issue:* Building MiNiFi C++ with just CMake is really slow. During the the build process, it clones all the external dependencies and then builds those external dependencies while its building MiNiFi C++. It would be faster to build MiNiFi C++ with the external dependencies already preinstalled. *Potential Solution:* Integrate *conan version 2* into MiNiFi C++ project to enable support for using *conan install* to install all or most of MiNiFi's external dependencies, using *conan install --build=missing* to build them as prebuilt binary conan packages, upload them to conancenter with {*}conan upload{*}, and then run cmake generate to generate the appropriate build files for the OS, then run make to build MiNiFi C++. At this point because we already most of MiNiFi C++'s external dependencies with conan, our CMake build will just focus on building the MiNiFi C++ code. *Steps to Perform MiNiFi C++ Build Enhancement:* # Install conan version 2 into MiNiFi C++ dev environment (my preference is using docker container) # Create a conanfile.py file at root of MiNiFi C++ project where we run "conan install" or "conan install --build=missing" to install MiNiFi C++ external lib dependencies first. Then we run CMake to build MiNiFi C++. # Find all MiNiFi C++ find_package(...) CMake function calls and check if there is already supported conan packages on the conancenter, so we can install those packages. # Find all FetchContent_Declare(...) CMake function calls and check if there is already supported conan packages on the conancenter, so we can install those packages. # At this point we will have used conan version 2 C++ package manager to install almost all MiNiFi C++'s external dependencies. ## With Conan, we will have installed these MiNiFi external lib dependencies as prebuilt binary conan packages. ## Or we will have instructed conan to first build each C++ external lib dependency, upload each lib to conancenter. # Thus, conan manages installing MiNiFi C++'s external lib dependencies, so we can then run CMake to build MiNiFi faster. -- This message was sent by Atlassian Jira (v8.20.10#820010)