aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2022-01-25 17:30:46 +0800
committercrupest <crupest@outlook.com>2022-01-25 17:30:46 +0800
commit2ed65999ef6f3e1156427dd3efe04353ae657882 (patch)
tree1c6618099e42887e96351c87cc8ce6b7c61b01f7 /src
parenta77fb1aaa4aa765ae51b3cb5a1f8d9c8c233b01a (diff)
downloadcru-2ed65999ef6f3e1156427dd3efe04353ae657882.tar.gz
cru-2ed65999ef6f3e1156427dd3efe04353ae657882.tar.bz2
cru-2ed65999ef6f3e1156427dd3efe04353ae657882.zip
...
Diffstat (limited to 'src')
-rw-r--r--src/common/CMakeLists.txt13
-rw-r--r--src/common/io/Resource.cpp20
-rw-r--r--src/common/platform/Exception.cpp1
-rw-r--r--src/common/platform/osx/Convert.cpp (renamed from src/osx/Convert.cpp)6
-rw-r--r--src/common/platform/osx/Exception.cpp1
-rw-r--r--src/common/platform/win/Exception.cpp (renamed from src/win/Exception.cpp)2
-rw-r--r--src/osx/CMakeLists.txt2
-rw-r--r--src/osx/Exception.cpp1
-rw-r--r--src/win/CMakeLists.txt3
-rw-r--r--src/win/HeapDebug.cpp9
10 files changed, 37 insertions, 21 deletions
diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt
index d8462abf..0316d9e6 100644
--- a/src/common/CMakeLists.txt
+++ b/src/common/CMakeLists.txt
@@ -7,7 +7,9 @@ add_library(cru_base SHARED
String.cpp
StringUtil.cpp
io/Stream.cpp
+ io/Resource.cpp
io/MemoryStream.cpp
+ platform/Exception.cpp
)
target_compile_definitions(cru_base PRIVATE CRU_BASE_EXPORT_API)
target_include_directories(cru_base PUBLIC ${CRU_INCLUDE_DIR})
@@ -20,9 +22,20 @@ if (UNIX)
)
endif()
+if (APPLE)
+ find_library(CORE_FOUNDATION CoreFoundation REQUIRED)
+ target_link_libraries(cru_base PUBLIC ${CORE_FOUNDATION})
+
+ target_sources(cru_base PRIVATE
+ platform/osx/Convert.cpp
+ platform/osx/Exception.cpp
+ )
+endif()
+
if (WIN32)
target_sources(cru_base PRIVATE
io/Win32FileStream.cpp
+ platform/win/Exception.cpp
)
endif()
diff --git a/src/common/io/Resource.cpp b/src/common/io/Resource.cpp
new file mode 100644
index 00000000..e2ff8004
--- /dev/null
+++ b/src/common/io/Resource.cpp
@@ -0,0 +1,20 @@
+#include "cru/common/io/Resource.hpp"
+#include "cru/common/Exception.hpp"
+
+#if defined(CRU_PLATFORM_OSX)
+#include <CoreFoundation/CoreFoundation.h>
+#elif defined(CRU_PLATFORM_WINDOWS)
+#endif
+
+namespace cru::io {
+std::unique_ptr<Stream> CreateStreamFromResourcePath(const String& path) {
+#if defined(CRU_PLATFORM_OSX)
+ // CFBundleRef main_bundle = CFBundleGetMainBundle();
+ throw Exception(u"Not implemented.");
+#elif defined(CRU_PLATFORM_WINDOWS)
+ throw Exception(u"Not implemented.");
+#else
+ throw Exception(u"Not implemented.");
+#endif
+}
+} // namespace cru::io
diff --git a/src/common/platform/Exception.cpp b/src/common/platform/Exception.cpp
new file mode 100644
index 00000000..c13c8b1e
--- /dev/null
+++ b/src/common/platform/Exception.cpp
@@ -0,0 +1 @@
+#include "cru/common/platform/Exception.hpp"
diff --git a/src/osx/Convert.cpp b/src/common/platform/osx/Convert.cpp
index 6e9692f2..e5105698 100644
--- a/src/osx/Convert.cpp
+++ b/src/common/platform/osx/Convert.cpp
@@ -1,8 +1,4 @@
-#include "cru/osx/Convert.hpp"
-
-#include "cru/common/StringUtil.hpp"
-
-#include <string>
+#include "cru/common/platform/osx/Convert.hpp"
namespace cru::platform::osx {
CFStringRef Convert(const String& string) {
diff --git a/src/common/platform/osx/Exception.cpp b/src/common/platform/osx/Exception.cpp
new file mode 100644
index 00000000..b02fd458
--- /dev/null
+++ b/src/common/platform/osx/Exception.cpp
@@ -0,0 +1 @@
+#include "cru/common/platform//osx/Exception.hpp"
diff --git a/src/win/Exception.cpp b/src/common/platform/win/Exception.cpp
index fb46f184..34ae8955 100644
--- a/src/win/Exception.cpp
+++ b/src/common/platform/win/Exception.cpp
@@ -1,4 +1,4 @@
-#include "cru/win/Exception.hpp"
+#include "cru/common/platform/win/Exception.hpp"
#include "cru/common/Format.hpp"
#include <optional>
diff --git a/src/osx/CMakeLists.txt b/src/osx/CMakeLists.txt
index 7f6a7538..ad591478 100644
--- a/src/osx/CMakeLists.txt
+++ b/src/osx/CMakeLists.txt
@@ -1,6 +1,4 @@
add_library(cru_osx_base SHARED
- Convert.cpp
- Exception.cpp
Resource.cpp
)
diff --git a/src/osx/Exception.cpp b/src/osx/Exception.cpp
deleted file mode 100644
index c7eef64b..00000000
--- a/src/osx/Exception.cpp
+++ /dev/null
@@ -1 +0,0 @@
-#include "cru/osx/Exception.hpp"
diff --git a/src/win/CMakeLists.txt b/src/win/CMakeLists.txt
index fe2cd635..e190e9a0 100644
--- a/src/win/CMakeLists.txt
+++ b/src/win/CMakeLists.txt
@@ -1,9 +1,6 @@
add_library(cru_win_base STATIC
DebugLogger.hpp
StdOutLogger.hpp
-
- Exception.cpp
- HeapDebug.cpp
)
target_compile_definitions(cru_win_base PUBLIC UNICODE _UNICODE) # use unicode
target_link_libraries(cru_win_base PUBLIC cru_base)
diff --git a/src/win/HeapDebug.cpp b/src/win/HeapDebug.cpp
deleted file mode 100644
index b1b9fe1a..00000000
--- a/src/win/HeapDebug.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-#include "cru/win/WinPreConfig.hpp"
-
-#include <crtdbg.h>
-
-namespace cru::platform {
-void SetupHeapDebug() {
- _CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);
-}
-} // namespace cru::platform