C++20 module support v2 (#1575)
* Initial implementation of vs modules based on cppwinrtplus fork
* Rename WINRT_MODULE -> WINRT_IMPL_BUILD_MODULE; WINRT_CONSUME_MODULE -> WINRT_IMPORT_MODULE
* Namespace modules are winrt.Namespace. Non-namespace modules are winrt_base/winrt_numerics
Co-authored-by: Copilot <copilot@github.com>
* Bootstrap basic unit test
Co-authored-by: Copilot <copilot@github.com>
* Fix coroutine export. A few more unit tests.
Co-authored-by: Copilot <copilot@github.com>
* module_include, module_exclude
Co-authored-by: Copilot <copilot@github.com>
* Rename test_module to test_cpp20_module
* Nuget test project with module include/exclude
Co-authored-by: Copilot <copilot@github.com>
* Refine generated files in component.
Co-authored-by: Copilot <copilot@github.com>
* Added a type deriving from DependencyObject
Co-authored-by: Copilot <copilot@github.com>
* Basic module build/consume support
Co-authored-by: Copilot <copilot@github.com>
* Prefix namespace ixx files with "winrt." for consistency with module names and built ifc files.
Co-authored-by: Copilot <copilot@github.com>
* IFC needs better per-project scoping. Now it fully works end to end.
* Minor fix to TestModuleComponent2
* Documentation and polish.
Co-authored-by: YexuanXiao <bizwen@nykz.org>
Co-authored-by: Copilot <copilot@github.com>
* Fix CI failures
Co-authored-by: Copilot <copilot@github.com>
* Try for better std hygiene
* Address some PR feedback
* Better automation of AdditionalBMIDirectories
Co-authored-by: Copilot <copilot@github.com>
* Missed fallback definition of WINRT_IMPL_STD_EXPORT
* Wrap base.h and extern the handler pointers
* Uniform namespace filtering
* Write trailing comments for #endif
* Clarify language version requirement
* Add source_location test
Co-authored-by: Copilot <copilot@github.com>
* Refactor/cleanup some string writers
Co-authored-by: Copilot <copilot@github.com>
* Add arm64 configs and replace bogus project guids with real guids.
Co-authored-by: Copilot <copilot@github.com>
* More cleanup of strings. Collected common macros into base_macros.h, generates into winrt/macros.h
Co-authored-by: Copilot <copilot@github.com>
* More strings cleanup. Emit a canonical winrt/base_macros.h
Co-authored-by: Copilot <copilot@github.com>
* More clarifications about guidance when sharing pre-built modules
Co-authored-by: Copilot <copilot@github.com>
* Ensure structured bindings are exported for IKeyValuePair
Co-authored-by: Copilot <copilot@github.com>
* Fix up module namespace exclude logic so it still generates import statements.
* intrin.h and <cstddef> only needed by base, not namespace modules
* Tidy up a few codegen bits
* Fix sln config on test_cpp20_module project
* Namespace modules now check version against imported winrt_base
Co-authored-by: Copilot <copilot@github.com>
* PR feedback: Test format, hash, natvis hook visibility, message on old compiler
Co-authored-by: Copilot <copilot@github.com>
* Clean up some handling of numerics-related code and add some numerics smoke tests
* De-duplicate windowsnumerics.impl.h logic
* A little more WINRT_IMPORT_MODULE cleanup
* Use write_depends in SCC writers
---------
Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: YexuanXiao <bizwen@nykz.org>