10578cbc6c527bc09a38a0fcd8b9642c25c8ea023Joe Onorato/* 20578cbc6c527bc09a38a0fcd8b9642c25c8ea023Joe Onorato * Copyright (C) 2016 The Android Open Source Project 30578cbc6c527bc09a38a0fcd8b9642c25c8ea023Joe Onorato * 40578cbc6c527bc09a38a0fcd8b9642c25c8ea023Joe Onorato * Licensed under the Apache License, Version 2.0 (the "License"); 50578cbc6c527bc09a38a0fcd8b9642c25c8ea023Joe Onorato * you may not use this file except in compliance with the License. 60578cbc6c527bc09a38a0fcd8b9642c25c8ea023Joe Onorato * You may obtain a copy of the License at 70578cbc6c527bc09a38a0fcd8b9642c25c8ea023Joe Onorato * 80578cbc6c527bc09a38a0fcd8b9642c25c8ea023Joe Onorato * http://www.apache.org/licenses/LICENSE-2.0 90578cbc6c527bc09a38a0fcd8b9642c25c8ea023Joe Onorato * 100578cbc6c527bc09a38a0fcd8b9642c25c8ea023Joe Onorato * Unless required by applicable law or agreed to in writing, software 110578cbc6c527bc09a38a0fcd8b9642c25c8ea023Joe Onorato * distributed under the License is distributed on an "AS IS" BASIS, 120578cbc6c527bc09a38a0fcd8b9642c25c8ea023Joe Onorato * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 130578cbc6c527bc09a38a0fcd8b9642c25c8ea023Joe Onorato * See the License for the specific language governing permissions and 140578cbc6c527bc09a38a0fcd8b9642c25c8ea023Joe Onorato * limitations under the License. 150578cbc6c527bc09a38a0fcd8b9642c25c8ea023Joe Onorato */ 160578cbc6c527bc09a38a0fcd8b9642c25c8ea023Joe Onorato 170578cbc6c527bc09a38a0fcd8b9642c25c8ea023Joe Onorato#ifndef MAKE_H 180578cbc6c527bc09a38a0fcd8b9642c25c8ea023Joe Onorato#define MAKE_H 190578cbc6c527bc09a38a0fcd8b9642c25c8ea023Joe Onorato 200578cbc6c527bc09a38a0fcd8b9642c25c8ea023Joe Onorato#include <map> 210578cbc6c527bc09a38a0fcd8b9642c25c8ea023Joe Onorato#include <string> 220578cbc6c527bc09a38a0fcd8b9642c25c8ea023Joe Onorato#include <vector> 230578cbc6c527bc09a38a0fcd8b9642c25c8ea023Joe Onorato 240578cbc6c527bc09a38a0fcd8b9642c25c8ea023Joe Onoratousing namespace std; 250578cbc6c527bc09a38a0fcd8b9642c25c8ea023Joe Onorato 260578cbc6c527bc09a38a0fcd8b9642c25c8ea023Joe Onoratostruct Module 270578cbc6c527bc09a38a0fcd8b9642c25c8ea023Joe Onorato{ 280578cbc6c527bc09a38a0fcd8b9642c25c8ea023Joe Onorato string name; 290578cbc6c527bc09a38a0fcd8b9642c25c8ea023Joe Onorato vector<string> classes; 300578cbc6c527bc09a38a0fcd8b9642c25c8ea023Joe Onorato vector<string> paths; 310578cbc6c527bc09a38a0fcd8b9642c25c8ea023Joe Onorato vector<string> installed; 320578cbc6c527bc09a38a0fcd8b9642c25c8ea023Joe Onorato}; 330578cbc6c527bc09a38a0fcd8b9642c25c8ea023Joe Onorato 340578cbc6c527bc09a38a0fcd8b9642c25c8ea023Joe Onoratostring get_build_var(const string& buildTop, const string& name, bool quiet); 350578cbc6c527bc09a38a0fcd8b9642c25c8ea023Joe Onorato 360578cbc6c527bc09a38a0fcd8b9642c25c8ea023Joe Onorato/** 370578cbc6c527bc09a38a0fcd8b9642c25c8ea023Joe Onorato * Poke around in the out directory and try to find a device name that matches 380578cbc6c527bc09a38a0fcd8b9642c25c8ea023Joe Onorato * our product. This is faster than running get_build_var and good enough for 390578cbc6c527bc09a38a0fcd8b9642c25c8ea023Joe Onorato * tab completion. 400578cbc6c527bc09a38a0fcd8b9642c25c8ea023Joe Onorato * 410578cbc6c527bc09a38a0fcd8b9642c25c8ea023Joe Onorato * Returns the empty string if we can't find one. 420578cbc6c527bc09a38a0fcd8b9642c25c8ea023Joe Onorato */ 430578cbc6c527bc09a38a0fcd8b9642c25c8ea023Joe Onoratostring sniff_device_name(const string& buildOut, const string& product); 440578cbc6c527bc09a38a0fcd8b9642c25c8ea023Joe Onorato 450578cbc6c527bc09a38a0fcd8b9642c25c8ea023Joe Onoratovoid read_modules(const string& buildOut, const string& buildDevice, 460578cbc6c527bc09a38a0fcd8b9642c25c8ea023Joe Onorato map<string,Module>* modules, bool quiet); 470578cbc6c527bc09a38a0fcd8b9642c25c8ea023Joe Onorato 480578cbc6c527bc09a38a0fcd8b9642c25c8ea023Joe Onoratoint build_goals(const vector<string>& goals); 490578cbc6c527bc09a38a0fcd8b9642c25c8ea023Joe Onorato 500578cbc6c527bc09a38a0fcd8b9642c25c8ea023Joe Onorato#endif // MAKE_H 51