diff options
Diffstat (limited to 'cpp/src/Slice/CPlusPlusUtil.cpp')
-rw-r--r-- | cpp/src/Slice/CPlusPlusUtil.cpp | 32 |
1 files changed, 26 insertions, 6 deletions
diff --git a/cpp/src/Slice/CPlusPlusUtil.cpp b/cpp/src/Slice/CPlusPlusUtil.cpp index bef622075e1..b4f9d48f8d0 100644 --- a/cpp/src/Slice/CPlusPlusUtil.cpp +++ b/cpp/src/Slice/CPlusPlusUtil.cpp @@ -99,12 +99,32 @@ Slice::printVersionCheck(Output& out) { out << "\n"; out << "\n#ifndef ICE_IGNORE_VERSION"; - out << "\n# if ICE_INT_VERSION / 100 != " << ICE_INT_VERSION / 100; - out << "\n# error Ice version mismatch!"; - out << "\n# endif"; - out << "\n# if ICE_INT_VERSION % 100 < " << ICE_INT_VERSION % 100; - out << "\n# error Ice patch level mismatch!"; - out << "\n# endif"; + if(ICE_INT_VERSION % 100 > 50) + { + // + // Beta version: exact match required + // + out << "\n# if ICE_INT_VERSION != " << ICE_INT_VERSION; + out << "\n# error Ice version mismatch: an exact match is required for beta generated code"; + out << "\n# endif"; + } + else + { + out << "\n# if ICE_INT_VERSION / 100 != " << ICE_INT_VERSION / 100; + out << "\n# error Ice version mismatch!"; + out << "\n# endif"; + + // + // Generated code is release; reject beta header + // + out << "\n# if ICE_INT_VERSION % 100 > 50"; + out << "\n# error Beta header file detected"; + out << "\n# endif"; + + out << "\n# if ICE_INT_VERSION % 100 < " << ICE_INT_VERSION % 100; + out << "\n# error Ice patch level mismatch!"; + out << "\n# endif"; + } out << "\n#endif"; } |