[build] Prepare Java.Interop for all $(CONFIGURATIONS)

[Java.Interop/7d9d72a5][ji7], pulled in via 59518692, has an
interesting semantic change: when building the Release configuration:

	# Assume a clean build tree...
	make prepare all CONFIGURATIONS=Release

Java.Interop now requires that
`external/Java.Interop/bin/BuildRelease/JdkInfo.props` exist.
(*Previously*, the Release configuration would use the
`…/BuildDebug/JdkInfo.props` file.)

Unfortunately, xamarin-android wasn't updated accordingly. As such, if
*only* the Release configuration is built -- not Debug *and* Release,
as Jenkins does -- then xamarin-android doesn't build:

	xamarin-android/external/Java.Interop/src/Java.Interop/Java.Interop.csproj: error :
	…/xamarin-android/external/Java.Interop/src/Java.Interop/Java.Interop.csproj: Java.Interop.targets:
	Project file could not be imported, it was being imported by …/xamarin-android/external/Java.Interop/src/Java.Interop/Java.Interop.csproj:
	…/xamarin-android/external/Java.Interop/src/Java.Interop/Java.Interop.targets
	could not import "$(JNIEnvGenPath)\JdkInfo.props"

`$(JNIEnvGenPath)` is now `bin/Build$(Configuration)`, whereas before
it was always `bin/BuildDebug`, so the above error occurs because
`external/Java.Interop/bin/BuildRelease/JdkInfo.props` doesn't exist.

Fix the `make prepare` target so that *all* `$(CONFIGURATIONS)` values
are configured for Java.Interop, not just the Debug configuration.
This should allow Release-only builds to work.

[ji7]: 7d9d72a538
This commit is contained in:
Jonathan Pryor 2017-09-06 20:22:24 -04:00
Родитель d2ac1bbb77
Коммит 498cacd2d8
1 изменённых файлов: 4 добавлений и 2 удалений

Просмотреть файл

@ -96,8 +96,10 @@ prepare-external: prepare-deps
git submodule update --init --recursive
nuget restore $(SOLUTION)
nuget restore Xamarin.Android-Tests.sln
(cd $(call GetPath,JavaInterop) && make prepare)
(cd $(call GetPath,JavaInterop) && make bin/BuildDebug/JdkInfo.props)
$(foreach conf, $(CONFIGURATIONS), \
(cd $(call GetPath,JavaInterop) && make prepare CONFIGURATION=$(CONFIGURATION)) && \
(cd $(call GetPath,JavaInterop) && make bin/Build$(CONFIGURATION)/JdkInfo.props CONFIGURATION=$(CONFIGURATION)) && ) \
true
prepare-props: prepare-external
cp build-tools/scripts/Configuration.Java.Interop.Override.props external/Java.Interop/Configuration.Override.props