diff --git a/PowerToys.sln b/PowerToys.sln index 9c0d0dfee8..70785dc186 100644 --- a/PowerToys.sln +++ b/PowerToys.sln @@ -79,7 +79,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PowerRenameUnitTests", "src EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "examples", "examples", "{BEEAB7F2-FFF6-45AB-9CDB-B04CC0734B88}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ModuleTemplate", "tools\project_template\ModuleTemplate\ModuleTemplate.vcxproj", "{64A80062-4D8B-4229-8A38-DFA1D7497749}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ModuleTemplateCompileTest", "tools\project_template\ModuleTemplate\ModuleTemplateCompileTest.vcxproj", "{64A80062-4D8B-4229-8A38-DFA1D7497749}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PowerRenameUWPUI", "src\modules\powerrename\UWPui\PowerRenameUWPUI.vcxproj", "{0485F45C-EA7A-4BB5-804B-3E8D14699387}" ProjectSection(ProjectDependencies) = postProject diff --git a/tools/project_template/ModuleTemplate.zip b/tools/project_template/ModuleTemplate.zip index 086a2e31ea..84f75ada9e 100644 Binary files a/tools/project_template/ModuleTemplate.zip and b/tools/project_template/ModuleTemplate.zip differ diff --git a/tools/project_template/ModuleTemplate/$projectname$.rc b/tools/project_template/ModuleTemplate/$projectname$.rc index e69de29bb2..af288a92d3 100644 --- a/tools/project_template/ModuleTemplate/$projectname$.rc +++ b/tools/project_template/ModuleTemplate/$projectname$.rc @@ -0,0 +1,32 @@ +1 VERSIONINFO + FILEVERSION 0,1,0,0 + PRODUCTVERSION 0,1,0,0 + FILEFLAGSMASK 0x3fL +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x40004L + FILETYPE 0x2L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904b0" + BEGIN + VALUE "CompanyName", "Company Name" + VALUE "FileDescription", "$projectname$ Module" + VALUE "FileVersion", "0.1.0.0" + VALUE "InternalName", "$projectname$" + VALUE "LegalCopyright", "Copyright (C) 2019 Company Name" + VALUE "OriginalFilename", "$projectname$.dll" + VALUE "ProductName", "$projectname$" + VALUE "ProductVersion", "0.1.0.0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END \ No newline at end of file diff --git a/tools/project_template/ModuleTemplate/ModuleTemplate.rc b/tools/project_template/ModuleTemplate/ModuleTemplate.rc deleted file mode 100644 index c6e65c4e07..0000000000 Binary files a/tools/project_template/ModuleTemplate/ModuleTemplate.rc and /dev/null differ diff --git a/tools/project_template/ModuleTemplate/ModuleTemplate.vcxproj b/tools/project_template/ModuleTemplate/ModuleTemplate.vcxproj index 6405bb3a58..e08bc7247d 100644 --- a/tools/project_template/ModuleTemplate/ModuleTemplate.vcxproj +++ b/tools/project_template/ModuleTemplate/ModuleTemplate.vcxproj @@ -14,7 +14,7 @@ 15.0 {64A80062-4D8B-4229-8A38-DFA1D7497749} Win32Proj - templatenamespace + $safeprojectname$ 10.0 ModuleTemplate diff --git a/tools/project_template/ModuleTemplate/ModuleTemplateCompileTest.vcxproj b/tools/project_template/ModuleTemplate/ModuleTemplateCompileTest.vcxproj new file mode 100644 index 0000000000..b923692645 --- /dev/null +++ b/tools/project_template/ModuleTemplate/ModuleTemplateCompileTest.vcxproj @@ -0,0 +1,126 @@ + + + + + Debug + x64 + + + Release + x64 + + + + 15.0 + {64A80062-4D8B-4229-8A38-DFA1D7497749} + Win32Proj + templatenamespace + 10.0 + ModuleTemplateCompileTest + + + + DynamicLibrary + true + v142 + Unicode + + + DynamicLibrary + false + v142 + true + Unicode + + + + + + + + + + + + + + + true + $(SolutionDir)$(Platform)\$(Configuration)\modules\ + + + false + $(SolutionDir)$(Platform)\$(Configuration)\modules\ + + + + Use + Level3 + Disabled + true + _DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + pch.h + MultiThreadedDebug + stdcpplatest + + + Windows + true + $(OutDir)$(TargetName)$(TargetExt) + + + + + Use + Level3 + MaxSpeed + true + true + true + NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + pch.h + MultiThreaded + stdcpplatest + + + Windows + true + true + true + $(OutDir)$(TargetName)$(TargetExt) + + + + + $(SolutionDir)src\;$(SolutionDir)src\modules;$(SolutionDir)src\common\Telemetry;%(AdditionalIncludeDirectories) + + + + + + + + + + + Create + Create + pch.h + pch.h + + + + + + {74485049-c722-400f-abe5-86ac52d929b3} + + + + + + + + + \ No newline at end of file diff --git a/tools/project_template/ModuleTemplate/ModuleTemplate.vcxproj.filters b/tools/project_template/ModuleTemplate/ModuleTemplateCompileTest.vcxproj.filters similarity index 100% rename from tools/project_template/ModuleTemplate/ModuleTemplate.vcxproj.filters rename to tools/project_template/ModuleTemplate/ModuleTemplateCompileTest.vcxproj.filters diff --git a/PowerToyTemplate.sln b/tools/project_template/PowerToyTemplate.sln similarity index 89% rename from PowerToyTemplate.sln rename to tools/project_template/PowerToyTemplate.sln index 300d5065d3..b89dba4345 100644 --- a/PowerToyTemplate.sln +++ b/tools/project_template/PowerToyTemplate.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.29609.76 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ModuleTemplate", "tools\project_template\ModuleTemplate\ModuleTemplate.vcxproj", "{64A80062-4D8B-4229-8A38-DFA1D7497749}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ModuleTemplate", "ModuleTemplate\ModuleTemplate.vcxproj", "{64A80062-4D8B-4229-8A38-DFA1D7497749}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/tools/project_template/README.md b/tools/project_template/README.md index 25746c288d..d146ae7125 100644 --- a/tools/project_template/README.md +++ b/tools/project_template/README.md @@ -5,6 +5,9 @@ - Put the `ModuleTemplate.zip` file inside the `%USERPROFILE%\Documents\Visual Studio 2019\Templates\ProjectTemplates\` folder, which is the default *User project templates location*. You can change that location via `Tools > Options > Projects and Solutions`. - The template will be available in Visual Studio, when adding a new project, under the `Visual C++` tab. +## Contributing +If you'd like to work on a PowerToy template, make required modifications to `\tools\project_template\ModuleTemplate.vcxproj` and then use the dedicated solution `PowerToyTemplate.sln` to export it as a template. Note that `ModuleTemplate.vcxproj` is actually a project template, therefore uncompilable, so we also have a dedicated `ModuleTemplateCompileTest.vcxproj` project referenced from the `PowerToys.sln` to help keeping the template sources up to date and verify it compiles correctly. + ## Create a new PowerToy Module - Add the new PowerToy project to the `src\modules\` folder for all the relative paths to work.