Merge pull request #3493 from parnic/support-platforms-without-realpath

Fix build for platforms not supporting realpath
This commit is contained in:
Wouter van Oortmerssen 2016-01-06 11:52:37 -08:00
commit 6532bfce34
1 changed files with 12 additions and 8 deletions

View File

@ -219,15 +219,19 @@ inline void EnsureDirExists(const std::string &filepath) {
// Obtains the absolute path from any other path. // Obtains the absolute path from any other path.
// Returns the input path if the absolute path couldn't be resolved. // Returns the input path if the absolute path couldn't be resolved.
inline std::string AbsolutePath(const std::string &filepath) { inline std::string AbsolutePath(const std::string &filepath) {
#ifdef _WIN32 #ifdef FLATBUFFERS_NO_ABSOLUTE_PATH_RESOLUTION
char abs_path[MAX_PATH]; return filepath;
return GetFullPathNameA(filepath.c_str(), MAX_PATH, abs_path, nullptr)
#else #else
char abs_path[PATH_MAX]; #ifdef _WIN32
return realpath(filepath.c_str(), abs_path) char abs_path[MAX_PATH];
#endif return GetFullPathNameA(filepath.c_str(), MAX_PATH, abs_path, nullptr)
? abs_path #else
: filepath; char abs_path[PATH_MAX];
return realpath(filepath.c_str(), abs_path)
#endif
? abs_path
: filepath;
#endif // FLATBUFFERS_NO_ABSOLUTE_PATH_RESOLUTION
} }
// To and from UTF-8 unicode conversion functions // To and from UTF-8 unicode conversion functions