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

Remove all our path antics; force native projects to bin/, obj/ #8062

Merged
merged 5 commits into from
Oct 27, 2020

Conversation

DHowett
Copy link
Member

@DHowett DHowett commented Oct 27, 2020

This commit fixes our longstanding build artifact output issues and
finally unifies all C++ project output into bin/ and obj/.

In light of that, I've removed NoOutputRedirection.

I've also updated WTU and U8U16Test to use our common build props and
fixed any warnings/compilation errors that popped out.

I validated this change by running repeated incremental builds after
changing individual .cpp files in many of our C++/WinRT projects.

… obj/

This commit fixes our longstanding build artifact output issues and
finally unifies all C++ project output into bin/ and obj/.

I've removed NoOutputRedirection.

I validated this change by running repeated incremental builds after
changing individual .cpp files in many of our C++/WinRT projects.
@DHowett
Copy link
Member Author

DHowett commented Oct 27, 2020

The only projects that emit binaries into src/ or / are now CascadiaPackage and the .NET projects.

It is possible to resolve this, but I wanted to move them slowly.

Copy link
Member

@zadjii-msft zadjii-msft left a comment

Choose a reason for hiding this comment

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

I'd like to nominate this for PR of the year

<ProjectGuid>{b0ac39d6-7b40-49a9-8202-58549bae1fb1}</ProjectGuid>
<ProjectName>WindowsTerminalUniversal</ProjectName>
<RootNamespace>WindowsTerminalUniversal</RootNamespace>
<DefaultLanguage>en-US</DefaultLanguage>
Copy link
Member

Choose a reason for hiding this comment

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

So. Good.

@DHowett
Copy link
Member Author

DHowett commented Oct 27, 2020

Decided I should make TestHostApp live in a subdir ;P because I lost that when I forcibly disabled the project-specific output directory.

@@ -2,55 +2,6 @@
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildThisFileDirectory)common.build.post.props" />

<!-- For Cascadia projects, we want to copy the output dll up a directory
Copy link
Member

Choose a reason for hiding this comment

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

Beautiful. Brings a tear to my eye.

@miniksa
Copy link
Member

miniksa commented Oct 27, 2020

I love this. Thank you for taking the time to pull this together.

@DHowett DHowett changed the title Remove all of our wild path antics; force all native projects to bin/, obj/ Remove all our path antics; force native projects to bin/, obj/ Oct 27, 2020
@DHowett DHowett merged commit fc9a46d into main Oct 27, 2020
@DHowett DHowett deleted the dev/duhowett/path_once_and_for_all branch October 27, 2020 22:00
(xcopy /Y &quot;$(SolutionDir)$(Platform)\$(Configuration)\TerminalControl\TerminalControl.dll&quot; &quot;$(OutDir)\TerminalControl.dll*&quot; )
(xcopy /Y &quot;$(OpenConsoleCommonOutDir)\TerminalConnection\TerminalConnection.dll&quot; &quot;$(OutDir)\TerminalConnection.dll*&quot; )
(xcopy /Y &quot;$(OpenConsoleCommonOutDir)\TerminalSettings\TerminalSettings.dll&quot; &quot;$(OutDir)\TerminalSettings.dll*&quot; )
(xcopy /Y &quot;$(OpenConsoleCommonOutDir)\TerminalControl\TerminalControl.dll&quot; &quot;$(OutDir)\TerminalControl.dll*&quot; )
Copy link
Contributor

Choose a reason for hiding this comment

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

how many different copy commands are there on windows?
because i can cite at least 3 off the top of my head

Copy link
Member Author

Choose a reason for hiding this comment

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

We probably used all three in the same project here 😉

ghost pushed a commit that referenced this pull request Jan 26, 2021
## Summary of the Pull Request

Apparently, we don't need this `TargetRuntime`. That's what was causing VS to think that we were a C# project, and give us that warning. This is the solution we got from the owner of the `.wapproj` plugin.

## References
* Introduced in c33883d, in PR #8062

## PR Checklist
* [x] Closes #8301
* [x] I work here


Build and ran it fine. Changed TermControl, built and ran it fine. Now let's hope CI likes it.
mpela81 pushed a commit to mpela81/terminal that referenced this pull request Jan 28, 2021
## Summary of the Pull Request

Apparently, we don't need this `TargetRuntime`. That's what was causing VS to think that we were a C# project, and give us that warning. This is the solution we got from the owner of the `.wapproj` plugin.

## References
* Introduced in c33883d, in PR microsoft#8062

## PR Checklist
* [x] Closes microsoft#8301
* [x] I work here


Build and ran it fine. Changed TermControl, built and ran it fine. Now let's hope CI likes it.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants