[PR #3429] [MERGED] Unify and clean up the common build properties #25362

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

📋 Pull Request Information

Original PR: https://github.com/microsoft/terminal/pull/3429
Author: @DHowett-MSFT
Created: 11/4/2019
Status: Merged
Merged: 11/5/2019
Merged by: @DHowett-MSFT

Base: masterHead: dev/duhowett/rebuild_rules


📝 Commits (3)

  • a12e316 Unify and clean up the common build properties
  • 499500c Fix all compilation errors caused by build unification
  • 3022237 Move CascadiaPackage's resources into a separate item file

📊 Changes

76 files changed (+897 additions, -984 deletions)

View changed files

📝 OpenConsole.sln (+0 -4)
📝 src/buffer/out/lib/bufferout.vcxproj (+9 -14)
📝 src/buffer/out/ut_textbuffer/TextBuffer.Unit.Tests.vcxproj (+9 -9)
📝 src/cascadia/CascadiaPackage/CascadiaPackage.wapproj (+4 -223)
src/cascadia/CascadiaResources.build.items (+248 -0)
📝 src/cascadia/LocalTests_TerminalApp/TerminalApp.LocalTests.vcxproj (+24 -21)
📝 src/cascadia/PublicTerminalCore/PublicTerminalCore.vcxproj (+9 -8)
📝 src/cascadia/TerminalApp/App.cpp (+1 -1)
📝 src/cascadia/TerminalApp/GlobalAppSettings.cpp (+2 -2)
📝 src/cascadia/TerminalApp/MinMaxCloseControl.cpp (+3 -3)
📝 src/cascadia/TerminalApp/TerminalApp.vcxproj (+13 -18)
📝 src/cascadia/TerminalApp/TerminalPage.cpp (+4 -4)
📝 src/cascadia/TerminalApp/TitlebarControl.cpp (+6 -6)
📝 src/cascadia/TerminalApp/lib/TerminalAppLib.vcxproj (+17 -23)
📝 src/cascadia/TerminalConnection/AzureConnection-ARM64.cpp (+7 -7)
📝 src/cascadia/TerminalConnection/TerminalConnection.vcxproj (+18 -21)
📝 src/cascadia/TerminalControl/TermControl.cpp (+7 -7)
📝 src/cascadia/TerminalControl/TerminalControl.vcxproj (+17 -17)
📝 src/cascadia/TerminalControl/UiaTextRange.cpp (+5 -4)
📝 src/cascadia/TerminalControl/XamlUiaTextRange.cpp (+6 -6)

...and 56 more files

📄 Description

Summary of the Pull Request

This commit cleans up and deduplicates all of the common build
preamble/postamble across exe, dll, lib and c++/winrt projects.

The following specific changes have been made:

  • All projects now define their ConfigurationType
  • All projects now set all their properties before including a common
    build file (or any other build files)
  • cppwinrt.pre and cppwinrt.post now delegate most of their
    configuration to common.pre and common.post
  • (becuase of the above,) all build options are conserved between
    console and c++/winrt components, including specific warnings and
    preprocessor definitions.
  • More properties that are configurable per-project are now
    conditioned so the common props don't override them.
  • The exe, dll, exe.or.dll, and lib postincludes have been merged into
    pre or post and switched based on condition as required
  • Shared items (-shared, -common) are now explicitly vcxitems instead of
    vcxproj files.
  • The link line is now manipulated after Microsoft.Cpp sets it, so the
    libraries we specify "win". All console things link first against
    onecore_apiset.lib.
  • Continues the tradition of naming PDB files xxxFullPDB, but I can't tell why we did that so this may be cargo cultism (I had to make the Cascadia projects follow that rule)

Fixes #922.

PR Checklist


🔄 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/3429 **Author:** [@DHowett-MSFT](https://github.com/DHowett-MSFT) **Created:** 11/4/2019 **Status:** ✅ Merged **Merged:** 11/5/2019 **Merged by:** [@DHowett-MSFT](https://github.com/DHowett-MSFT) **Base:** `master` ← **Head:** `dev/duhowett/rebuild_rules` --- ### 📝 Commits (3) - [`a12e316`](https://github.com/microsoft/terminal/commit/a12e316ef21767f3102f41cd963e301a3ceb20da) Unify and clean up the common build properties - [`499500c`](https://github.com/microsoft/terminal/commit/499500cc65a53ee645fbce172358f355aed9f4e5) Fix all compilation errors caused by build unification - [`3022237`](https://github.com/microsoft/terminal/commit/302223795f649e45b6d2784cd852ffcc3f1eea72) Move CascadiaPackage's resources into a separate item file ### 📊 Changes **76 files changed** (+897 additions, -984 deletions) <details> <summary>View changed files</summary> 📝 `OpenConsole.sln` (+0 -4) 📝 `src/buffer/out/lib/bufferout.vcxproj` (+9 -14) 📝 `src/buffer/out/ut_textbuffer/TextBuffer.Unit.Tests.vcxproj` (+9 -9) 📝 `src/cascadia/CascadiaPackage/CascadiaPackage.wapproj` (+4 -223) ➕ `src/cascadia/CascadiaResources.build.items` (+248 -0) 📝 `src/cascadia/LocalTests_TerminalApp/TerminalApp.LocalTests.vcxproj` (+24 -21) 📝 `src/cascadia/PublicTerminalCore/PublicTerminalCore.vcxproj` (+9 -8) 📝 `src/cascadia/TerminalApp/App.cpp` (+1 -1) 📝 `src/cascadia/TerminalApp/GlobalAppSettings.cpp` (+2 -2) 📝 `src/cascadia/TerminalApp/MinMaxCloseControl.cpp` (+3 -3) 📝 `src/cascadia/TerminalApp/TerminalApp.vcxproj` (+13 -18) 📝 `src/cascadia/TerminalApp/TerminalPage.cpp` (+4 -4) 📝 `src/cascadia/TerminalApp/TitlebarControl.cpp` (+6 -6) 📝 `src/cascadia/TerminalApp/lib/TerminalAppLib.vcxproj` (+17 -23) 📝 `src/cascadia/TerminalConnection/AzureConnection-ARM64.cpp` (+7 -7) 📝 `src/cascadia/TerminalConnection/TerminalConnection.vcxproj` (+18 -21) 📝 `src/cascadia/TerminalControl/TermControl.cpp` (+7 -7) 📝 `src/cascadia/TerminalControl/TerminalControl.vcxproj` (+17 -17) 📝 `src/cascadia/TerminalControl/UiaTextRange.cpp` (+5 -4) 📝 `src/cascadia/TerminalControl/XamlUiaTextRange.cpp` (+6 -6) _...and 56 more files_ </details> ### 📄 Description ## Summary of the Pull Request This commit cleans up and deduplicates all of the common build preamble/postamble across exe, dll, lib and c++/winrt projects. The following specific changes have been made: * All projects now define their ConfigurationType * All projects now set all their properties *before* including a common build file (or any other build files) * cppwinrt.pre and cppwinrt.post now delegate most of their configuration to common.pre and common.post * (becuase of the above,) all build options are conserved between console and c++/winrt components, including specific warnings and preprocessor definitions. * More properties that are configurable per-project are now conditioned so the common props don't override them. * The exe, dll, exe.or.dll, and lib postincludes have been merged into pre or post and switched based on condition as required * Shared items (-shared, -common) are now explicitly vcxitems instead of vcxproj files. * The link line is now manipulated after Microsoft.Cpp sets it, so the libraries we specify "win". All console things link first against onecore_apiset.lib. * Continues the tradition of naming PDB files `xxxFullPDB`, but I can't tell why we did that so this may be cargo cultism (I had to make the Cascadia projects follow that rule) Fixes #922. ## PR Checklist * [x] Closes #922 * [x] CLA signed. * [x] Tests added/passed/project built a bunch * [ ] Requires documentation to be updated * [x] Core contributor --- <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:09:01 +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#25362