diff options
author | crupest <crupest@outlook.com> | 2022-09-29 21:01:54 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2022-09-29 21:01:54 +0800 |
commit | df8b9536b1b351a5f8d3809405a89aa5df79aee9 (patch) | |
tree | 6dac3f5ea8ef0a0178fadd5e07ccc0f23e1f3ece | |
parent | 65f920e9b88dc89124b286d82668ece9178a665f (diff) | |
download | cru-df8b9536b1b351a5f8d3809405a89aa5df79aee9.tar.gz cru-df8b9536b1b351a5f8d3809405a89aa5df79aee9.tar.bz2 cru-df8b9536b1b351a5f8d3809405a89aa5df79aee9.zip |
...
-rw-r--r-- | include/cru/common/platform/web/WebException.h | 16 | ||||
-rw-r--r-- | include/cru/common/platform/web/WebFileStream.h | 21 | ||||
-rw-r--r-- | src/common/CMakeLists.txt | 10 | ||||
-rw-r--r-- | src/common/platform/web/WebException.cpp | 1 | ||||
-rw-r--r-- | src/common/platform/web/WebFileStream.cpp | 1 |
5 files changed, 49 insertions, 0 deletions
diff --git a/include/cru/common/platform/web/WebException.h b/include/cru/common/platform/web/WebException.h new file mode 100644 index 00000000..d98b8943 --- /dev/null +++ b/include/cru/common/platform/web/WebException.h @@ -0,0 +1,16 @@ +#pragma once + +#include "../../PreConfig.h" + +#ifdef CRU_PLATFORM_EMSCRIPTEN + +#include "../Exception.h" + +namespace cru::platform::web { +class WebException : public PlatformException { + public: + using PlatformException::PlatformException; +}; +} // namespace cru::platform::web + +#endif diff --git a/include/cru/common/platform/web/WebFileStream.h b/include/cru/common/platform/web/WebFileStream.h new file mode 100644 index 00000000..66ee0903 --- /dev/null +++ b/include/cru/common/platform/web/WebFileStream.h @@ -0,0 +1,21 @@ +#pragma once + +#include "../../PreConfig.h" + +#ifdef CRU_PLATFORM_EMSCRIPTEN + +#include "../../io/Stream.h" + +namespace cru::platform::web { +/** + * \remark Web just hates filesystems. But luckily emscripten just creates a + * good simulation of it. All we need to do is to use the C api and let + * emscripten take care of it for us. + */ +class WebFileStream : public io::Stream { + public: + // TODO: go on this! +}; +} // namespace cru::platform::web + +#endif diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt index 119bbbee..fb2dd471 100644 --- a/src/common/CMakeLists.txt +++ b/src/common/CMakeLists.txt @@ -38,6 +38,16 @@ if (APPLE) ) endif() +if (EMSCRIPTEN) + target_compile_options(CruBase PUBLIC "-fwasm-exceptions") + target_link_options(CruBase PUBLIC "-fwasm-exceptions") + + target_sources(CruBase PRIVATE + platform/web/WebException.cpp + platform/web/WebFileStream.cpp + ) +endif() + if (WIN32) target_sources(CruBase PRIVATE platform/win/BridgeComStream.cpp diff --git a/src/common/platform/web/WebException.cpp b/src/common/platform/web/WebException.cpp new file mode 100644 index 00000000..30f9d1f0 --- /dev/null +++ b/src/common/platform/web/WebException.cpp @@ -0,0 +1 @@ +#include "cru/common/platform/web/WebException.h" diff --git a/src/common/platform/web/WebFileStream.cpp b/src/common/platform/web/WebFileStream.cpp new file mode 100644 index 00000000..2e45648e --- /dev/null +++ b/src/common/platform/web/WebFileStream.cpp @@ -0,0 +1 @@ +#include "cru/common/platform/web/WebFileStream.h" |