feat: start on WinRT

This commit is contained in:
Dexrn ZacAttack
2026-01-23 18:55:32 -08:00
parent 3b625a7caa
commit 5426cc2e29
5 changed files with 62 additions and 1 deletions

View File

@@ -4,9 +4,11 @@ project(WinDurango)
set(CMAKE_CXX_STANDARD 17)
add_subdirectory(projects/WinDurango.Common)
add_subdirectory(projects/WinDurango.WinRT)
add_subdirectory(projects/WinDurango.Kernel)
add_custom_target(WinDurango ALL DEPENDS
WinDurango.Common
WinDurango.WinRT
WinDurango.Kernel
)

View File

@@ -14,7 +14,7 @@ target_include_directories(WinDurango.Kernel PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
)
target_link_libraries(WinDurango.Kernel PUBLIC WinDurango.Common)
target_link_libraries(WinDurango.Kernel PUBLIC WinDurango.Common WinDurango.WinRT)
target_compile_definitions(WinDurango.Kernel PUBLIC
WINDURANGO_KERNEL_COMPILER_NAME="${CMAKE_CXX_COMPILER_ID}"

View File

@@ -0,0 +1,37 @@
cmake_minimum_required(VERSION 4.0)
project(WinDurango.WinRT VERSION 1.0.0)
set(VERSION_SUFFIX "-dev.0") # used for non-stable versions, otherwise blank
set(CMAKE_CXX_STANDARD 17)
set(FILES
"include/WinDurango.WinRT/Storage/AbstractStorage.h"
)
set(WINRT_USE_CROSS_PLATFORM OFF)
add_library(WinDurango.WinRT SHARED ${FILES})
target_include_directories(WinDurango.WinRT PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
)
target_link_libraries(WinDurango.WinRT PUBLIC WinDurango.Common)
target_compile_definitions(WinDurango.WinRT PUBLIC
WINDURANGO_WINRT_COMPILER_NAME="${CMAKE_CXX_COMPILER_ID}"
WINDURANGO_WINRT_PLATFORM_NAME="${CMAKE_SYSTEM_NAME}"
WINDURANGO_WINRT_PLATFORM_ARCH="${CMAKE_SYSTEM_PROCESSOR}"
WINDURANGO_WINRT_VERSION="${PROJECT_VERSION}${VERSION_SUFFIX}"
WINDURANGO_WINRT_RC_VERSION=${PROJECT_VERSION_MAJOR},${PROJECT_VERSION_MINOR},${PROJECT_VERSION_PATCH}
)
if (WINRT_USE_CROSS_PLATFORM STREQUAL ON)
target_compile_definitions(WinDurango.WinRT PUBLIC
WINRT_CROSS_PLATFORM)
endif()
unset(WINRT_USE_CROSS_PLATFORM CACHE)
set_target_properties(WinDurango.WinRT PROPERTIES LINKER_LANGUAGE CXX)
# todo needed?
#set_target_properties(WinDurango.WinRT PROPERTIES LIBRARY_OUTPUT_NAME "winrt")

View File

@@ -0,0 +1,5 @@
# WinDurango.WinRT
Impls for various WinRT classes, somewhat prioritizing crossplat
> [!IMPORTANT]
> When instantiating our classes, check for WINRT_CROSS_PLATFORM to determine which to instantiate.

View File

@@ -0,0 +1,17 @@
//
// Created by DexrnZacAttack on 1/23/26 using zPc-i2.
//
#ifndef WINDURANGO_ABSTRACTSTORAGE_H
#define WINDURANGO_ABSTRACTSTORAGE_H
namespace wd::winrt {
/** Interface for storage management, to be impl'd for uwp and crossplat */
class AbstractStorage {
public:
// todo can't make these static, what to do?
virtual void CreateFile(std::filesystem::path path) = 0; // todo maybe return stream type, todo can we use this in uwp context??? I forgor
virtual void CreateDirectory(std::filesystem::path path) = 0;
};
} // wd::winrt
#endif // WINDURANGO_ABSTRACTSTORAGE_H