Wgpu-rs: example fail to build on Mac because of spirv_cross

Created on 29 Dec 2019  路  5Comments  路  Source: gfx-rs/wgpu-rs

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
bug

Most helpful comment

perfect, seems that was the case, upgraded Xcode to get the latest clang and all works fine now. Thanks @kvark!

All 5 comments

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.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

branpk picture branpk  路  3Comments

chinedufn picture chinedufn  路  3Comments

MarioSieg picture MarioSieg  路  4Comments

donpdonp picture donpdonp  路  3Comments

lordnoriyuki picture lordnoriyuki  路  4Comments