[PR #1995] [CLOSED] Rework a whole bunch of build stuff #24745

Open
opened 2026-01-31 09:05:07 +00:00 by claunia · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/microsoft/terminal/pull/1995
Author: @DHowett-MSFT
Created: 7/17/2019
Status: Closed

Base: masterHead: dev/duhowett/bunch_of_build_stuff


📝 Commits (4)

  • 93b7747 Roll up dependencies under WindowsTerminal.vcxproj
  • 1a01465 Remove all our weird dependency hacks
  • 15cb894 Remove all of our hacks and xcopies
  • 25179b3 Rework how cppwinrt props and common props interact.

📊 Changes

14 files changed (+85 additions, -255 deletions)

View changed files

📝 src/cascadia/CascadiaPackage/CascadiaPackage.wapproj (+11 -21)
📝 src/cascadia/TerminalApp/App.cpp (+6 -5)
📝 src/cascadia/TerminalApp/MinMaxCloseControl.cpp (+4 -4)
📝 src/cascadia/TerminalApp/TerminalApp.vcxproj (+17 -14)
📝 src/cascadia/TerminalApp/lib/TerminalAppLib.vcxproj (+1 -11)
📝 src/cascadia/TerminalConnection/TerminalConnection.vcxproj (+0 -8)
📝 src/cascadia/TerminalControl/TermControl.cpp (+1 -1)
📝 src/cascadia/TerminalControl/TerminalControl.vcxproj (+0 -8)
📝 src/cascadia/TerminalSettings/TerminalSettings.vcxproj (+0 -8)
📝 src/cascadia/WindowsTerminal/WindowsTerminal.vcxproj (+24 -48)
📝 src/common.build.post.props (+2 -7)
📝 src/common.build.pre.props (+7 -0)
📝 src/cppwinrt.build.post.props (+0 -40)
📝 src/cppwinrt.build.pre.props (+12 -80)

📄 Description

This draft pull request contains a number of interesting changes. Let's talk about the results first.

  • All dependencies can be removed from WindowsTerminal except TerminalApp
  • All normal-build xcopy rules have been removed
  • All project build output (including the MSIX) goes in /obj and /bin.
  • Almost all build configuration between cppwinrt and non-cppwinrt projects has been unified (#1155)
  • TerminalApp no longer needs to manually include TerminalAppLib's stuff
    • It can use a normal ProjectReference
  • The package works.
  • CascadiaPackage no longer needs to include nuget packages itself
  • The application is still double-click activatable
  • PRI files are automatically rolled up
  • The package is 17MB because it includes TerminalAppLib.lib (👎)

Now, the how:

  • WindowsTerminal now defines GetPackagingOutputs, which recurses into its children (just like an appx project)
  • cppwinrt.build.pre.props now defers to common.build.pre.props for most of its configuration (and loses a bunch of redundant configuration)
  • OutDir is set before including the C++ machinery (this turned out to be important (!))
  • CascadiaPackage has been given a nudge towards including all subproject packaging outputs

This will still not work properly on Visual Studio 16.3, pending a fix for TerminalAppLib/TerminalApp that @zadjii-msft is cooking up.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/microsoft/terminal/pull/1995 **Author:** [@DHowett-MSFT](https://github.com/DHowett-MSFT) **Created:** 7/17/2019 **Status:** ❌ Closed **Base:** `master` ← **Head:** `dev/duhowett/bunch_of_build_stuff` --- ### 📝 Commits (4) - [`93b7747`](https://github.com/microsoft/terminal/commit/93b7747cb19c1cbe31fd8df6674ab26767a733d2) Roll up dependencies under WindowsTerminal.vcxproj - [`1a01465`](https://github.com/microsoft/terminal/commit/1a01465be80fcf93b912f736422779c41b15dd00) Remove all our weird dependency hacks - [`15cb894`](https://github.com/microsoft/terminal/commit/15cb89477cf43579567a0d2f4e1d428790b5a252) Remove all of our hacks and xcopies - [`25179b3`](https://github.com/microsoft/terminal/commit/25179b3790229efd932a40b445359492bf38835f) Rework how cppwinrt props and common props interact. ### 📊 Changes **14 files changed** (+85 additions, -255 deletions) <details> <summary>View changed files</summary> 📝 `src/cascadia/CascadiaPackage/CascadiaPackage.wapproj` (+11 -21) 📝 `src/cascadia/TerminalApp/App.cpp` (+6 -5) 📝 `src/cascadia/TerminalApp/MinMaxCloseControl.cpp` (+4 -4) 📝 `src/cascadia/TerminalApp/TerminalApp.vcxproj` (+17 -14) 📝 `src/cascadia/TerminalApp/lib/TerminalAppLib.vcxproj` (+1 -11) 📝 `src/cascadia/TerminalConnection/TerminalConnection.vcxproj` (+0 -8) 📝 `src/cascadia/TerminalControl/TermControl.cpp` (+1 -1) 📝 `src/cascadia/TerminalControl/TerminalControl.vcxproj` (+0 -8) 📝 `src/cascadia/TerminalSettings/TerminalSettings.vcxproj` (+0 -8) 📝 `src/cascadia/WindowsTerminal/WindowsTerminal.vcxproj` (+24 -48) 📝 `src/common.build.post.props` (+2 -7) 📝 `src/common.build.pre.props` (+7 -0) 📝 `src/cppwinrt.build.post.props` (+0 -40) 📝 `src/cppwinrt.build.pre.props` (+12 -80) </details> ### 📄 Description This _draft_ pull request contains a number of interesting changes. Let's talk about the _results_ first. * All dependencies can be removed from WindowsTerminal except TerminalApp * All normal-build xcopy rules have been removed * All project build output (including the MSIX) goes in `/obj` and `/bin`. * Almost all build configuration between cppwinrt and non-cppwinrt projects has been unified (#1155) * TerminalApp no longer needs to manually include TerminalAppLib's stuff * It _can_ use a normal ProjectReference * The package works. * CascadiaPackage no longer needs to include nuget packages itself * The application is still double-click activatable * PRI files are automatically rolled up * The package is 17MB because it includes TerminalAppLib.lib (👎) Now, the how: * WindowsTerminal now defines `GetPackagingOutputs`, which recurses into its children (just like an appx project) * `cppwinrt.build.pre.props` now defers to `common.build.pre.props` for most of its configuration (and loses a bunch of redundant configuration) * `OutDir` is set _before_ including the C++ machinery (this turned out to be important (!)) * CascadiaPackage has been given a nudge towards including all subproject packaging outputs This will still not work properly on Visual Studio 16.3, pending a fix for TerminalAppLib/TerminalApp that @zadjii-msft is cooking up. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
claunia added the pull-request label 2026-01-31 09:05:07 +00:00
Sign in to join this conversation.
No Label pull-request
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#24745