Raw build didn't work for me on first attempt. Any ideas?
[ 20%] Building CXX object CMakeFiles/datachannel-wasm.dir/wasm/src/channel.cpp.o
[ 40%] Building CXX object CMakeFiles/datachannel-wasm.dir/wasm/src/datachannel.cpp.o
In file included from /home/jacob/projects/datachannel-wasm/wasm/src/datachannel.cpp:22:
/home/jacob/projects/datachannel-wasm/wasm/include/rtc/datachannel.hpp:38:47: error: non-virtual member function marked 'override' hides virtual member function
void send(std::variant<binary, string> data) override;
^
/home/jacob/projects/datachannel-wasm/wasm/include/rtc/channel.hpp:37:15: note: hidden overloaded virtual function 'rtc::Channel::send' declared here: type mismatch at 1st parameter ('const std::variant<binary, string> &' (aka 'const variant<vector<std::byte>, basic_string<char, char_traits<char>, allocator<char>>> &') vs 'std::variant<binary, string>' (aka 'variant<vector<std::byte>, basic_string<char, char_traits<char>, allocator<char>>>'))
virtual void send(const std::variant<binary, string> &data) = 0;
^
In file included from /home/jacob/projects/datachannel-wasm/wasm/src/datachannel.cpp:22:
/home/jacob/projects/datachannel-wasm/wasm/include/rtc/datachannel.hpp:32:7: warning: abstract class is marked 'final' [-Wabstract-final-class]
class DataChannel final : public Channel {
^
/home/jacob/projects/datachannel-wasm/wasm/include/rtc/channel.hpp:37:15: note: unimplemented pure virtual method 'send' in 'DataChannel'
virtual void send(const std::variant<binary, string> &data) = 0;
^
/home/jacob/projects/datachannel-wasm/wasm/src/channel.cpp:60:15: error: out-of-line definition of 'triggerMessage' does not match any declaration in 'rtc::Channel'
void Channel::triggerMessage(const std::variant<binary, string> &data) {
^~~~~~~~~~~~~~
/home/jacob/projects/datachannel-wasm/wasm/include/rtc/channel.hpp:53:30: note: type of 1st parameter of member declaration does not match definition ('std::variant<binary, string>' (aka 'variant<vector<std::byte>, basic_string<char, char_traits<char>, allocator<char>>>') vs 'const std::variant<binary, string> &' (aka 'const variant<vector<std::byte>, basic_string<char, char_traits<char>, allocator<char>>> &'))
virtual void triggerMessage(std::variant<binary, string> data);
^
1 warning and 1 error generated.
em++: error: '/home/jacob/projects/emsdk/upstream/bin/clang++ -target wasm32-unknown-emscripten -D__EMSCRIPTEN_major__=2 -D__EMSCRIPTEN_minor__=0 -D__EMSCRIPTEN_tiny__=8 -D_LIBCPP_ABI_VERSION=2 -Dunix -D__unix -D__unix__ -Werror=implicit-function-declaration -Xclang -nostdsysteminc -Xclang -isystem/home/jacob/projects/emsdk/upstream/emscripten/system/include/libcxx -Xclang -isystem/home/jacob/projects/emsdk/upstream/emscripten/system/lib/libcxxabi/include -Xclang -isystem/home/jacob/projects/emsdk/upstream/emscripten/system/include/compat -Xclang -isystem/home/jacob/projects/emsdk/upstream/emscripten/system/include -Xclang -isystem/home/jacob/projects/emsdk/upstream/emscripten/system/include/libc -Xclang -isystem/home/jacob/projects/emsdk/upstream/emscripten/system/lib/libc/musl/arch/emscripten -Xclang -isystem/home/jacob/projects/emsdk/upstream/emscripten/system/local/include -Xclang -isystem/home/jacob/projects/emsdk/upstream/emscripten/system/include/SSE -Xclang -isystem/home/jacob/projects/emsdk/upstream/emscripten/system/include/neon -Xclang -isystem/home/jacob/projects/emsdk/upstream/emscripten/system/lib/compiler-rt/include -Xclang -isystem/home/jacob/projects/emsdk/upstream/emscripten/system/lib/libunwind/include -Xclang -isystem/home/jacob/projects/emsdk/upstream/emscripten/cache/wasm/include -DEMSCRIPTEN -fignore-exceptions -I/home/jacob/projects/datachannel-wasm/wasm/include -I/home/jacob/projects/datachannel-wasm/wasm/include/rtc -std=gnu++17 -o CMakeFiles/datachannel-wasm.dir/wasm/src/datachannel.cpp.o -c /home/jacob/projects/datachannel-wasm/wasm/src/datachannel.cpp -Xclang -isystem/home/jacob/projects/emsdk/upstream/emscripten/system/include/SDL -c -o CMakeFiles/datachannel-wasm.dir/wasm/src/datachannel.cpp.o -mllvm -combiner-global-alias-analysis=false -mllvm -enable-emscripten-sjlj -mllvm -disable-lsr' failed (1)
make[2]: *** [CMakeFiles/datachannel-wasm.dir/build.make:78: CMakeFiles/datachannel-wasm.dir/wasm/src/datachannel.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
1 error generated.
em++: error: '/home/jacob/projects/emsdk/upstream/bin/clang++ -target wasm32-unknown-emscripten -D__EMSCRIPTEN_major__=2 -D__EMSCRIPTEN_minor__=0 -D__EMSCRIPTEN_tiny__=8 -D_LIBCPP_ABI_VERSION=2 -Dunix -D__unix -D__unix__ -Werror=implicit-function-declaration -Xclang -nostdsysteminc -Xclang -isystem/home/jacob/projects/emsdk/upstream/emscripten/system/include/libcxx -Xclang -isystem/home/jacob/projects/emsdk/upstream/emscripten/system/lib/libcxxabi/include -Xclang -isystem/home/jacob/projects/emsdk/upstream/emscripten/system/include/compat -Xclang -isystem/home/jacob/projects/emsdk/upstream/emscripten/system/include -Xclang -isystem/home/jacob/projects/emsdk/upstream/emscripten/system/include/libc -Xclang -isystem/home/jacob/projects/emsdk/upstream/emscripten/system/lib/libc/musl/arch/emscripten -Xclang -isystem/home/jacob/projects/emsdk/upstream/emscripten/system/local/include -Xclang -isystem/home/jacob/projects/emsdk/upstream/emscripten/system/include/SSE -Xclang -isystem/home/jacob/projects/emsdk/upstream/emscripten/system/include/neon -Xclang -isystem/home/jacob/projects/emsdk/upstream/emscripten/system/lib/compiler-rt/include -Xclang -isystem/home/jacob/projects/emsdk/upstream/emscripten/system/lib/libunwind/include -Xclang -isystem/home/jacob/projects/emsdk/upstream/emscripten/cache/wasm/include -DEMSCRIPTEN -fignore-exceptions -I/home/jacob/projects/datachannel-wasm/wasm/include -I/home/jacob/projects/datachannel-wasm/wasm/include/rtc -std=gnu++17 -o CMakeFiles/datachannel-wasm.dir/wasm/src/channel.cpp.o -c /home/jacob/projects/datachannel-wasm/wasm/src/channel.cpp -Xclang -isystem/home/jacob/projects/emsdk/upstream/emscripten/system/include/SDL -c -o CMakeFiles/datachannel-wasm.dir/wasm/src/channel.cpp.o -mllvm -combiner-global-alias-analysis=false -mllvm -enable-emscripten-sjlj -mllvm -disable-lsr' failed (1)
make[2]: *** [CMakeFiles/datachannel-wasm.dir/build.make:64: CMakeFiles/datachannel-wasm.dir/wasm/src/channel.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:76: CMakeFiles/datachannel-wasm.dir/all] Error 2
make: *** [Makefile:84: all] Error 2