From b7fb7e5fbadf797333fbe7aea4102d897fb18745 Mon Sep 17 00:00:00 2001 From: Tom Finegan Date: Tue, 3 Mar 2020 15:00:59 -0800 Subject: [PATCH] draco: StdioFileReader/Writer gcc 4.9/clang < 4 compatibility fix. Fixes https://github.com/google/draco/issues/582 --- CMakeLists.txt | 7 +++++-- src/draco/io/stdio_file_reader.cc | 5 +++++ src/draco/io/stdio_file_writer.cc | 5 +++++ 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7e79da7..0a32b16 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -58,9 +58,12 @@ option(BUILD_FOR_GLTF "" OFF) option(BUILD_MAYA_PLUGIN "Build plugin library for Maya." OFF) option(BUILD_USD_PLUGIN "Build plugin library for USD." OFF) -if(${CMAKE_CXX_COMPILER_ID} MATCHES GNU +if((${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU" AND ${CMAKE_CXX_COMPILER_VERSION} VERSION_LESS 5) - message(WARNING "GNU/GCC VERSION LESS THAN 5, ENABLING COMPATIBILITY MODE.") + OR (${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang" + AND ${CMAKE_CXX_COMPILER_VERSION} VERSION_LESS 4)) + message(WARNING + "GNU/GCC < v5 or Clang/LLVM < v4, ENABLING COMPATIBILITY MODE.") draco_enable_feature(FEATURE "DRACO_OLD_GCC") endif() diff --git a/src/draco/io/stdio_file_reader.cc b/src/draco/io/stdio_file_reader.cc index 560c3e9..2d1acb2 100644 --- a/src/draco/io/stdio_file_reader.cc +++ b/src/draco/io/stdio_file_reader.cc @@ -11,6 +11,7 @@ #include #endif +#include "draco/draco_features.h" #include "draco/io/file_reader_factory.h" namespace draco { @@ -46,7 +47,11 @@ std::unique_ptr StdioFileReader::Open( return nullptr; } +#ifndef DRACO_OLD_GCC return file; +#else + return std::move(file); +#endif } bool StdioFileReader::ReadFileToBuffer(std::vector *buffer) { diff --git a/src/draco/io/stdio_file_writer.cc b/src/draco/io/stdio_file_writer.cc index 454dda6..8c9778c 100644 --- a/src/draco/io/stdio_file_writer.cc +++ b/src/draco/io/stdio_file_writer.cc @@ -6,6 +6,7 @@ #include #include +#include "draco/draco_features.h" #include "draco/io/file_writer_factory.h" namespace draco { @@ -41,7 +42,11 @@ std::unique_ptr StdioFileWriter::Open( return nullptr; } +#ifndef DRACO_OLD_GCC return file; +#else + return std::move(file); +#endif } bool StdioFileWriter::Write(const char *buffer, size_t size) {