Compile aidl's logic into a static library that can be linked against both the unittest binary and the executable. Validate that this is working by writing a basic unittest against options parsing. Provide default values for Options struct members. These were previously taking on values according to the the bits in the memory allocated to hold them for preprocessed inputs. Bug: 23516947 Change-Id: Ib57cd7f473995f7851d788deac39f9c4d9018e8f Test: compiles and unittests pass
38 lines
858 B
C++
38 lines
858 B
C++
#ifndef AIDL_OPTIONS_H_
|
|
#define AIDL_OPTIONS_H_
|
|
|
|
#include <string.h>
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
using std::string;
|
|
using std::vector;
|
|
|
|
enum {
|
|
COMPILE_AIDL,
|
|
PREPROCESS_AIDL
|
|
};
|
|
|
|
// This struct is the parsed version of the command line options
|
|
struct Options
|
|
{
|
|
int task{COMPILE_AIDL};
|
|
bool failOnParcelable{false};
|
|
vector<string> importPaths;
|
|
vector<string> preprocessedFiles;
|
|
string inputFileName;
|
|
string outputFileName;
|
|
string outputBaseFolder;
|
|
string depFileName;
|
|
bool autoDepFile{false};
|
|
|
|
vector<string> filesToPreprocess;
|
|
};
|
|
|
|
// takes the inputs from the command line and fills in the Options struct
|
|
// Returns 0 on success, and nonzero on failure.
|
|
// It also prints the usage statement on failure.
|
|
int parse_options(int argc, const char* const* argv, Options *options);
|
|
|
|
#endif // AIDL_OPTIONS_H_
|