Граф коммитов

561 Коммитов

Автор SHA1 Сообщение Дата
Kenny Kerr 71e23aa89b
Merge branch 'master' into sans-load-library 2024-04-17 15:58:37 -05:00
Kenny Kerr 419b4be2f6 Avoid LoadLibrary 2024-04-16 14:51:16 -05:00
Dependabot a22626ae6f Merge pull request 10563206 from dependabot/nuget/vsix/Newtonsoft.Json-13.0.1 into master 2024-04-16 19:50:15 +00:00
Josh Soref 881b5614b8
Spelling (#1412) 2024-04-06 07:17:18 -05:00
Josh Soref bc19737a14
Use latest cache action (#1411) 2024-04-05 17:27:02 -05:00
Scott Jones d2a66776bb
Remove references to stale winmd files to fix incremental builds (#1404)
The original attempt at a fix for this was too aggressive:
https://github.com/microsoft/cppwinrt/pull/1381/files

This fix is targeted specifically at removing references to stale winmd files that have yet to be copied from referenced projects (e.g., from a runtime component to an app).
2024-04-05 13:15:18 -07:00
Josh Soref e03bdc4e39
Use latest upload/download actions (#1410) 2024-04-05 13:16:37 -05:00
Kenny Kerr 17d095ac93
Fix build following dependabot updates (#1409) 2024-04-05 09:39:24 -05:00
Kenny Kerr 2b8fe6e000 Revert "Bump actions/upload-artifact from 3 to 4 (#1407)" 2024-04-05 08:35:15 -05:00
dependabot[bot] ea187691c1
Bump actions/download-artifact from 3 to 4 (#1408) 2024-04-05 08:11:19 -05:00
dependabot[bot] 6f7495288c
Bump actions/upload-artifact from 3 to 4 (#1407) 2024-04-05 07:59:41 -05:00
dependabot[bot] 523eda71a6
Bump actions/stale from 6 to 9 (#1405) 2024-04-05 07:56:22 -05:00
dependabot[bot] dfad7ed2ca
Bump actions/checkout from 3 to 4 (#1406) 2024-04-05 07:55:51 -05:00
Kenny Kerr f0ce6c6798
Create dependabot.yml 2024-04-05 07:52:22 -05:00
TDBuild adc6ef9318 TDBuild - updating localized resource files. 2024-03-31 05:01:31 +00:00
Ryan Shepherd bdf6dc462b
Merlinbot baseline (#1401)
* Merged PR 9973274: Auto-generated baselines by 1ES Pipeline Templates

This pull request includes baselines **with an expiration date of 180 days from now** automatically generated for your 1ES PT-based pipelines. Complete this pull request as soon as possible to make sure that your pipeline becomes compliant. Longer delays in completing this PR can trigger additional emails or S360 alerts in the future.

1ES PT Auto-baselining feature helps capture existing violations in your repo and ensures to break your pipeline only for newly introduced SDL violations after baselining. Running SDL tools in break mode is required for your pipeline to be compliant. Go to https://aka.ms/1espt-autobaselining for more details.

* Merged PR 9973274: Auto-generated baselines by 1ES Pipeline Templates

This pull request includes baselines **with an expiration date of 180 days from now** automatically generated for your 1ES PT-based pipelines. Complete this pull request as soon as possible to make sure that your pipeline becomes compliant. Longer delays in completing this PR can trigger additional emails or S360 alerts in the future.

1ES PT Auto-baselining feature helps capture existing violations in your repo and ensures to break your pipeline only for newly introduced SDL violations after baselining. Running SDL tools in break mode is required for your pipeline to be compliant. Go to https://aka.ms/1espt-autobaselining for more details.

---------

Co-authored-by: MerlinBot <MerlinBot>
2024-03-29 10:42:29 -07:00
Dan Legg 6dccf9ef88
Pipeline changes to build, publish, and test (#1400)
Co-authored-by: Dan Legg <dalegg@microsoft.com>
2024-03-28 18:06:25 -07:00
Kenny Kerr e69ff22721
Remove dead code related to Windows 7 support (#1390) 2024-02-08 12:46:38 -06:00
Charles Milette 91f485fbf2
Remove double forward (#1387)
* Remove double forward

* Fix compilation issues
2024-01-22 11:47:43 -08:00
Kenny Kerr 2bfcd7524a
Fail gracefully when error reporting is suppressed (#1386) 2024-01-16 13:00:38 -06:00
Ryan Shepherd 25a14f8965
Update build.yml for Azure Pipelines (#1384)
#1338 changed the NuGet version to a property, but didn't update the build.yml to do the same thing
2024-01-11 20:12:06 -08:00
Scott Jones cb674723b4
CppWinRTAddXamlReferences to not use outputs as inputs (#1381)
Incremental builds fail when a referenced project's winmd has been updated.  This is because the CppWinRT reference projection is properly using project's referenced winmds as inputs.  But the MarkupCompilePass2 target is using XamlReferencesToCompile, which has been set here to use previously copied output files.
2023-12-28 10:59:33 -08:00
David Machaj 5ef408f8b0
User/dmachaj/slim source location (#1379)
* First draft of slim_source_location

* Fix build breaks from first impl

* Fix failing test case
2023-12-22 11:47:37 -08:00
Manodasan Wignarajah 2511bf7fcb
Update pool (#1374) 2023-12-06 15:33:21 -08:00
Raymond Chen fc587f31f9
Allow delegates to be created with weak reference + lambda (#1372)
We have found that a very common pattern for event handlers is
to capture a weak reference into a lambda, and in the event handler,
try to upgrade the weak reference to a strong one, and if so, do some work:

```cpp
widget.Closed([weak = get_weak(), data](auto&& sender, auto&& args)
{
    if (auto strongThis = weak.get())
    {
        strongThis->do_all_the_things(data);
    }
});
```

This commit extends the existing delegate constructors to permit a
`winrt::weak_ref` + lambda (or `std::weak_ptr` + lambda), which
simplifies the above to

```cpp
widget.Closed({ get_weak(), [this, data](auto&& sender, auto&& args)
{
    do_all_the_things(data);
} });
```

## Implementation notes

A lambda and pointer to member function are hard to distinguish
in a template parameter list. In theory, we could use SFINAE or
partial specialization, but a simpler solution is to distinguish
the two inside the body of the constructor, via
`std::is_member_function_pointer_v`.

The `com_ptr` and `shared_ptr` variants of the test were
unified, since I found myself editing two nearly identical tests.

Fixes #1371

Co-authored-by: Jon Wiswall <jonwis@microsoft.com>
2023-11-25 23:18:59 -08:00
Jon Wiswall 912aa47ff4
Update GitHub action LLVM version to 17.0.5 (#1373)
* Maybe update tools version

* LLVM & Clang v17.0.5 now support source_location properly
2023-11-25 21:48:38 -08:00
Raymond Chen bf4459b25a
Allow resume_agile to be stored in a variable (#1358)
`resume_agile` exposes the ability to save the `await_adapter`
in a variable. This was not possible without `resume_agile` because
the `await_adapter` had previously been available only via
`operator co_await`, which means that it is created only in
response to an immediate attempt to `co_await` it, so we knew
that it would be consumed before its argument (possibly a temporary)
was destructed.

`resume_agile` returns the `await_adapter`, and we expect people
to await it immediately, but it's possible that they decide to
save it in a variable and await it later. In that case, we have
to record the `Async` as a value instead of a reference. We forward
the `resume_agile` argument into the `Async` so that it moves
if given an rvalue reference, or copies if given an lvalue reference.
This ensure that the common case where somebody does
`co_await resume_agile(DoSomething())`, we do not incur any additional
AddRefs or Releases.

Now that it's possible to `co_await` the `await_adapter` twice,
we have to worry about `await_suspend` being called twice. It had
previously assumed that `suspending` was true (since that's how it
was constructed), but that is no longer valid in the `resume_agile`
case if somebody tries to await the `resume_agile` twice. So we have
to force it to `true`. (Now, the second await will fail with
"illegal delegate assignment", but our failure to set `suspending`
to `true` led to double-resumption, which is super-bad.)
2023-09-14 16:19:23 -07:00
Raymond Chen fac72c82b0
Add `resume_agile` to allow coroutine to resume in any apartment (#1356) 2023-09-12 13:25:16 -05:00
David Lechner 23c4ced66a
Improve GCC compatibility (#1352) 2023-09-02 12:14:52 -05:00
Jon Wiswall 691f6f8c9d
Support for std::span for winrt::array_view and winrt::com_array (#1343)
* Implicit conversion between std::span and winrt::array_view

* Add testing and additional ctad for spans

* PR FB - yes, yes it does!

* PR FB

---------

Co-authored-by: Jaiganésh Kumaran <jaiganesh.kumaran@outlook.com>
Co-authored-by: Jon Wiswall <jonwis@ntdev.microsoft.com>
Co-authored-by: Kenny Kerr <kenny@kennykerr.ca>
2023-08-28 10:24:04 -07:00
Kenny Kerr de6ca88bd6
Remove old Windows 7 support code (#1348) 2023-08-28 08:35:09 -05:00
Jon Wiswall 9b453cfc51
Enable faster dev cycle in Visual Studio (#1340)
* Enable faster dev cycle in Visual Studio

* Oops, remove one more run

* Fix linux build temporarily - see also #1341

---------

Co-authored-by: Jon Wiswall <jonwis@ntdev.microsoft.com>
2023-08-17 15:51:08 -07:00
Jon Wiswall 4196e08bd2
Increase foldability of various templates (#1338)
* Add SDKReference-sourced WinMDs when building

* Add solution items so they're more easily edited

* Update development guidance slightly

* First attempt at template folding

* Make packages easier to build, remove warning about unreferenced static

* Lift delegate creation out for better folding

* More folding of events

* Another delegate folded

* PR feedback

* Speculative improvement for QueryInterface

* PR feedback

---------

Co-authored-by: Jon Wiswall <jdwiswall@hotmail.com>
Co-authored-by: Kenny Kerr <kekerr@microsoft.com>
Co-authored-by: Jon Wiswall <jonwis@ntdev.microsoft.com>
2023-08-09 23:40:40 -07:00
Charles Milette 0958cf3a4d
Hide protected and overridable members from public projections (#1319) 2023-07-11 21:38:42 -05:00
Charles Milette 953d65cc85
Register event handlers with `shared_ptr` and `weak_ptr` (#1330) 2023-07-10 17:16:10 -05:00
Charles Milette 297454ee28
Allow classic COM interfaces with get_self (#1314)
* Allow classic COM interfaces with get_self

Fixes #1312

* Fix mingw builds

---------

Co-authored-by: Kenny Kerr <kenny@kennykerr.ca>
2023-06-27 09:40:35 -07:00
David Machaj d3bb275464
Fix source location test failure resulting from newer compiler (#1326) 2023-06-22 12:39:33 -05:00
Kenny Kerr ec54c40215
Clarify contributing guide (#1324) 2023-06-21 15:16:35 -05:00
Kenny Kerr c24bc391ed
Fix workflow trigger (#1321) 2023-06-08 12:18:38 -05:00
Kenny Kerr ed6a1e37a2
Update open source docs (#1315) 2023-05-30 08:42:50 -05:00
Kenny Kerr e2dc21469b
Update readme 2023-05-27 14:38:18 -05:00
Charles Milette 0e740b1bae
Update issue template to use `cpp` instead of `rust` (#1313) 2023-05-24 08:16:44 -05:00
Kenny Kerr 780e09599b
Add UTF-8 path support (#1307) 2023-05-17 12:26:26 -05:00
alvinhochun 858d50369a
Disable MSYS2 mingw32 CI due to running out of memory (#1305) 2023-05-16 08:23:36 -05:00
Scott Jones 4587264757
Remove explicitly setting PreferredToolArchitecture, since VS 2022 handles this more comprehensively (#1304) 2023-05-15 11:19:04 -07:00
Ryan Shepherd 49b2cab4ce
Remove ARM OneBranch build workaround (#1303) 2023-05-11 03:55:38 -07:00
Kenny Kerr 65581a379f
Add `capture` support for unconventional result types (#1301) 2023-04-29 14:53:13 -05:00
Ryan Shepherd c3b7fcfc99
Move official build pipelines to OneBranch (#1295)
* Add OneBranch pipelines
2023-04-03 10:52:40 -07:00
Raymond Chen 6162c9d05d
Fix flakey clock and line-number tests (#1294) 2023-03-31 22:17:20 -05:00
Raymond Chen a1b9593323
Use safe DLL loading (avoid current directory) (#1293) 2023-03-30 08:48:23 -05:00