From 8898bc1402953fdf3a1e1066dd2542fc1818aadf Mon Sep 17 00:00:00 2001 From: Jonathan Pryor Date: Tue, 24 Aug 2021 13:59:37 -0400 Subject: [PATCH] [build] Import $(MSBuildProjectDirectory).override.props (#872) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Commit b6431ac8 introduced support for `Configuration.Override.props`, which eventually allowed overriding the `external/xamarin-android-tools` path via the `$(XamarinAndroidToolsDirectory)` MSBuild property in commit 32f0c9cf9. A problem with this approach is that it requires that the host repo create the `Java.Interop/Configuration.Override.props` file before running `make -C …/Java.Interop prepare`. This can be simplified: update `Directory.Build.props` so that it will also `` the file `$(MSBuildProjectDirectory).override.props`. [`$(MSBuildProjectDirectory)`][0] is: > The absolute path of the directory where the project file is > located, for example `C:\MyCompany\MyProduct`. > > Do not include the final backslash on this property. The "Do not" is grammatically odd, as it's set by MSBuild. It *does not* include a final backslash. This means that we can place the `.override.props` file in the directory containing the Java.Interop checkout, with a name that matches the git submodule directory name: external/my-Java.Interop-checkout # git submodule to xamarin/Java.Interop external/my-Java.Interop-checkout.override.props # now automatically imported [0]: https://docs.microsoft.com/en-us/visualstudio/msbuild/msbuild-reserved-and-well-known-properties?view=vs-2019 --- Directory.Build.props | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Directory.Build.props b/Directory.Build.props index 43483b3d3..7fb26aab9 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -16,6 +16,10 @@ Project="$(MSBuildThisFileDirectory)Configuration.Override.props" Condition="Exists('$(MSBuildThisFileDirectory)Configuration.Override.props')" /> +