xamarin-macios/tools/common/Make.common

76 строки
5.3 KiB
Plaintext
Исходник Обычный вид История

# We check in SdkVersions.cs so that it's easier to use this file when building tests on Windows.
../common/SdkVersions.cs: ../common/SdkVersions.in.cs Makefile $(TOP)/Make.config
$(Q_GEN) sed \
-e 's/@IOS_SDK_VERSION@/$(IOS_SDK_VERSION)/g' -e 's/@WATCHOS_SDK_VERSION@/$(WATCH_SDK_VERSION)/' -e 's/@TVOS_SDK_VERSION@/$(TVOS_SDK_VERSION)/' -e 's/@MACOS_SDK_VERSION@/$(MACOS_SDK_VERSION)/' \
-e 's/@MACCATALYST_SDK_VERSION@/$(MACCATALYST_SDK_VERSION)/g' \
\
-e 's/@MIN_IOS_SDK_VERSION@/$(MIN_IOS_SDK_VERSION)/g' \
-e 's/@MIN_WATCHOS_SDK_VERSION@/$(MIN_WATCHOS_SDK_VERSION)/' \
-e 's/@MIN_TVOS_SDK_VERSION@/$(MIN_TVOS_SDK_VERSION)/' \
-e 's/@MIN_MACOS_SDK_VERSION@/$(MIN_MACOS_SDK_VERSION)/' \
-e 's/@MIN_MACCATALYST_SDK_VERSION@/$(MIN_MACCATALYST_SDK_VERSION)/g' \
\
-e 's/@DOTNET_MIN_IOS_SDK_VERSION@/$(DOTNET_MIN_IOS_SDK_VERSION)/g' \
-e 's/@DOTNET_MIN_TVOS_SDK_VERSION@/$(DOTNET_MIN_TVOS_SDK_VERSION)/' \
-e 's/@DOTNET_MIN_MACOS_SDK_VERSION@/$(DOTNET_MIN_MACOS_SDK_VERSION)/' \
-e 's/@DOTNET_MIN_MACCATALYST_SDK_VERSION@/$(DOTNET_MIN_MACCATALYST_SDK_VERSION)/g' \
\
-e 's/@XCODE_VERSION@/$(XCODE_VERSION)/g' \
Store the minimum mono version for Xamarin.Mac in one place only (Make.config) and bump it to 5.14. Fixes #4120. (#4695) * Store the minimum mono version for Xamarin.Mac in one place only (Make.config) and bump it to 5.14. Fixes #4120. I've verified that we fail at launch of running on 5.12, while 5.14 works fine (to launch at least), so the minimum system mono version is _at least_ 5.14. Fixes https://github.com/xamarin/xamarin-macios/issues/4120. * [mmp] Load mono's version file instead of using pkg-config to get mono's version. pkg-config will only get three parts of the version, while the version file has all four parts. This is important, since we're now verifying the four parts of the version file, and without loading those four from the system, we'll fail builds like this: error MM0001: This version of Xamarin.Mac requires Mono 5.14.0.136 (the current Mono version is 5.14.0). because the three part version's fourth number is assumed to be 0. * Only verify mono runtime version when running with system/dynamic mono. There should be no need to verify the mono runtime version when embedding mono: * If it's a mono we're shipping, something very bad happened in our build/package for it to be an invalid mono. * If it's a system mono that's being embedded, then we verify in mmp at build time. In the first scenario (a mono we're shipping), the problem is that the mono we've built does not report back the full version number (with four parts) [1], which means we'll fail any check whose requirements are identical for the first three parts, and non-zero for the last. [1] The fourth part of the version number is created/calculated when packaging mono, and we're not packaging it.
2018-08-29 15:28:56 +03:00
-e 's/@MIN_XM_MONO_VERSION@/$(MIN_XM_MONO_VERSION)/g' \
-e 's/@MIN_IOS_SIMULATOR_VERSION@/$(MIN_IOS_SIMULATOR_VERSION)/g' \
-e 's/@MIN_WATCHOS_SIMULATOR_VERSION@/$(MIN_WATCHOS_SIMULATOR_VERSION)/' \
-e 's/@MIN_WATCHOS_COMPANION_SIMULATOR_VERSION@/$(MIN_WATCHOS_COMPANION_SIMULATOR_VERSION)/' \
-e 's/@MIN_TVOS_SIMULATOR_VERSION@/$(MIN_TVOS_SIMULATOR_VERSION)/' \
-e "s/@MAX_IOS_SIMULATOR_VERSION@/$(MAX_IOS_SIMULATOR_VERSION)/g" \
-e "s/@MAX_MACOS_VERSION@/$(MAX_MACOS_VERSION)/g" \
-e "s/@MAX_WATCH_SIMULATOR_VERSION@/$(MAX_WATCH_SIMULATOR_VERSION)/g" \
-e "s/@MAX_TVOS_SIMULATOR_VERSION@/$(MAX_TVOS_SIMULATOR_VERSION)/g" \
-e "s/@MAX_IOS_DEPLOYMENT_TARGET@/$(MAX_IOS_DEPLOYMENT_TARGET)/g" \
-e "s/@MAX_WATCH_DEPLOYMENT_TARGET@/$(MAX_WATCH_DEPLOYMENT_TARGET)/g" \
-e "s/@MAX_TVOS_DEPLOYMENT_TARGET@/$(MAX_TVOS_DEPLOYMENT_TARGET)/g" \
\
-e "s/@IOS_VERSION@/$(IOS_PACKAGE_VERSION_MAJOR).$(IOS_PACKAGE_VERSION_MINOR).$(IOS_PACKAGE_VERSION_REV)/g" \
-e 's/@IOS_REVISION@/$(IOS_COMMIT_DISTANCE) ($(CURRENT_BRANCH_SED_ESCAPED): $(CURRENT_HASH))/g' \
-e "s/@IOS_NUGET_VERSION@/$(IOS_NUGET_VERSION)/g" \
-e "s/@IOS_NUGET_REVISION@/$(NUGET_PRERELEASE_IDENTIFIER)$(IOS_NUGET_COMMIT_DISTANCE)+$(NUGET_BUILD_METADATA)/g" \
\
-e "s/@TVOS_VERSION@/$(IOS_PACKAGE_VERSION_MAJOR).$(IOS_PACKAGE_VERSION_MINOR).$(IOS_PACKAGE_VERSION_REV)/g" \
-e 's/@TVOS_REVISION@/$(IOS_COMMIT_DISTANCE) ($(CURRENT_BRANCH_SED_ESCAPED): $(CURRENT_HASH))/g' \
-e "s/@TVOS_NUGET_VERSION@/$(TVOS_NUGET_VERSION)/g" \
-e "s/@TVOS_NUGET_REVISION@/$(NUGET_PRERELEASE_IDENTIFIER)$(TVOS_NUGET_COMMIT_DISTANCE)+$(NUGET_BUILD_METADATA)/g" \
\
-e "s/@WATCHOS_VERSION@/$(IOS_PACKAGE_VERSION_MAJOR).$(IOS_PACKAGE_VERSION_MINOR).$(IOS_PACKAGE_VERSION_REV)/g" \
-e 's/@WATCHOS_REVISION@/$(IOS_COMMIT_DISTANCE) ($(CURRENT_BRANCH_SED_ESCAPED): $(CURRENT_HASH))/g' \
-e "s/@WATCHOS_NUGET_VERSION@/$(WATCHOS_NUGET_VERSION)/g" \
-e "s/@WATCHOS_NUGET_REVISION@/$(NUGET_PRERELEASE_IDENTIFIER)$(WATCHOS_NUGET_COMMIT_DISTANCE)+$(NUGET_BUILD_METADATA)/g" \
\
-e "s/@MACOS_VERSION@/$(MAC_PACKAGE_VERSION_MAJOR).$(MAC_PACKAGE_VERSION_MINOR).$(MAC_PACKAGE_VERSION_REV)/g" \
-e 's/@MACOS_REVISION@/$(MAC_COMMIT_DISTANCE) ($(CURRENT_BRANCH_SED_ESCAPED): $(CURRENT_HASH))/g' \
-e "s/@MACOS_NUGET_VERSION@/$(MACOS_NUGET_VERSION)/g" \
-e "s/@MACOS_NUGET_REVISION@/$(NUGET_PRERELEASE_IDENTIFIER)$(MACOS_NUGET_COMMIT_DISTANCE)+$(NUGET_BUILD_METADATA)/g" \
\
-e "s/@DEFAULT_TARGET_PLATFORM_VERSION_IOS@/$(DEFAULT_TARGET_PLATFORM_VERSION_IOS)/g" \
-e "s/@DEFAULT_TARGET_PLATFORM_VERSION_TVOS@/$(DEFAULT_TARGET_PLATFORM_VERSION_TVOS)/g" \
-e "s/@DEFAULT_TARGET_PLATFORM_VERSION_MACOS@/$(DEFAULT_TARGET_PLATFORM_VERSION_MACOS)/g" \
-e "s/@DEFAULT_TARGET_PLATFORM_VERSION_MACCATALYST@/$(DEFAULT_TARGET_PLATFORM_VERSION_MACCATALYST)/g" \
\
-e "s/@PRODUCT_HASH@/$(CURRENT_HASH_LONG)/g" \
$< > $@.tmp
$(Q) if ! diff $@ $@.tmp >/dev/null; then $(CP) $@.tmp $@; git diff "$@"; echo "The file $(TOP)/tools/common/SdkVersions.cs has been automatically re-generated; please commit the changes."; exit 1; fi
$(Q) touch $@
../common/ProductConstants.cs: ../common/ProductConstants.in.cs Makefile $(TOP)/Make.config $(TOP)/.git/index
$(Q_GEN) sed \
-e "s/@IOS_VERSION@/$(IOS_PACKAGE_VERSION_MAJOR).$(IOS_PACKAGE_VERSION_MINOR).$(IOS_PACKAGE_VERSION_REV)/g" \
-e "s/@TVOS_VERSION@/$(IOS_PACKAGE_VERSION_MAJOR).$(IOS_PACKAGE_VERSION_MINOR).$(IOS_PACKAGE_VERSION_REV)/g" \
-e "s/@WATCHOS_VERSION@/$(IOS_PACKAGE_VERSION_MAJOR).$(IOS_PACKAGE_VERSION_MINOR).$(IOS_PACKAGE_VERSION_REV)/g" \
-e "s/@MACOS_VERSION@/$(MAC_PACKAGE_VERSION_MAJOR).$(MAC_PACKAGE_VERSION_MINOR).$(MAC_PACKAGE_VERSION_REV)/g" \
\
$(foreach platform,$(DOTNET_PLATFORMS_UPPERCASE),-e 's/@$(platform)_REVISION@/$($(platform)_COMMIT_DISTANCE) ($(CURRENT_BRANCH_SED_ESCAPED): $(CURRENT_HASH))/g') \
$(foreach platform,$(DOTNET_PLATFORMS_UPPERCASE),-e 's/@$(platform)_NUGET_VERSION@/$($(platform)_NUGET_VERSION)/g') \
$(foreach platform,$(DOTNET_PLATFORMS_UPPERCASE),-e "s/@$(platform)_NUGET_REVISION@/$(NUGET_PRERELEASE_IDENTIFIER)$($(platform)_NUGET_COMMIT_DISTANCE)+$(NUGET_BUILD_METADATA)/g") \
\
-e "s/@PRODUCT_HASH@/$(CURRENT_HASH_LONG)/g" \
$< > $@