Christopher Wiley a25d35106e aidl: Separate aidl logic into its own static library
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
2015-09-01 11:15:31 -07:00

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_