/* * Copyright (C) 2020-2025 Intel Corporation * * SPDX-License-Identifier: MIT * */ #pragma once #include "shared/source/helpers/non_copyable_or_moveable.h" #include #include #include class OclocArgHelper; namespace NEO { class MultiCommand : NEO::NonCopyableAndNonMovableClass { public: MOCKABLE_VIRTUAL ~MultiCommand() = default; static MultiCommand *create(const std::vector &args, int &retVal, OclocArgHelper *helper); std::string outDirForBuilds; std::string outputFileList; protected: MultiCommand() = default; int initialize(const std::vector &args); int splitLineInSeparateArgs(std::vector &qargs, const std::string &command, size_t numberOfBuild); int showResults(); MOCKABLE_VIRTUAL int singleBuild(const std::vector &args); void addAdditionalOptionsToSingleCommandLine(std::vector &, size_t buildId); void printHelp(); void runBuilds(const std::string &argZero); OclocArgHelper *argHelper = nullptr; std::vector retValues; std::vector lines; std::string outFileName; std::string pathToCommandFile; std::stringstream outputFile; bool quiet = false; }; static_assert(NEO::NonCopyableAndNonMovable); } // namespace NEO