diff options
author | Jose <jose@zeroc.com> | 2012-03-15 21:18:44 +0100 |
---|---|---|
committer | Jose <jose@zeroc.com> | 2012-03-15 21:18:44 +0100 |
commit | 4a1627793f9e20381e026bc74e117dcbded7a6dc (patch) | |
tree | 9f77d47757cfa800334490dccf096ef4dee2ec16 /cpp/src/Slice/Preprocessor.cpp | |
parent | ICE-4745 - Freeze serialization throws Ice.MemoryLimitException (diff) | |
download | ice-4a1627793f9e20381e026bc74e117dcbded7a6dc.tar.bz2 ice-4a1627793f9e20381e026bc74e117dcbded7a6dc.tar.xz ice-4a1627793f9e20381e026bc74e117dcbded7a6dc.zip |
ICE-4791 - Include generated header in dependency rules emitted by slice2cpp.
Diffstat (limited to 'cpp/src/Slice/Preprocessor.cpp')
-rw-r--r-- | cpp/src/Slice/Preprocessor.cpp | 28 |
1 files changed, 20 insertions, 8 deletions
diff --git a/cpp/src/Slice/Preprocessor.cpp b/cpp/src/Slice/Preprocessor.cpp index 6f75020a71d..9366e3164e7 100644 --- a/cpp/src/Slice/Preprocessor.cpp +++ b/cpp/src/Slice/Preprocessor.cpp @@ -249,12 +249,23 @@ Slice::Preprocessor::preprocess(bool keepComments) bool Slice::Preprocessor::printMakefileDependencies(Language lang, const vector<string>& includePaths, - const string& cppSourceExt, const string& pyPrefix) + const string& cppSourceExt, const string& optValue) { if(!checkInputFile()) { return false; } + + string cppHeaderExt; + string pyPrefix; + if(lang == CPlusPlus) + { + cppHeaderExt = optValue; + } + else if(lang == Python) + { + pyPrefix = optValue; + } // // Build arguments list. @@ -452,10 +463,11 @@ Slice::Preprocessor::printMakefileDependencies(Language lang, const vector<strin // // Change .o[bj] suffix to the cpp source extension suffix. // - string::size_type pos; - while((pos = result.find(suffix)) != string::npos) + string::size_type pos = result.find(suffix); + if(pos != string::npos) { - result.replace(pos, suffix.size() - 1, "." + cppSourceExt); + string name = result.substr(0, pos); + result.replace(0, pos + suffix.size() - 1, name + "." + cppHeaderExt + " " + name + "." + cppSourceExt); } break; } @@ -514,7 +526,7 @@ Slice::Preprocessor::printMakefileDependencies(Language lang, const vector<strin // Change .o[bj] suffix to .cs suffix. // string::size_type pos; - while((pos = result.find(suffix)) != string::npos) + if((pos = result.find(suffix)) != string::npos) { result.replace(pos, suffix.size() - 1, ".cs"); } @@ -530,7 +542,7 @@ Slice::Preprocessor::printMakefileDependencies(Language lang, const vector<strin result = pyPrefix + result; } string::size_type pos; - while((pos = result.find(suffix)) != string::npos) + if((pos = result.find(suffix)) != string::npos) { result.replace(pos, suffix.size() - 1, "_ice.py"); } @@ -542,7 +554,7 @@ Slice::Preprocessor::printMakefileDependencies(Language lang, const vector<strin // Change .o[bj] suffix to .rb suffix. // string::size_type pos; - while((pos = result.find(suffix)) != string::npos) + if((pos = result.find(suffix)) != string::npos) { result.replace(pos, suffix.size() - 1, ".rb"); } @@ -554,7 +566,7 @@ Slice::Preprocessor::printMakefileDependencies(Language lang, const vector<strin // Change .o[bj] suffix to .php suffix. // string::size_type pos; - while((pos = result.find(suffix)) != string::npos) + if((pos = result.find(suffix)) != string::npos) { result.replace(pos, suffix.size() - 1, ".php"); } |