[HIPIFY] Introduce '-D' option as hipify-clang's one
+ '-D' might be set as hipify-clang option (before separator '--' or without specifying separator at all); + '-D' as a clang option might be specified as well (after options separator '--'); + All defines specified as hipify-clang defines (before options separator '--') will be set after clang's ones and will redefine the same clang's ones.
Этот коммит содержится в:
@@ -85,7 +85,7 @@ cl::opt<bool> Examine("examine",
|
||||
cl::cat(ToolTemplateCategory));
|
||||
|
||||
cl::opt<bool> DashDash("-",
|
||||
cl::desc("Separator between hipify-clang and clang options;\ndon't specify if there are no clang options."),
|
||||
cl::desc("Separator between hipify-clang and clang options;\ndon't specify if there are no clang options"),
|
||||
cl::value_desc("--"),
|
||||
cl::cat(ToolTemplateCategory));
|
||||
|
||||
@@ -96,4 +96,11 @@ cl::list<std::string> I("I",
|
||||
cl::Prefix,
|
||||
cl::cat(ToolTemplateCategory));
|
||||
|
||||
cl::list<std::string> D("D",
|
||||
cl::desc("Define <macro> to <value> or 1 if <value> omitted"),
|
||||
cl::value_desc("macro>=<value"),
|
||||
cl::ZeroOrMore,
|
||||
cl::Prefix,
|
||||
cl::cat(ToolTemplateCategory));
|
||||
|
||||
cl::extrahelp CommonHelp(ct::CommonOptionsParser::HelpMessage);
|
||||
|
||||
@@ -34,6 +34,7 @@ extern cl::opt<std::string> OutputDir;
|
||||
extern cl::opt<std::string> TemporaryDir;
|
||||
extern cl::opt<std::string> CudaPath;
|
||||
extern cl::list<std::string> I;
|
||||
extern cl::list<std::string> D;
|
||||
extern cl::opt<bool> Inplace;
|
||||
extern cl::opt<bool> SaveTemps;
|
||||
extern cl::opt<bool> NoBackup;
|
||||
|
||||
@@ -199,6 +199,12 @@ int main(int argc, const char **argv) {
|
||||
#if defined(HIPIFY_CLANG_RES)
|
||||
Tool.appendArgumentsAdjuster(ct::getInsertArgumentAdjuster("-resource-dir=" HIPIFY_CLANG_RES));
|
||||
#endif
|
||||
if (!D.empty()) {
|
||||
for (std::string s : D) {
|
||||
Tool.appendArgumentsAdjuster(ct::getInsertArgumentAdjuster("-D", ct::ArgumentInsertPosition::END));
|
||||
Tool.appendArgumentsAdjuster(ct::getInsertArgumentAdjuster(s.c_str(), ct::ArgumentInsertPosition::END));
|
||||
}
|
||||
}
|
||||
if (!I.empty()) {
|
||||
for (std::string s : I) {
|
||||
Tool.appendArgumentsAdjuster(ct::getInsertArgumentAdjuster("-I", ct::ArgumentInsertPosition::END));
|
||||
|
||||
Ссылка в новой задаче
Block a user