/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying file LICENSE.rst or https://cmake.org/licensing for details. */ #pragma once #include #include #include #include #include #include "cmUVHandlePtr.h" #include "cmUVProcessChain.h" #include "cmUVStream.h" class cmInstrumentation; class cmInstallScriptHandler { public: cmInstallScriptHandler() = default; cmInstallScriptHandler(std::string, std::string, std::string, std::vector&); bool IsParallel(); int Install(unsigned int j, cmInstrumentation& instrumentation); std::vector> GetCommands() const; class InstallScript { public: InstallScript(std::vector const&); void start(cm::uv_loop_ptr&, std::function); void printResult(std::size_t n, std::size_t total); private: std::vector command; std::vector output; std::string name; std::unique_ptr chain; std::unique_ptr streamHandler; cm::uv_pipe_ptr pipe; }; private: std::vector> commands; std::vector directories; std::vector configs; std::string binaryDir; std::string component; bool parallel; };