[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.
Этот коммит содержится в:
Evgeny Mankov
2019-01-14 19:34:42 +03:00
родитель 93aeb04cec
Коммит 13ffeb47ce
3 изменённых файлов: 15 добавлений и 1 удалений
+8 -1
Просмотреть файл
@@ -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);
+1
Просмотреть файл
@@ -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;
+6
Просмотреть файл
@@ -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));