sfizz icon indicating copy to clipboard operation
sfizz copied to clipboard

C++ errors

Open yurivict opened this issue 3 years ago • 2 comments

In file included from /disk-samsung/freebsd-ports/audio/sfizz/work/sfizz-1.2.0/plugins/editor/external/vstgui4/vstgui/lib/animation/animator.cpp:92:
In file included from /disk-samsung/freebsd-ports/audio/sfizz/work/sfizz-1.2.0/plugins/editor/external/vstgui4/vstgui/lib/animation/animator.h:7:
In file included from /disk-samsung/freebsd-ports/audio/sfizz/work/sfizz-1.2.0/plugins/editor/external/vstgui4/vstgui/lib/animation/../vstguifwd.h:7:
/disk-samsung/freebsd-ports/audio/sfizz/work/sfizz-1.2.0/plugins/editor/external/vstgui4/vstgui/lib/animation/../vstguibase.h:149:3: error: unsupported compiler
        #error unsupported compiler
         ^
/disk-samsung/freebsd-ports/audio/sfizz/work/sfizz-1.2.0/plugins/editor/external/vstgui4/vstgui/lib/animation/../vstguibase.h:358:16: error: no member named 'move' in namespace 'std'
                *this = std::move (op);
                        ~~~~~^
/disk-samsung/freebsd-ports/audio/sfizz/work/sfizz-1.2.0/plugins/editor/external/vstgui4/vstgui/lib/animation/../vstguibase.h:426:15: error: no member named 'move' in namespace 'std'
        *this = std::move (mp);
                ~~~~~^
/disk-samsung/freebsd-ports/audio/sfizz/work/sfizz-1.2.0/plugins/editor/external/vstgui4/vstgui/lib/animation/../vstguibase.h:475:39: error: no member named 'forward' in namespace 'std'
        return SharedPointer<I> (new I (std::forward<Args>(args)...), false);
                                        ~~~~~^
/disk-samsung/freebsd-ports/audio/sfizz/work/sfizz-1.2.0/plugins/editor/external/vstgui4/vstgui/lib/animation/../vstguibase.h:475:47: error: 'Args' does not refer to a value
        return SharedPointer<I> (new I (std::forward<Args>(args)...), false);
                                                     ^
/disk-samsung/freebsd-ports/audio/sfizz/work/sfizz-1.2.0/plugins/editor/external/vstgui4/vstgui/lib/animation/../vstguibase.h:472:32: note: declared here
template <class I, typename ...Args>
                               ^
In file included from /disk-samsung/freebsd-ports/audio/sfizz/work/sfizz-1.2.0/plugins/editor/external/vstgui4/vstgui/lib/animation/animator.cpp:98:
In file included from /disk-samsung/freebsd-ports/audio/sfizz/work/sfizz-1.2.0/plugins/editor/external/vstgui4/vstgui/lib/animation/../platform/platformfactory.h:8:
/disk-samsung/freebsd-ports/audio/sfizz/work/sfizz-1.2.0/plugins/editor/external/vstgui4/vstgui/lib/animation/../platform/platformfwd.h:34:1: error: static_assert failed "unknown platform"
static_assert (false, "unknown platform");
^              ~~~~~
In file included from /disk-samsung/freebsd-ports/audio/sfizz/work/sfizz-1.2.0/plugins/editor/external/vstgui4/vstgui/lib/animation/animator.cpp:98:
/disk-samsung/freebsd-ports/audio/sfizz/work/sfizz-1.2.0/plugins/editor/external/vstgui4/vstgui/lib/animation/../platform/platformfactory.h:21:20: error: unknown type name 'PlatformInstanceHandle'
void initPlatform (PlatformInstanceHandle instance);
                   ^
7 errors generated.

/disk-samsung/freebsd-ports/audio/sfizz/work/sfizz-1.2.0/plugins/editor/external/vstgui4/vstgui/lib/platform/linux/x11fileselector.cpp:209:7: error: use of undeclared identifier 'execvpe'; did you mean 'execve'?
                if (execvpe (argv[0], argv, envp) == -1)
                    ^~~~~~~
                    execve
/usr/include/unistd.h:336:6: note: 'execve' declared here
int      execve(const char *, char * const *, char * const *);
         ^
/disk-samsung/freebsd-ports/audio/sfizz/work/sfizz-1.2.0/plugins/editor/external/vstgui4/vstgui/lib/platform/linux/x11fileselector.cpp:237:15: warning: private field 'exDialogType' is not used [-Wunused-private-field]
        ExDialogType exDialogType{ExDialogType::none};
                     ^
1 warning and 1 error generated.

The first error unsupported compiler is bogus - it really checks OS, not compiler. The rest are likely results of missing include statements.

Version: 1.2.0 FreeBSD 13.1

yurivict avatar Jul 27 '22 03:07 yurivict

The first move/forward are either a missing #include <utility> or a C++11 flag that's not properly set up for this particular file.

The last error is my own patch, and execvpe has no equivalent in BSD land. I don't really have the spare time to support BSD at the moment but if you want to have a shot at these I'd gladly accept patches !

Note: all of these are problems in VSTGUI; our fork is at https://github.com/sfztools/vstgui if you want to submit tpatches there, or directly upstream even, although for other reasons we're not tracking the latest version right now.

paulfd avatar Jul 27 '22 09:07 paulfd

Once unsupported compiler was solved with

-#elif defined(__linux__)
+#elif defined(__linux__) || defined(__FreeBSD__)

the other errors disappeared.

The execvpe problem was patched with #define execvpe(a, b, c) execvp(a, b).

If you could add an option to use an external vstgui this would be the best solution.

yurivict avatar Jul 27 '22 20:07 yurivict