ENH: compile with broken 720 SGI C++ compiler
This commit is contained in:
parent
4b2d48051f
commit
61ec323b6a
|
@ -89,4 +89,44 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
// check for the 720 compiler on the SGI
|
||||||
|
// which has some strange properties that I don't think are worth
|
||||||
|
// checking for in a general way in configure
|
||||||
|
#if defined(__sgi) && !defined(__GNUC__)
|
||||||
|
# if (_COMPILER_VERSION >= 730)
|
||||||
|
# define CM_SGI_CC_730
|
||||||
|
# elif (_COMPILER_VERSION >= 720)
|
||||||
|
# define CM_SGI_CC_720
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
# ifdef CM_SGI_CC_720
|
||||||
|
// the 720 sgi compiler has std:: but not for the stream library,
|
||||||
|
// so we have to bring it into the std namespace by hand.
|
||||||
|
namespace std {
|
||||||
|
using ::ostream;
|
||||||
|
using ::istream;
|
||||||
|
using ::ios;
|
||||||
|
using ::cout;
|
||||||
|
using ::cerr;
|
||||||
|
using ::cin;
|
||||||
|
using ::ifstream;
|
||||||
|
using ::ofstream;
|
||||||
|
using ::strstream;
|
||||||
|
using ::endl;
|
||||||
|
using ::ends;
|
||||||
|
using ::flush;
|
||||||
|
}
|
||||||
|
// The string class is missing these operators so add them
|
||||||
|
inline bool operator!=(std::string const& a, const char* b)
|
||||||
|
{ return !(a==std::string(b)); }
|
||||||
|
|
||||||
|
inline bool operator==(std::string const& a, const char* b)
|
||||||
|
{ return (a==std::string(b)); }
|
||||||
|
// for scoping is not ISO, so use the for hack
|
||||||
|
#define for if(false) {} else for
|
||||||
|
|
||||||
|
# endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -710,14 +710,20 @@ void cmSystemTools::cmCopyFile(const char* source,
|
||||||
const int buffer_length = 4096;
|
const int buffer_length = 4096;
|
||||||
char buffer[buffer_length];
|
char buffer[buffer_length];
|
||||||
std::ifstream fin(source,
|
std::ifstream fin(source,
|
||||||
std::ios::binary | std::ios::in);
|
#ifdef _WIN32
|
||||||
|
std::ios::binary |
|
||||||
|
#endif
|
||||||
|
std::ios::in);
|
||||||
if(!fin)
|
if(!fin)
|
||||||
{
|
{
|
||||||
cmSystemTools::Error("CopyFile failed to open input file \"",
|
cmSystemTools::Error("CopyFile failed to open input file \"",
|
||||||
source, "\"");
|
source, "\"");
|
||||||
}
|
}
|
||||||
std::ofstream fout(destination,
|
std::ofstream fout(destination,
|
||||||
std::ios::binary | std::ios::out | std::ios::trunc);
|
#ifdef _WIN32
|
||||||
|
std::ios::binary |
|
||||||
|
#endif
|
||||||
|
std::ios::out | std::ios::trunc);
|
||||||
if(!fout)
|
if(!fout)
|
||||||
{
|
{
|
||||||
cmSystemTools::Error("CopyFile failed to open output file \"",
|
cmSystemTools::Error("CopyFile failed to open output file \"",
|
||||||
|
|
Loading…
Reference in New Issue