Como compilar um arquivo C ++ no WebAssembly?

Suponha que eu tenha um arquivo C ++ simples e independente (math.cpp) como isso:

int add(int x, int y) {
  return x + y;
}

Como eu o compilaria no WebAssembly (math.wasm)?

Nota: Estou usando a cadeia de ferramentas Clang.