/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying file Copyright.txt or https://cmake.org/licensing for details. */ #pragma once #include #include #include #include #include #include "cmUVHandlePtr.h" #include "cmUVProcessChain.h" #include "cmUVStream.h" class cmInstallScriptHandler { public: cmInstallScriptHandler() = default; cmInstallScriptHandler(std::string, std::string, std::vector&); bool isParallel(); int install(unsigned int j); class InstallScript { public: InstallScript(const std::vector&); 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::string binaryDir; std::string component; };