From 699d60775c2ca1edfcd1879adae9d9bbe0ff1507 Mon Sep 17 00:00:00 2001 From: Jonathan Pryor Date: Mon, 6 Jun 2016 17:26:49 -0400 Subject: [PATCH] [Configuration] Use `:`, not `,`, as ABI separator. Update `$(AndroidSupportedAbis)` and `$(AndroidSupportedAbisForConditionalChecks)` to use `:` as the ABI separator, not `,`. `;` can't be used because xbuild and MSBuild don't like `;` as a property value on the command-line. Turns out, MSBuild doesn't like `,` within property values on the command-line either, because it allows multiple MSBuild properties to be specified via one `/p:` use: $ msbuild -help ... /property:= Set or override these project-level properties. is the property name, and is the property value. Use a semicolon or a comma to separate multiple properties, or specify each property separately. (Short form: /p) Example: /property:WarningLevel=2;OutDir=bin\Debug\ This means that it's not possible to set `$(AndroidSupportedAbis)` to e.g. `host-Darwin,armeabi-v8a` on the command-line *with MSBuild*. (It is with xbuild, but this is arguably an xbuild compatibility bug!) Since we want to be able to easily override the `$(AndroidSupportedAbis)` value on the command-line for testing, change the ABI separator character to `:` which is supported on both xbuild and MSBuild: $ xbuild /p:AndroidSupportedAbis=host-Darwin:armeabi-v7a # works! --- Configuration.Override.props.in | 6 ++-- Configuration.props | 8 ++--- README.md | 6 ++-- .../android-toolchain.projitems | 32 +++++++++---------- .../android-toolchain.targets | 6 ++-- .../mono-runtimes/mono-runtimes.projitems | 16 +++++----- src/Mono.Posix/Mono.Posix.csproj | 10 +++--- src/monodroid/monodroid.projitems | 2 +- src/monodroid/monodroid.targets | 2 +- 9 files changed, 44 insertions(+), 44 deletions(-) diff --git a/Configuration.Override.props.in b/Configuration.Override.props.in index 644aa8ebd8d..d3a75d2e12b 100644 --- a/Configuration.Override.props.in +++ b/Configuration.Override.props.in @@ -7,16 +7,16 @@ v6.0 - armeabi,armeabi-v7a,arm64-v8a,x86,x86_64 + armeabi:armeabi-v7a:arm64-v8a:x86:x86_64 clang diff --git a/Configuration.props b/Configuration.props index f13c50b1460..1d4f8e461d0 100644 --- a/Configuration.props +++ b/Configuration.props @@ -19,7 +19,7 @@ $(AndroidToolchainDirectory)\mxe $(AndroidToolchainDirectory)\sdk $(AndroidToolchainDirectory)\ndk - host-$(HostOS),armeabi-v7a + host-$(HostOS):armeabi-v7a $(MSBuildThisFileDirectory)external\mono $(MSBuildThisFileDirectory) @@ -28,11 +28,11 @@ $(AndroidSupportedAbis) - $(AndroidSupportedAbisForConditionalChecks), - ,$(AndroidSupportedAbisForConditionalChecks) + $(AndroidSupportedAbisForConditionalChecks): + :$(AndroidSupportedAbisForConditionalChecks) diff --git a/README.md b/README.md index 47e636570d0..14db803f16a 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ Overridable MSBuild properties include: version which corresponds to `$(AndroidApiLevel)`. This is *usually* the Android version number with a leading `v`, e.g. `v4.0.3` for API-15. * `$(AndroidSupportedAbis)`: The Android ABIs to build for inclusion within - apps. This is a `,`-separated list of ABIs to build. Supported values are: + apps. This is a `:`-separated list of ABIs to build. Supported values are: * `armeabi` * `armeabi-v7a` @@ -52,9 +52,9 @@ Overridable MSBuild properties include: * `host-Linux` * `host-win64`: Cross-compile Windows 64-bit binaries from Unix. - The default value is `host-$(HostOS),armeabi-v7a`, where `$(HostOS)` + The default value is `host-$(HostOS):armeabi-v7a`, where `$(HostOS)` is based on probing various environment variables and filesystem locations. - On OS X, the default would be `host-Darwin,armeabi-v7a`. + On OS X, the default would be `host-Darwin:armeabi-v7a`. * `$(AndroidToolchainCacheDirectory)`: The directory to cache the downloaded Android NDK and SDK files. This value defaults to diff --git a/build-tools/android-toolchain/android-toolchain.projitems b/build-tools/android-toolchain/android-toolchain.projitems index d8b5313ab0c..f84c761efef 100644 --- a/build-tools/android-toolchain/android-toolchain.projitems +++ b/build-tools/android-toolchain/android-toolchain.projitems @@ -44,19 +44,19 @@ - <_NdkToolchain Include="arm-linux-androideabi-clang" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains(',armeabi,')) Or $(AndroidSupportedAbisForConditionalChecks.Contains(',armeabi-v7a,'))"> + <_NdkToolchain Include="arm-linux-androideabi-clang" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains(':armeabi:')) Or $(AndroidSupportedAbisForConditionalChecks.Contains(':armeabi-v7a:'))"> android-4 arm - <_NdkToolchain Include="aarch64-linux-android-clang" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains(',arm64-v8a,'))"> + <_NdkToolchain Include="aarch64-linux-android-clang" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains(':arm64-v8a:'))"> android-21 arm64 - <_NdkToolchain Include="x86-clang" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains(',x86,'))"> + <_NdkToolchain Include="x86-clang" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains(':x86:'))"> android-9 x86 - <_NdkToolchain Include="x86_64-clang" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains(',x86_64,'))"> + <_NdkToolchain Include="x86_64-clang" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains(':x86_64:'))"> android-21 x86_64 @@ -65,37 +65,37 @@ <_RequiredProgram Include="$(ManagedRuntime)" Condition=" '$(ManagedRuntime)' != '' " /> <_RequiredProgram Include="$(HostCc)" /> <_RequiredProgram Include="$(HostCxx)" /> - <_RequiredProgram Include="7za" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (',host-win64,'))"> + <_RequiredProgram Include="7za" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':host-win64:'))"> p7zip <_RequiredProgram Include="autoconf" /> <_RequiredProgram Include="automake" /> - <_RequiredProgram Include="cmake" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (',host-win64,'))" /> - <_RequiredProgram Include="gdk-pixbuf-csource" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (',host-win64,'))"> + <_RequiredProgram Include="cmake" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':host-win64:'))" /> + <_RequiredProgram Include="gdk-pixbuf-csource" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':host-win64:'))"> gdk-pixbuf - <_RequiredProgram Include="gettext" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (',host-win64,'))" /> - <_RequiredProgram Include="glibtool" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (',host-win64,'))"> + <_RequiredProgram Include="gettext" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':host-win64:'))" /> + <_RequiredProgram Include="glibtool" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':host-win64:'))"> libtool - <_RequiredProgram Include="gsed" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (',host-win64,'))"> + <_RequiredProgram Include="gsed" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':host-win64:'))"> gnu-sed - <_RequiredProgram Include="intltoolize" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (',host-win64,'))"> + <_RequiredProgram Include="intltoolize" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':host-win64:'))"> intltool <_RequiredProgram Include="make" /> - <_RequiredProgram Include="pkg-config" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (',host-win64,'))"> + <_RequiredProgram Include="pkg-config" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':host-win64:'))"> pkg-config - <_RequiredProgram Include="ruby" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (',host-win64,'))" /> - <_RequiredProgram Include="scons" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (',host-win64,'))"> + <_RequiredProgram Include="ruby" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':host-win64:'))" /> + <_RequiredProgram Include="scons" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':host-win64:'))"> scons - <_RequiredProgram Include="wget" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (',host-win64,'))"> + <_RequiredProgram Include="wget" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':host-win64:'))"> wget - <_RequiredProgram Include="xz" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (',host-win64,'))"> + <_RequiredProgram Include="xz" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':host-win64:'))"> xz diff --git a/build-tools/android-toolchain/android-toolchain.targets b/build-tools/android-toolchain/android-toolchain.targets index e6e2b5abd92..5a94714c616 100644 --- a/build-tools/android-toolchain/android-toolchain.targets +++ b/build-tools/android-toolchain/android-toolchain.targets @@ -112,7 +112,7 @@ /> + Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':host-win64:')) Or $(AndroidSupportedAbisForConditionalChecks.Contains (':host-win32:'))"> - <_MonoRuntime Include="armeabi" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (',armeabi,'))"> + <_MonoRuntime Include="armeabi" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':armeabi:'))"> $(_ArmAr) $(_ArmAs) $(_ArmCc) @@ -21,7 +21,7 @@ libmono-profiler-log libMonoPosixHelper - <_MonoRuntime Include="armeabi-v7a" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (',armeabi-v7a,'))"> + <_MonoRuntime Include="armeabi-v7a" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':armeabi-v7a:'))"> $(_ArmAr) $(_ArmAs) $(_ArmCc) @@ -41,7 +41,7 @@ libmono-profiler-log libMonoPosixHelper - <_MonoRuntime Include="arm64-v8a" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (',arm64-v8a,'))"> + <_MonoRuntime Include="arm64-v8a" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':arm64-v8a:'))"> $(_Arm64Ar) $(_Arm64As) $(_Arm64Cc) @@ -61,7 +61,7 @@ libmono-profiler-log libMonoPosixHelper - <_MonoRuntime Include="x86" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (',x86,'))"> + <_MonoRuntime Include="x86" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':x86:'))"> $(_X86Ar) $(_X86As) $(_X86Cc) @@ -81,7 +81,7 @@ libmono-profiler-log libMonoPosixHelper - <_MonoRuntime Include="x86_64" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (',x86_64,'))"> + <_MonoRuntime Include="x86_64" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':x86_64:'))"> $(_X86_64Ar) $(_X86_64As) $(_X86_64Cc) @@ -101,7 +101,7 @@ libmono-profiler-log libMonoPosixHelper - <_MonoRuntime Include="host-Win64" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (',host-win64,'))"> + <_MonoRuntime Include="host-Win64" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':host-win64:'))"> $(AndroidMxeFullPath)\bin\x86_64-w64-mingw32.static-ar $(AndroidMxeFullPath)\bin\x86_64-w64-mingw32.static-as $(AndroidMxeFullPath)\bin\x86_64-w64-mingw32.static-gcc @@ -122,7 +122,7 @@ libMonoPosixHelper - <_MonoRuntime Include="host-Darwin" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (',host-Darwin,'))"> + <_MonoRuntime Include="host-Darwin" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':host-Darwin:'))"> ar as $(HostCc) @@ -140,7 +140,7 @@ libmono-profiler-log libMonoPosixHelper - <_MonoRuntime Include="host-Linux" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (',host-Linux,'))"> + <_MonoRuntime Include="host-Linux" Condition="$(AndroidSupportedAbisForConditionalChecks.Contains (':host-Linux:'))"> ar as $(HostCc) diff --git a/src/Mono.Posix/Mono.Posix.csproj b/src/Mono.Posix/Mono.Posix.csproj index 7500e5b57b9..30fe299f2e7 100644 --- a/src/Mono.Posix/Mono.Posix.csproj +++ b/src/Mono.Posix/Mono.Posix.csproj @@ -243,19 +243,19 @@ $(OutputPath)\..\..\..\xbuild\Xamarin\Android\lib - + MonoPosixHelper\arm64-v8a\libMonoPosixHelper.so - + MonoPosixHelper\armeabi\libMonoPosixHelper.so - + MonoPosixHelper\armeabi-v7a\libMonoPosixHelper.so - + MonoPosixHelper\x86\libMonoPosixHelper.so - + MonoPosixHelper\x86_64\libMonoPosixHelper.so diff --git a/src/monodroid/monodroid.projitems b/src/monodroid/monodroid.projitems index 6bb9dd12dff..836bd6c5cf6 100644 --- a/src/monodroid/monodroid.projitems +++ b/src/monodroid/monodroid.projitems @@ -1,7 +1,7 @@ - <_SupportedAbis>$(AndroidSupportedAbis.Replace(',', ';') + <_SupportedAbis>$(AndroidSupportedAbis.Replace(':', ';')) <_MonoRuntime Include="$(_SupportedAbis)" /> diff --git a/src/monodroid/monodroid.targets b/src/monodroid/monodroid.targets index ba378ed8fdf..714f7a6bdec 100644 --- a/src/monodroid/monodroid.targets +++ b/src/monodroid/monodroid.targets @@ -13,7 +13,7 @@ Outputs="@(_MonoRuntime->'$(OutputPath)\%(Identity)\libmono-android.$(_Conf).so')"> - <_AppAbi>$(AndroidSupportedAbis.Replace(',', ' ') + <_AppAbi>$(AndroidSupportedAbis.Replace(':', ' '))