1*89c4ff92SAndroid Build Coastguard Worker // 2*89c4ff92SAndroid Build Coastguard Worker // Copyright © 2020 Arm Ltd. All rights reserved. 3*89c4ff92SAndroid Build Coastguard Worker // SPDX-License-Identifier: MIT 4*89c4ff92SAndroid Build Coastguard Worker // 5*89c4ff92SAndroid Build Coastguard Worker 6*89c4ff92SAndroid Build Coastguard Worker #pragma once 7*89c4ff92SAndroid Build Coastguard Worker 8*89c4ff92SAndroid Build Coastguard Worker #include <cxxopts/cxxopts.hpp> 9*89c4ff92SAndroid Build Coastguard Worker 10*89c4ff92SAndroid Build Coastguard Worker /** 11*89c4ff92SAndroid Build Coastguard Worker * Ensure all mandatory command-line parameters have been passed to cxxopts. 12*89c4ff92SAndroid Build Coastguard Worker * @param result returned from the cxxopts parse(argc, argv) call 13*89c4ff92SAndroid Build Coastguard Worker * @param required vector of strings listing the mandatory parameters to be input from the command-line 14*89c4ff92SAndroid Build Coastguard Worker * @return boolean value - true if all required parameters satisfied, false otherwise 15*89c4ff92SAndroid Build Coastguard Worker * */ CheckRequiredOptions(const cxxopts::ParseResult & result,const std::vector<std::string> & required)16*89c4ff92SAndroid Build Coastguard Workerinline bool CheckRequiredOptions(const cxxopts::ParseResult& result, const std::vector<std::string>& required) 17*89c4ff92SAndroid Build Coastguard Worker { 18*89c4ff92SAndroid Build Coastguard Worker for(const std::string& str : required) 19*89c4ff92SAndroid Build Coastguard Worker { 20*89c4ff92SAndroid Build Coastguard Worker if(result.count(str) == 0) 21*89c4ff92SAndroid Build Coastguard Worker { 22*89c4ff92SAndroid Build Coastguard Worker std::cerr << "--" << str << " parameter is mandatory" << std::endl; 23*89c4ff92SAndroid Build Coastguard Worker return false; 24*89c4ff92SAndroid Build Coastguard Worker } 25*89c4ff92SAndroid Build Coastguard Worker } 26*89c4ff92SAndroid Build Coastguard Worker return true; 27*89c4ff92SAndroid Build Coastguard Worker } 28