Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions cppwinrt/cppwinrt.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -52,14 +52,12 @@
<ClInclude Include="..\strings\base_collections_vector.h" />
<ClInclude Include="..\strings\base_composable.h" />
<ClInclude Include="..\strings\base_com_ptr.h" />
<ClInclude Include="..\strings\base_coroutine.h" />
<ClInclude Include="..\strings\base_coroutine_foundation.h" />
<ClInclude Include="..\strings\base_coroutine_system.h" />
<ClInclude Include="..\strings\base_coroutine_threadpool.h" />
<ClInclude Include="..\strings\base_coroutine_ui_core.h" />
<ClInclude Include="..\strings\base_deferral.h" />
<ClInclude Include="..\strings\base_delegate.h" />
<ClInclude Include="..\strings\base_dependencies.h" />
<ClInclude Include="..\strings\base_error.h" />
<ClInclude Include="..\strings\base_events.h" />
<ClInclude Include="..\strings\base_extern.h" />
Expand All @@ -68,6 +66,7 @@
<ClInclude Include="..\strings\base_handle.h" />
<ClInclude Include="..\strings\base_identity.h" />
<ClInclude Include="..\strings\base_implements.h" />
<ClInclude Include="..\strings\base_includes.h" />
<ClInclude Include="..\strings\base_lock.h" />
<ClInclude Include="..\strings\base_macros.h" />
<ClInclude Include="..\strings\base_marshaler.h" />
Expand Down
9 changes: 3 additions & 6 deletions cppwinrt/cppwinrt.vcxproj.filters
Original file line number Diff line number Diff line change
Expand Up @@ -76,9 +76,6 @@
<ClInclude Include="..\strings\base_delegate.h">
<Filter>strings</Filter>
</ClInclude>
<ClInclude Include="..\strings\base_dependencies.h">
<Filter>strings</Filter>
</ClInclude>
<ClInclude Include="..\strings\base_error.h">
<Filter>strings</Filter>
</ClInclude>
Expand Down Expand Up @@ -151,15 +148,15 @@
<ClInclude Include="..\strings\base_fast_forward.h">
<Filter>strings</Filter>
</ClInclude>
<ClInclude Include="..\strings\base_coroutine.h">
<Filter>strings</Filter>
</ClInclude>
<ClInclude Include="..\strings\base_deferral.h">
<Filter>strings</Filter>
</ClInclude>
<ClInclude Include="cmd_reader.h" />
<ClInclude Include="task_group.h" />
<ClInclude Include="text_writer.h" />
<ClInclude Include="..\strings\base_includes.h">
<Filter>strings</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="$(OutDir)version.rc" />
Expand Down
3 changes: 1 addition & 2 deletions cppwinrt/file_writers.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,7 @@ namespace cppwinrt
write_preamble(w);
write_open_file_guard(w, "BASE");

w.write(strings::base_dependencies);
w.write(strings::base_coroutine);
w.write(strings::base_includes);
w.write(strings::base_macros);
w.write(strings::base_types);
w.write(strings::base_extern);
Expand Down
18 changes: 13 additions & 5 deletions cppwinrt/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -289,16 +289,23 @@ Where <spec> is one or more of:

w.flush_to_console();
task_group group;
writer ixx;
write_preamble(ixx);
ixx.write("module;\n");
ixx.write(strings::base_includes);
ixx.write("\nexport module winrt;\n#define WINRT_EXPORT export\n\n");

for (auto&&[ns, members] : c.namespaces())
{
group.add([&, &ns = ns, &members = members]
if (!has_projected_types(members) || !settings.projection_filter.includes(members))
{
if (!has_projected_types(members) || !settings.projection_filter.includes(members))
{
return;
}
continue;
}

ixx.write("#include \"winrt/%.h\"\n", ns);

group.add([&, &ns = ns, &members = members]
{
write_namespace_0_h(ns, members);
write_namespace_1_h(ns, members);
write_namespace_2_h(ns, members);
Expand All @@ -309,6 +316,7 @@ Where <spec> is one or more of:
if (settings.base)
{
write_base_h();
ixx.flush_to_file(settings.output_folder + "winrt/winrt.ixx");
}

if (settings.component)
Expand Down
2 changes: 1 addition & 1 deletion strings/base_coroutine_foundation.h
Original file line number Diff line number Diff line change
Expand Up @@ -527,7 +527,7 @@ namespace winrt::impl
};
}

namespace std::experimental
WINRT_EXPORT namespace std::experimental
{
template <typename... Args>
struct coroutine_traits<winrt::Windows::Foundation::IAsyncAction, Args...>
Expand Down
39 changes: 0 additions & 39 deletions strings/base_dependencies.h

This file was deleted.

23 changes: 23 additions & 0 deletions strings/base_coroutine.h → strings/base_includes.h
Original file line number Diff line number Diff line change
@@ -1,4 +1,27 @@

#include <algorithm>
#include <array>
#include <atomic>
#include <charconv>
#include <chrono>
#include <cstddef>
#include <map>
#include <memory>
#include <optional>
#include <stdexcept>
#include <string_view>
#include <string>
#include <tuple>
#include <type_traits>
#include <unordered_map>
#include <utility>
#include <vector>

#if __has_include(<WindowsNumerics.impl.h>)
#define WINRT_IMPL_NUMERICS
#include <directxmath.h>
#endif

#ifndef __clang__

#include <experimental/coroutine>
Expand Down
14 changes: 14 additions & 0 deletions strings/base_macros.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,17 @@
#if defined(_RESUMABLE_FUNCTIONS_SUPPORTED) && !defined(__cpp_coroutines)
#define __cpp_coroutines
#endif

#ifndef WINRT_EXPORT
#define WINRT_EXPORT
#endif

#ifdef WINRT_IMPL_NUMERICS
#define _WINDOWS_NUMERICS_NAMESPACE_ winrt::Windows::Foundation::Numerics
#define _WINDOWS_NUMERICS_BEGIN_NAMESPACE_ WINRT_EXPORT namespace winrt::Windows::Foundation::Numerics
#define _WINDOWS_NUMERICS_END_NAMESPACE_
#include <WindowsNumerics.impl.h>
#undef _WINDOWS_NUMERICS_NAMESPACE_
#undef _WINDOWS_NUMERICS_BEGIN_NAMESPACE_
#undef _WINDOWS_NUMERICS_END_NAMESPACE_
#endif