Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AddProject - Standardized project templates to develop WinAppSDK #3296

Merged
merged 46 commits into from
Jan 16, 2023

Conversation

DrusTheAxe
Copy link
Member

@DrusTheAxe DrusTheAxe commented Jan 3, 2023

Project Templates! No more slogging through project creation from VS File/NewProject and lots of manual editing (and swearing), or finding another project that's kinda sorta similar and manual editing (and still swearing). Now just tools\AddProject -Add ... to create a new project from the available standardized templates. Use tools\AddProject -List to enumerate the available templates.

NOTE: AddProject doesn't update Solution files (*.sln) (though it's a desirable future enhancement). After creating a project you need to add the project to your solution (e.g. WindowsAppRuntime.sln) and define its Build Dependencies via Visual Studio.

ALSO: New projects for the Kozani work! See dev\Kozani and test\Kozani for more details.

TO USE step 1: tools\AddProject -List to enumerate available project templates

Example

[C:\source\repos\windowsappsdk2]tools\AddProject.cmd -List

Template                            Type Language Target Content                 Description                                       Libraries
--------                            ---- -------- ------ -------                 -----------                                       ---------
dev.cpp.dll.winrt-client            dev  C++      DLL    winrt-client            C++ DLL consuming WinRT                           C++/WinRT, WIL
dev.cpp.dll.winrt-client-server     dev  C++      DLL    winrt-client-server     C++ DLL providing inproc WinRT object(s)          C++/WinRT, WIL
dev.cpp.exe.com-oopserver           dev  C++      exe    com-oopserver           C++ DLL providing OOP COM object(s)               C++/WinRT, WIL
dev.cpp.exe.com-oopserver-interface dev  C++      exe    com-oopserver-interface IDL for COM interface(s)
dev.cpp.exe.com-oopserver-proxystub dev  C++      exe    com-oopserver-proxystub C++ Proxy/Stub DLL for OOP COM server
dev.cpp.exe.console-winrt-client    dev  C++      exe    console-winrt-client    C++ console exe                                   C++/WinRT, WIL
dev.cpp.exe.winmain-winrt-client    dev  C++      exe    winmain-winrt-client    C++ Winmain exe                                   C++/WinRT, WIL
dev.cs.dll.projection               dev  C#       DLL    projection              C# DLL WinRT projection via C#/WinRT              C#/WinRT
test.cpp.dll.msixpackage            test C++      DLL    msixpackage             Test MSIX package containing Flat-C APIs in a DLL
test.cpp.dll.taef                   test C++      DLL    taef                    C++ test DLL                                      C++/WinRT, TAEF, WIL

TO USE step 2: tools\AddProject -Add -Template t -Feature f -Name n to create a new project from the template

Example

[C:\source\repos\windowsappsdk2]tools\AddProject.cmd -Add -Template dev.cpp.exe.com-oopserver -Feature Kozani -Name KozaniManager
Creating project KozaniManager from template dev.cpp.exe.com-oopserver
Creating C:\source\repos\windowsappsdk2\dev\Kozani\KozaniManager
Creating project files...
Transforming C:\source\repos\windowsappsdk2\tools\ProjectTemplates\dev.cpp.exe.com-oopserver\main.cpp to main.cpp
Transforming C:\source\repos\windowsappsdk2\tools\ProjectTemplates\dev.cpp.exe.com-oopserver\packages.config to packages.config
Transforming C:\source\repos\windowsappsdk2\tools\ProjectTemplates\dev.cpp.exe.com-oopserver\pch.cpp to pch.cpp
Transforming C:\source\repos\windowsappsdk2\tools\ProjectTemplates\dev.cpp.exe.com-oopserver\pch.h to pch.h
Transforming C:\source\repos\windowsappsdk2\tools\ProjectTemplates\dev.cpp.exe.com-oopserver\PurojekutoTenpuret-Constants.h to KozaniManager-Constants.h
Transforming C:\source\repos\windowsappsdk2\tools\ProjectTemplates\dev.cpp.exe.com-oopserver\PurojekutoTenpuret.vcxproj to KozaniManager.vcxproj
Transforming C:\source\repos\windowsappsdk2\tools\ProjectTemplates\dev.cpp.exe.com-oopserver\PurojekutoTenpuret.vcxproj.filters to KozaniManager.vcxproj.filters
Transforming C:\source\repos\windowsappsdk2\tools\ProjectTemplates\dev.cpp.exe.com-oopserver\PurojekutoTenpuret.vcxproj.user to KozaniManager.vcxproj.user

ALSO: New projects for the Kozani work, created per

tools\AddProject.cmd -Add -Template dev.cpp.dll.winrt-client-server -Feature Kozani -Name KozaniAppGraph
tools\AddProject.cmd -Add -Template dev.cpp.dll.winrt-client-server -Feature Kozani -Name KozaniPackage
tools\AddProject.cmd -Add -Template dev.cpp.dll.winrt-client-server -Feature Kozani -Name KozaniSendToLocal
tools\AddProject.cmd -Add -Template dev.cpp.dll.winrt-client-server -Feature Kozani -Name KozaniSendToRemote
tools\AddProject.cmd -Add -Template dev.cpp.dll.winrt-client-server -Feature Kozani -Name KozaniSettings
tools\AddProject.cmd -Add -Template dev.cpp.exe.com-oopserver -Feature Kozani -Name KozaniManager
tools\AddProject.cmd -Add -Template dev.cpp.exe.com-oopserver-interface -Feature Kozani -Name KozaniManagerInterface
tools\AddProject.cmd -Add -Template dev.cpp.exe.com-oopserver-proxystub -Feature Kozani -Name KozaniManagerProxyStub
tools\AddProject.cmd -Add -Template dev.cpp.exe.com-oopserver -Feature Kozani -Name KozaniRemoteManager
tools\AddProject.cmd -Add -Template dev.cpp.exe.com-oopserver-interface -Feature Kozani -Name KozaniRemoteManagerInterface
tools\AddProject.cmd -Add -Template dev.cpp.exe.com-oopserver-proxystub -Feature Kozani -Name KozaniRemoteManagerProxyStub
tools\AddProject.cmd -Add -Template dev.cpp.exe.winmain-winrt-client -Feature Kozani -Name KozaniHostRuntime
tools\AddProject.cmd -Add -Template dev.cpp.exe.console-winrt-client -Feature Kozani -Name MakeMSIX
tools\AddProject.cmd -Add -Template test.cpp.dll.taef -Feature Kozani -Name KozaniAppGraphTests
tools\AddProject.cmd -Add -Template test.cpp.dll.taef -Feature Kozani -Name KozaniPackageTests
tools\AddProject.cmd -Add -Template test.cpp.dll.taef -Feature Kozani -Name KozaniSendToLocalTests
tools\AddProject.cmd -Add -Template test.cpp.dll.taef -Feature Kozani -Name KozaniSendToRemoteTests
tools\AddProject.cmd -Add -Template test.cpp.dll.taef -Feature Kozani -Name KozaniSettingsTests
tools\AddProject.cmd -Add -Template test.cpp.dll.taef -Feature Kozani -Name KozaniManagerTests
tools\AddProject.cmd -Add -Template test.cpp.dll.taef -Feature Kozani -Name KozaniRemoteManagerTests
tools\AddProject.cmd -Add -Template test.cpp.dll.taef -Feature Kozani -Name KozaniHostRuntimeTests
tools\AddProject.cmd -Add -Template test.cpp.dll.taef -Feature Kozani -Name MakeMSIXTests

@ghost ghost added the needs-triage 🔍 label Jan 3, 2023
@DrusTheAxe DrusTheAxe changed the title AddProject AddProject - Standardized project templates to develop WinAppSDK Jan 3, 2023
@DrusTheAxe DrusTheAxe marked this pull request as ready for review January 12, 2023 08:03
Copy link

@cwruss cwruss left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for fixing the template issues.

@DrusTheAxe
Copy link
Member Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines could not run because the pipeline triggers exclude this branch/path.

@DrusTheAxe
Copy link
Member Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines could not run because the pipeline triggers exclude this branch/path.

@DrusTheAxe
Copy link
Member Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines could not run because the pipeline triggers exclude this branch/path.

@DrusTheAxe
Copy link
Member Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines could not run because the pipeline triggers exclude this branch/path.

@DrusTheAxe
Copy link
Member Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines could not run because the pipeline triggers exclude this branch/path.

@DrusTheAxe DrusTheAxe merged commit c2f70fb into develop Jan 16, 2023
@DrusTheAxe DrusTheAxe deleted the user/drustheaxe/project-templates branch January 16, 2023 08:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-Infrastructure Build, test, source layout, package construction (TODO: move to Deployment, DeveloperTools)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants