diff --git a/hipamd/hipify-clang/README.md b/hipamd/hipify-clang/README.md index 812500ad34..deb951efbb 100644 --- a/hipamd/hipify-clang/README.md +++ b/hipamd/hipify-clang/README.md @@ -321,7 +321,6 @@ For example: ./hipify-clang \ square.cu \ --cuda-path=/usr/local/cuda-8.0 \ - -- \ -I /usr/local/cuda-8.0/samples/common/inc ``` diff --git a/hipamd/hipify-clang/src/ArgParse.cpp b/hipamd/hipify-clang/src/ArgParse.cpp index 9696cb74aa..3cc372adab 100644 --- a/hipamd/hipify-clang/src/ArgParse.cpp +++ b/hipamd/hipify-clang/src/ArgParse.cpp @@ -85,8 +85,22 @@ 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)); +cl::list IncludeDirs("I", + cl::desc("Add directory to include search path"), + cl::value_desc("directory"), + cl::ZeroOrMore, + cl::Prefix, + cl::cat(ToolTemplateCategory)); + +cl::list MacroNames("D", + cl::desc("Define to or 1 if omitted"), + cl::value_desc("macro>= OutputFilename; extern cl::opt OutputDir; extern cl::opt TemporaryDir; extern cl::opt CudaPath; +extern cl::list IncludeDirs; +extern cl::list MacroNames; extern cl::opt Inplace; extern cl::opt SaveTemps; extern cl::opt NoBackup; diff --git a/hipamd/hipify-clang/src/main.cpp b/hipamd/hipify-clang/src/main.cpp index 6df8ae9679..d0fcc17e66 100644 --- a/hipamd/hipify-clang/src/main.cpp +++ b/hipamd/hipify-clang/src/main.cpp @@ -199,6 +199,18 @@ int main(int argc, const char **argv) { #if defined(HIPIFY_CLANG_RES) Tool.appendArgumentsAdjuster(ct::getInsertArgumentAdjuster("-resource-dir=" HIPIFY_CLANG_RES)); #endif + if (!MacroNames.empty()) { + for (std::string s : MacroNames) { + Tool.appendArgumentsAdjuster(ct::getInsertArgumentAdjuster("-D", ct::ArgumentInsertPosition::END)); + Tool.appendArgumentsAdjuster(ct::getInsertArgumentAdjuster(s.c_str(), ct::ArgumentInsertPosition::END)); + } + } + if (!IncludeDirs.empty()) { + for (std::string s : IncludeDirs) { + Tool.appendArgumentsAdjuster(ct::getInsertArgumentAdjuster("-I", ct::ArgumentInsertPosition::END)); + Tool.appendArgumentsAdjuster(ct::getInsertArgumentAdjuster(s.c_str(), ct::ArgumentInsertPosition::END)); + } + } Tool.appendArgumentsAdjuster(ct::getClangSyntaxOnlyAdjuster()); Statistics& currentStat = Statistics::current(); // Hipify _all_ the things!