From 13ffeb47ceed8458e33a76ecbf2a31a220173574 Mon Sep 17 00:00:00 2001 From: Evgeny Mankov Date: Mon, 14 Jan 2019 19:34:42 +0300 Subject: [PATCH] [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. --- hipify-clang/src/ArgParse.cpp | 9 ++++++++- hipify-clang/src/ArgParse.h | 1 + hipify-clang/src/main.cpp | 6 ++++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/hipify-clang/src/ArgParse.cpp b/hipify-clang/src/ArgParse.cpp index d63a328b5b..e81ada1ddc 100644 --- a/hipify-clang/src/ArgParse.cpp +++ b/hipify-clang/src/ArgParse.cpp @@ -85,7 +85,7 @@ cl::opt Examine("examine", cl::cat(ToolTemplateCategory)); cl::opt 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 I("I", cl::Prefix, cl::cat(ToolTemplateCategory)); +cl::list D("D", + cl::desc("Define to or 1 if omitted"), + cl::value_desc("macro>= OutputDir; extern cl::opt TemporaryDir; extern cl::opt CudaPath; extern cl::list I; +extern cl::list D; extern cl::opt Inplace; extern cl::opt SaveTemps; extern cl::opt NoBackup; diff --git a/hipify-clang/src/main.cpp b/hipify-clang/src/main.cpp index e219f73023..db6c803c27 100644 --- a/hipify-clang/src/main.cpp +++ b/hipify-clang/src/main.cpp @@ -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));