when trying to run any of the examples on my 2018 MacBook Pro running 10.14.3 I get the following error from the spirv_cross crate. Any idea why this is happening, is anyone else on Mac OS getting this?
error: failed to run custom build command for `spirv_cross v0.16.0`
Caused by:
process didn't exit successfully: `/Users/joshuabatty/Documents/Software/rust/crates/wgpu-rs/target/release/build/spirv_cross-59701dcd33135b84/build-script-build` (exit code: 1)
--- stdout
OPT_LEVEL = Some("3")
TARGET = Some("x86_64-apple-darwin")
HOST = Some("x86_64-apple-darwin")
CXX_x86_64-apple-darwin = None
CXX_x86_64_apple_darwin = None
HOST_CXX = None
CXX = None
CXXFLAGS_x86_64-apple-darwin = None
CXXFLAGS_x86_64_apple_darwin = None
HOST_CXXFLAGS = None
CXXFLAGS = None
CRATE_CC_NO_DEFAULTS = None
DEBUG = Some("false")
CARGO_CFG_TARGET_FEATURE = Some("fxsr,sse,sse2,sse3,ssse3")
CXX_x86_64-apple-darwin = None
CXX_x86_64_apple_darwin = None
HOST_CXX = None
CXX = None
CXXFLAGS_x86_64-apple-darwin = None
CXXFLAGS_x86_64_apple_darwin = None
HOST_CXXFLAGS = None
CXXFLAGS = None
CRATE_CC_NO_DEFAULTS = None
CARGO_CFG_TARGET_FEATURE = Some("fxsr,sse,sse2,sse3,ssse3")
running: "c++" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-Wall" "-Wextra" "-DSPIRV_CROSS_WRAPPER_GLSL" "-DSPIRV_CROSS_WRAPPER_HLSL" "-DSPIRV_CROSS_WRAPPER_MSL" "-o" "/Users/joshuabatty/Documents/Software/rust/crates/wgpu-rs/target/release/build/spirv_cross-bd9a701bfe2bfe93/out/src/wrapper.o" "-c" "src/wrapper.cpp"
cargo:warning=In file included from src/wrapper.cpp:4:
cargo:warning=In file included from src/vendor/SPIRV-Cross/spirv_cross_util.hpp:20:
cargo:warning=In file included from src/vendor/SPIRV-Cross/spirv_cross.hpp:21:
cargo:warning=In file included from src/vendor/SPIRV-Cross/spirv_cfg.hpp:20:
cargo:warning=In file included from src/vendor/SPIRV-Cross/spirv_common.hpp:21:
cargo:warning=src/vendor/SPIRV-Cross/spirv_cross_containers.hpp:69:2: error: unknown type name 'alignas'
cargo:warning= alignas(T) char aligned_char[sizeof(T) * N];
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_cross_containers.hpp:69:10: error: declaration of 'T' shadows template parameter
cargo:warning= alignas(T) char aligned_char[sizeof(T) * N];
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_cross_containers.hpp:45:20: note: template parameter is declared here
cargo:warning=template <typename T, size_t N>
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_cross_containers.hpp:69:12: error: expected ';' at end of declaration list
cargo:warning= alignas(T) char aligned_char[sizeof(T) * N];
cargo:warning= ^
cargo:warning= ;
cargo:warning=src/vendor/SPIRV-Cross/spirv_cross_containers.hpp:57:27: error: unknown type name 'T'
cargo:warning= return reinterpret_cast<T *>(aligned_char);
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_cross_containers.hpp:57:32: error: use of undeclared identifier 'aligned_char'
cargo:warning= return reinterpret_cast<T *>(aligned_char);
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_cross_containers.hpp:167:43: warning: reference qualifiers on functions are a C++11 extension [-Wc++11-extensions]
cargo:warning= explicit operator std::vector<T>() const &
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_cross_containers.hpp:167:2: warning: explicit conversion functions are a C++11 extension [-Wc++11-extensions]
cargo:warning= explicit operator std::vector<T>() const &
cargo:warning= ^~~~~~~~
cargo:warning=src/vendor/SPIRV-Cross/spirv_cross_containers.hpp:173:37: warning: reference qualifiers on functions are a C++11 extension [-Wc++11-extensions]
cargo:warning= explicit operator std::vector<T>() &&
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_cross_containers.hpp:173:2: warning: explicit conversion functions are a C++11 extension [-Wc++11-extensions]
cargo:warning= explicit operator std::vector<T>() &&
cargo:warning= ^~~~~~~~
cargo:warning=src/vendor/SPIRV-Cross/spirv_cross_containers.hpp:180:35: warning: deleted function definitions are a C++11 extension [-Wc++11-extensions]
cargo:warning= VectorView(const VectorView &) = delete;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_cross_containers.hpp:181:39: warning: deleted function definitions are a C++11 extension [-Wc++11-extensions]
cargo:warning= void operator=(const VectorView &) = delete;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_cross_containers.hpp:184:17: warning: defaulted function definitions are a C++11 extension [-Wc++11-extensions]
cargo:warning= VectorView() = default;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_cross_containers.hpp:185:9: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
cargo:warning= T *ptr = nullptr;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_cross_containers.hpp:186:21: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
cargo:warning= size_t buffer_size = 0;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_cross_containers.hpp:213:26: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
cargo:warning= SmallVector(SmallVector &&other) SPIRV_CROSS_NOEXCEPT : SmallVector()
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_cross_containers.hpp:213:34: error: expected ';' at end of declaration list
cargo:warning= SmallVector(SmallVector &&other) SPIRV_CROSS_NOEXCEPT : SmallVector()
cargo:warning= ^
cargo:warning= ;
cargo:warning=src/vendor/SPIRV-Cross/spirv_cross_containers.hpp:200:3: error: use of undeclared identifier 'buffer_capacity'
cargo:warning= buffer_capacity = N;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_cross_containers.hpp:206:3: warning: 'auto' type specifier is a C++11 extension [-Wc++11-extensions]
cargo:warning= auto count = size_t(arg_list_end - arg_list_begin);
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_cross_containers.hpp:207:3: error: use of undeclared identifier 'reserve'
cargo:warning= reserve(count);
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_cross_containers.hpp:502:16: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
cargo:warning=using Vector = SmallVector<T, 0>;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_cross_containers.hpp:521:30: warning: defaulted function definitions are a C++11 extension [-Wc++11-extensions]
cargo:warning= virtual ~ObjectPoolBase() = default;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_cross_containers.hpp:534:20: warning: variadic templates are a C++11 extension [-Wc++11-extensions]
cargo:warning= template <typename... P>
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_cross_containers.hpp:535:16: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
cargo:warning= T *allocate(P &&... p)
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_cross_containers.hpp:562:30: warning: 'override' keyword is a C++11 extension [-Wc++11-extensions]
cargo:warning= void free_opaque(void *ptr) override
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_cross_containers.hpp:584:46: error: a space is required between consecutive right angle brackets (use '> >')
cargo:warning= SmallVector<std::unique_ptr<T, MallocDeleter>> memory;
cargo:warning= ^~
cargo:warning= > >
cargo:warning=src/vendor/SPIRV-Cross/spirv_cross_containers.hpp:603:39: warning: deleted function definitions are a C++11 extension [-Wc++11-extensions]
cargo:warning= StringStream(const StringStream &) = delete;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_cross_containers.hpp:604:41: warning: deleted function definitions are a C++11 extension [-Wc++11-extensions]
cargo:warning= void operator=(const StringStream &) = delete;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_cross_containers.hpp:606:94: warning: default template arguments for a function template are a C++11 extension [-Wc++11-extensions]
cargo:warning= template <typename T, typename std::enable_if<!std::is_floating_point<T>::value, int>::type = 0>
cargo:warning= ^ ~
cargo:warning=src/vendor/SPIRV-Cross/spirv_cross_containers.hpp:679:16: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
cargo:warning= char *buffer = nullptr;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_cross_containers.hpp:680:17: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
cargo:warning= size_t offset = 0;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_cross_containers.hpp:681:15: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
cargo:warning= size_t size = 0;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_cross_containers.hpp:609:3: warning: 'auto' type specifier is a C++11 extension [-Wc++11-extensions]
cargo:warning= auto s = std::to_string(t);
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_cross_containers.hpp:617:3: warning: 'auto' type specifier is a C++11 extension [-Wc++11-extensions]
cargo:warning= auto s = std::to_string(v);
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_cross_containers.hpp:651:8: warning: 'auto' type specifier is a C++11 extension [-Wc++11-extensions]
cargo:warning= for (auto &saved : saved_buffers)
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_cross_containers.hpp:651:20: warning: range-based for loop is a C++11 extension [-Wc++11-extensions]
cargo:warning= for (auto &saved : saved_buffers)
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_cross_containers.hpp:656:8: warning: 'auto' type specifier is a C++11 extension [-Wc++11-extensions]
cargo:warning= for (auto &saved : saved_buffers)
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_cross_containers.hpp:656:20: warning: range-based for loop is a C++11 extension [-Wc++11-extensions]
cargo:warning= for (auto &saved : saved_buffers)
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_cross_containers.hpp:664:8: warning: 'auto' type specifier is a C++11 extension [-Wc++11-extensions]
cargo:warning= for (auto &saved : saved_buffers)
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_cross_containers.hpp:664:20: warning: range-based for loop is a C++11 extension [-Wc++11-extensions]
cargo:warning= for (auto &saved : saved_buffers)
cargo:warning= ^
cargo:warning=In file included from src/wrapper.cpp:4:
cargo:warning=In file included from src/vendor/SPIRV-Cross/spirv_cross_util.hpp:20:
cargo:warning=In file included from src/vendor/SPIRV-Cross/spirv_cross.hpp:21:
cargo:warning=In file included from src/vendor/SPIRV-Cross/spirv_cfg.hpp:20:
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:45:44: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
cargo:warning=void join_helper(StringStream<> &stream, T &&t)
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:50:31: warning: variadic templates are a C++11 extension [-Wc++11-extensions]
cargo:warning=template <typename T, typename... Ts>
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:51:44: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
cargo:warning=void join_helper(StringStream<> &stream, T &&t, Ts &&... ts)
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:51:52: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
cargo:warning=void join_helper(StringStream<> &stream, T &&t, Ts &&... ts)
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:61:13: warning: defaulted function definitions are a C++11 extension [-Wc++11-extensions]
cargo:warning= Bitset() = default;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:173:17: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
cargo:warning= uint64_t lower = 0;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:106:8: warning: 'auto' type specifier is a C++11 extension [-Wc++11-extensions]
cargo:warning= for (auto &v : higher)
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:106:16: warning: range-based for loop is a C++11 extension [-Wc++11-extensions]
cargo:warning= for (auto &v : higher)
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:115:8: warning: 'auto' type specifier is a C++11 extension [-Wc++11-extensions]
cargo:warning= for (auto &v : other.higher)
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:115:16: warning: range-based for loop is a C++11 extension [-Wc++11-extensions]
cargo:warning= for (auto &v : other.higher)
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:127:8: warning: 'auto' type specifier is a C++11 extension [-Wc++11-extensions]
cargo:warning= for (auto &v : higher)
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:127:16: warning: range-based for loop is a C++11 extension [-Wc++11-extensions]
cargo:warning= for (auto &v : higher)
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:156:8: warning: 'auto' type specifier is a C++11 extension [-Wc++11-extensions]
cargo:warning= for (auto &v : higher)
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:156:16: warning: range-based for loop is a C++11 extension [-Wc++11-extensions]
cargo:warning= for (auto &v : higher)
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:160:8: warning: 'auto' type specifier is a C++11 extension [-Wc++11-extensions]
cargo:warning= for (auto &v : bits)
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:160:16: warning: range-based for loop is a C++11 extension [-Wc++11-extensions]
cargo:warning= for (auto &v : bits)
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:178:19: warning: variadic templates are a C++11 extension [-Wc++11-extensions]
cargo:warning=template <typename... Ts>
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:179:21: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
cargo:warning=std::string join(Ts &&... ts)
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:189:7: warning: 'auto' type specifier is a C++11 extension [-Wc++11-extensions]
cargo:warning= for (auto &elem : list)
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:189:18: warning: range-based for loop is a C++11 extension [-Wc++11-extensions]
cargo:warning= for (auto &elem : list)
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:192:22: error: no matching member function for call to 'back'
cargo:warning= if (&elem != &list.back())
cargo:warning= ~~~~~^~~~
cargo:warning=src/vendor/SPIRV-Cross/spirv_cross_containers.hpp:148:5: note: candidate function not viable: no known conversion from 'const SmallVector<std::string>' (aka 'const SmallVector<basic_string<char, char_traits<char>, allocator<char> > >') to 'spirv_cross::VectorView<std::__1::basic_string<char> >' for object argument
cargo:warning= T &back()
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_cross_containers.hpp:153:11: note: candidate function not viable: no known conversion from 'const SmallVector<std::string>' (aka 'const SmallVector<basic_string<char, char_traits<char>, allocator<char> > >') to 'const spirv_cross::VectorView<std::__1::basic_string<char> >' for object argument
cargo:warning= const T &back() const
cargo:warning= ^
cargo:warning=In file included from src/wrapper.cpp:4:
cargo:warning=In file included from src/vendor/SPIRV-Cross/spirv_cross_util.hpp:20:
cargo:warning=In file included from src/vendor/SPIRV-Cross/spirv_cross.hpp:21:
cargo:warning=In file included from src/vendor/SPIRV-Cross/spirv_cfg.hpp:20:
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:200:93: warning: default template arguments for a function template are a C++11 extension [-Wc++11-extensions]
cargo:warning=template <typename T, typename std::enable_if<!std::is_floating_point<T>::value, int>::type = 0>
cargo:warning= ^ ~
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:267:14: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
cargo:warning= uint16_t op = 0;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:268:17: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
cargo:warning= uint16_t count = 0;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:269:18: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
cargo:warning= uint32_t offset = 0;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:270:18: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
cargo:warning= uint32_t length = 0;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:276:24: warning: defaulted function definitions are a C++11 extension [-Wc++11-extensions]
cargo:warning= virtual ~IVariant() = default;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:278:16: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
cargo:warning= uint32_t self = 0;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:319:2: warning: 'override' keyword is a C++11 extension [-Wc++11-extensions]
cargo:warning= SPIRV_CROSS_DECLARE_CLONE(SPIRUndef)
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:282:40: note: expanded from macro 'SPIRV_CROSS_DECLARE_CLONE'
cargo:warning= IVariant *clone(ObjectPoolBase *pool) override \
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:336:2: warning: 'override' keyword is a C++11 extension [-Wc++11-extensions]
cargo:warning= SPIRV_CROSS_DECLARE_CLONE(SPIRString)
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:282:40: note: expanded from macro 'SPIRV_CROSS_DECLARE_CLONE'
cargo:warning= IVariant *clone(ObjectPoolBase *pool) override \
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:322:8: error: exception specification of overriding function is more lax than base version
cargo:warning=struct SPIRString : IVariant
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:322:8: note: while declaring the implicit destructor for 'SPIRString'
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:276:10: note: overridden virtual function is here
cargo:warning= virtual ~IVariant() = default;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:357:2: warning: 'override' keyword is a C++11 extension [-Wc++11-extensions]
cargo:warning= SPIRV_CROSS_DECLARE_CLONE(SPIRCombinedImageSampler)
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:282:40: note: expanded from macro 'SPIRV_CROSS_DECLARE_CLONE'
cargo:warning= IVariant *clone(ObjectPoolBase *pool) override \
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:378:2: warning: 'override' keyword is a C++11 extension [-Wc++11-extensions]
cargo:warning= SPIRV_CROSS_DECLARE_CLONE(SPIRConstantOp)
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:282:40: note: expanded from macro 'SPIRV_CROSS_DECLARE_CLONE'
cargo:warning= IVariant *clone(ObjectPoolBase *pool) override \
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:378:2: error: cannot initialize return object of type 'spirv_cross::IVariant *' with an rvalue of type 'spirv_cross::SPIRConstantOp *'
cargo:warning= SPIRV_CROSS_DECLARE_CLONE(SPIRConstantOp)
cargo:warning= ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:284:10: note: expanded from macro 'SPIRV_CROSS_DECLARE_CLONE'
cargo:warning= return static_cast<ObjectPool<T> *>(pool)->allocate(*this); \
cargo:warning= ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:417:20: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
cargo:warning= BaseType basetype = Unknown;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:418:17: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
cargo:warning= uint32_t width = 0;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:419:19: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
cargo:warning= uint32_t vecsize = 1;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:420:19: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
cargo:warning= uint32_t columns = 1;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:434:25: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
cargo:warning= uint32_t pointer_depth = 0;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:435:15: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
cargo:warning= bool pointer = false;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:437:28: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
cargo:warning= spv::StorageClass storage = spv::StorageClassGeneric;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:456:22: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
cargo:warning= uint32_t type_alias = 0;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:460:23: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
cargo:warning= uint32_t parent_type = 0;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:465:2: warning: 'override' keyword is a C++11 extension [-Wc++11-extensions]
cargo:warning= SPIRV_CROSS_DECLARE_CLONE(SPIRType)
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:282:40: note: expanded from macro 'SPIRV_CROSS_DECLARE_CLONE'
cargo:warning= IVariant *clone(ObjectPoolBase *pool) override \
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:465:2: error: cannot initialize return object of type 'spirv_cross::IVariant *' with an rvalue of type 'spirv_cross::SPIRType *'
cargo:warning= SPIRV_CROSS_DECLARE_CLONE(SPIRType)
cargo:warning= ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:284:10: note: expanded from macro 'SPIRV_CROSS_DECLARE_CLONE'
cargo:warning= return static_cast<ObjectPool<T> *>(pool)->allocate(*this); \
cargo:warning= ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:491:2: warning: 'override' keyword is a C++11 extension [-Wc++11-extensions]
cargo:warning= SPIRV_CROSS_DECLARE_CLONE(SPIRExtension)
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:282:40: note: expanded from macro 'SPIRV_CROSS_DECLARE_CLONE'
cargo:warning= IVariant *clone(ObjectPoolBase *pool) override \
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:505:21: warning: defaulted function definitions are a C++11 extension [-Wc++11-extensions]
cargo:warning= SPIREntryPoint() = default;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:507:16: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
cargo:warning= uint32_t self = 0;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:515:14: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
cargo:warning= uint32_t x = 0, y = 0, z = 0;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:515:21: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
cargo:warning= uint32_t x = 0, y = 0, z = 0;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:515:28: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
cargo:warning= uint32_t x = 0, y = 0, z = 0;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:516:21: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
cargo:warning= uint32_t constant = 0; // Workgroup size can be expressed as a constant/spec-constant instead.
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:518:23: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
cargo:warning= uint32_t invocations = 0;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:519:27: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
cargo:warning= uint32_t output_vertices = 0;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:520:28: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
cargo:warning= spv::ExecutionModel model = spv::ExecutionModelMax;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:541:27: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
cargo:warning= uint32_t base_expression = 0;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:544:27: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
cargo:warning= uint32_t expression_type = 0;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:548:23: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
cargo:warning= uint32_t loaded_from = 0;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:554:17: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
cargo:warning= bool immutable = false;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:558:22: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
cargo:warning= bool need_transpose = false;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:561:20: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
cargo:warning= bool access_chain = false;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:570:2: warning: 'override' keyword is a C++11 extension [-Wc++11-extensions]
cargo:warning= SPIRV_CROSS_DECLARE_CLONE(SPIRExpression)
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:282:40: note: expanded from macro 'SPIRV_CROSS_DECLARE_CLONE'
cargo:warning= IVariant *clone(ObjectPoolBase *pool) override \
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:570:2: error: cannot initialize return object of type 'spirv_cross::IVariant *' with an rvalue of type 'spirv_cross::SPIRExpression *'
cargo:warning= SPIRV_CROSS_DECLARE_CLONE(SPIRExpression)
cargo:warning= ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:284:10: note: expanded from macro 'SPIRV_CROSS_DECLARE_CLONE'
cargo:warning= return static_cast<ObjectPool<T> *>(pool)->allocate(*this); \
cargo:warning= ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:588:2: warning: 'override' keyword is a C++11 extension [-Wc++11-extensions]
cargo:warning= SPIRV_CROSS_DECLARE_CLONE(SPIRFunctionPrototype)
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:282:40: note: expanded from macro 'SPIRV_CROSS_DECLARE_CLONE'
cargo:warning= IVariant *clone(ObjectPoolBase *pool) override \
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:588:2: error: cannot initialize return object of type 'spirv_cross::IVariant *' with an rvalue of type 'spirv_cross::SPIRFunctionPrototype *'
cargo:warning= SPIRV_CROSS_DECLARE_CLONE(SPIRFunctionPrototype)
cargo:warning= ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:284:10: note: expanded from macro 'SPIRV_CROSS_DECLARE_CLONE'
cargo:warning= return static_cast<ObjectPool<T> *>(pool)->allocate(*this); \
cargo:warning= ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:657:24: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
cargo:warning= Terminator terminator = Unknown;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:658:14: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
cargo:warning= Merge merge = MergeNone;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:659:13: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
cargo:warning= Hints hint = HintNone;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:660:22: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
cargo:warning= uint32_t next_block = 0;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:661:23: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
cargo:warning= uint32_t merge_block = 0;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:662:26: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
cargo:warning= uint32_t continue_block = 0;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:664:24: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
cargo:warning= uint32_t return_value = 0; // If 0, return nothing (void).
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:665:21: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
cargo:warning= uint32_t condition = 0;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:666:22: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
cargo:warning= uint32_t true_block = 0;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:667:23: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
cargo:warning= uint32_t false_block = 0;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:668:25: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
cargo:warning= uint32_t default_block = 0;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:684:42: error: a space is required between consecutive right angle brackets (use '> >')
cargo:warning= SmallVector<std::pair<uint32_t, uint32_t>> declare_temporary;
cargo:warning= ^~
cargo:warning= > >
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:688:42: error: a space is required between consecutive right angle brackets (use '> >')
cargo:warning= SmallVector<std::pair<uint32_t, uint32_t>> potential_declare_temporary;
cargo:warning= ^~
cargo:warning= > >
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:699:34: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
cargo:warning= bool disable_block_optimization = false;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:702:24: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
cargo:warning= bool complex_continue = false;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:705:25: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
cargo:warning= bool need_ladder_break = false;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:709:33: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
cargo:warning= uint32_t ignore_phi_from_block = 0;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:713:26: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
cargo:warning= uint32_t loop_dominator = 0;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:729:2: warning: 'override' keyword is a C++11 extension [-Wc++11-extensions]
cargo:warning= SPIRV_CROSS_DECLARE_CLONE(SPIRBlock)
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:282:40: note: expanded from macro 'SPIRV_CROSS_DECLARE_CLONE'
cargo:warning= IVariant *clone(ObjectPoolBase *pool) override \
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:729:2: error: cannot initialize return object of type 'spirv_cross::IVariant *' with an rvalue of type 'spirv_cross::SPIRBlock *'
cargo:warning= SPIRV_CROSS_DECLARE_CLONE(SPIRBlock)
cargo:warning= ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:284:10: note: expanded from macro 'SPIRV_CROSS_DECLARE_CLONE'
cargo:warning= return static_cast<ObjectPool<T> *>(pool)->allocate(*this); \
cargo:warning= ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:787:23: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
cargo:warning= uint32_t entry_block = 0;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:793:20: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
cargo:warning= uint32_t file_id = 0;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:794:25: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
cargo:warning= uint32_t line_literal = 0;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:813:29: warning: use of right-shift operator ('>>') in template argument will require parentheses in C++11 [-Wc++11-compat]
cargo:warning= Vector<std::function<void()>> fixup_hooks_out;
cargo:warning= ^
cargo:warning=src/vendor/SPIRV-Cross/spirv_common.hpp:813:32: error: use of undeclared identifier 'fixup_hooks_out'
cargo:warning= Vector<std::function<void()>> fixup_hooks_out;
cargo:warning= ^
cargo:warning=fatal error: too many errors emitted, stopping now [-ferror-limit=]
cargo:warning=110 warnings and 20 errors generated.
exit code: 1
--- stderr
error occurred: Command "c++" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-Wall" "-Wextra" "-DSPIRV_CROSS_WRAPPER_GLSL" "-DSPIRV_CROSS_WRAPPER_HLSL" "-DSPIRV_CROSS_WRAPPER_MSL" "-o" "/Users/joshuabatty/Documents/Software/rust/crates/wgpu-rs/target/release/build/spirv_cross-bd9a701bfe2bfe93/out/src/wrapper.o" "-c" "src/wrapper.cpp" with args "c++" did not execute successfully (status code exit code: 1).
warning: build failed, waiting for other jobs to finish...
error: build failed
looks like your clang version is too old?
cc @grovesNL
perfect, seems that was the case, upgraded Xcode to get the latest clang and all works fine now. Thanks @kvark!
Have exactly the same problem.
$ c++ --version
Apple clang version 11.0.3 (clang-1103.0.32.62)
Target: x86_64-apple-darwin19.6.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
@JoshuaBatty, how did you fix the problem? Tried to reinstall everything, still don't work.
What version of Xcode do you have installed?
Here is my terminal output if it helps
$ c++ --version
Apple clang version 11.0.0 (clang-1100.0.33.17)
Target: x86_64-apple-darwin18.7.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
Great, thanks for your reply!
I've managed to fix the problem by just removing the target folder and running cargo run again with the correct c++ version.
Most helpful comment
perfect, seems that was the case, upgraded Xcode to get the latest clang and all works fine now. Thanks @kvark!