2016-06-06 13:18:52 +03:00
|
|
|
TOP=../..
|
2016-05-26 16:06:52 +03:00
|
|
|
|
|
|
|
include $(TOP)/Make.config
|
|
|
|
|
|
|
|
# a 64bits mono is required because of the clang requirement
|
2016-07-15 20:20:52 +03:00
|
|
|
MONO ?= mono64 --debug
|
2021-01-12 11:55:23 +03:00
|
|
|
SHARPIE ?= sharpie
|
2016-05-26 16:06:52 +03:00
|
|
|
|
2018-02-08 07:19:48 +03:00
|
|
|
XCODE=$(abspath $(XCODE_DEVELOPER_ROOT)/../..)
|
|
|
|
|
2018-01-25 17:12:41 +03:00
|
|
|
all-local::
|
2016-05-26 16:06:52 +03:00
|
|
|
|
|
|
|
clean-local::
|
2018-01-25 17:12:41 +03:00
|
|
|
rm -f xtro-report/bin/Debug/xtro-report.exe bin/Debug/xtro-sharpie.exe
|
|
|
|
rm -f *.tmp
|
2016-05-26 16:06:52 +03:00
|
|
|
rm -rf *os*.pch*
|
|
|
|
|
2018-01-25 17:12:41 +03:00
|
|
|
bin/Debug/xtro-sharpie.exe xtro-report/bin/Debug/xtro-report.exe build:
|
[d16-2] Bump VSMac to 8.1.0.2742 to fix msbuild issues (#6279) (#6361)
* Bump VSMac to 8.1.0.2742 to fix msbuild issues (#6279)
* Bump VSMac to 8.1.0.2742 to fix msbuild issues
This is required to get the support for the msbuild `ToolsVersion`
change from `15.0` to `Current`.
* [tests][msbuild] Fix Binding resources test with updated msbuild
Test failure with updated msbuild and vsmac 8.1:
```
Xamarin.iOS.Tasks.NativeReferencesNoEmbedding("iPhone").ShouldNotUnnecessarilyRebuildBindingProject(True)
Binding project build did not create package?
Expected: True
But was: False
at Xamarin.iOS.Tasks.NativeReferencesNoEmbedding.ShouldNotUnnecessarilyRebuildBindingProject (System.Boolean framework) [0x000a0] in <74b8f7d8a53e40109916d305bb4d7403>:0
at (wrapper managed-to-native) System.Reflection.RuntimeMethodInfo.InternalInvoke(System.Reflection.RuntimeMethodInfo,object,object[],System.Exception&)
at System.Reflection.RuntimeMethodInfo.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo cul
ture) [0x0006a] in <0519fa732e8845b6a809ce9180f541db>:0
```
The test builds the project multiple times. Before the 3rd build, the project
file's timestamp is updated and expects that the binding package will be
rebuilt. But it is not, because the target `_CreateBindingResourcePackage`
doesn't depend on that project file. So, add that to the target inputs.
* [nuget] Use xibuild to run nuget
Fix errors seen during `nuget restore` for tests:
```
Users/builder/jenkins/workspace/xamarin-macios-pr-builder/tests/xammac_tests/xammac_tests.csproj(213,3): error MSB4024: The imported project file "/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Mac/Xamarin.Mac.CSharp.targets" could not be loaded. Could not find file "/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Mac/Xamarin.Mac.CSharp.targets"
```
* [xibuild] Fix incorrect mscorlib.dll being used (#6068)
* [xibuild] Fix incorrect mscorlib.dll being used
The `GuiUnit_NET_4_5` project, when built with `xibuild` uses the wrong `mscorlib.dll`.
From https://github.com/xamarin/xamarin-macios/issues/5760#issuecomment-472457202 :
```
- mscorlib.dll is being used from mono/4.5 and the other system assemblies are from mono/4.5-api
- GuiNet* project is built with xibuild
What is happening here is:
xibuild sets[1] `SetToolsetProperty ("TargetFrameworkRootPath", FrameworksDirectory + Path.DirectorySeparatorChar);`
which points to `/Library/Frameworks/Mono.framework/Versions/Current/lib/mono/xbuild-frameworks`.
This causes $(FrameworkPathOverride) to be set[2] to `/Library/Frameworks/Mono.framework/Versions/Current/lib/mono/xbuild-frameworks/.NETFramework/v4.5`,
but that doesn't have a mscorlib.dll, so it gets reset[3] to /Library/Frameworks/Mono.framework/Versions/5.22.0/lib/mono/4.5/.
If we don't set TargetFrameworkRoothPath, then we get `FrameworkPathOverride = /Library/Frameworks/Mono.framework/Versions/5.22.0/lib/mono/4.5-api`,
causing `_ExplicitReference=/Library/Frameworks/Mono.framework/Versions/5.22.0/lib/mono/4.5-api/mscorlib.dll`(correct one) to be used.
```
Fixes https://github.com/xamarin/xamarin-macios/issues/5760
1. https://github.com/xamarin/xamarin-macios/blob/master/tools/xibuild/Main.cs#L209
2. https://github.com/mono/msbuild/blob/xplat-master/src/Tasks/Microsoft.Common.CurrentVersion.targets#L79
3. https://github.com/mono/msbuild/blob/xplat-master/src/Tasks/Microsoft.Common.CurrentVersion.targets#L84
* Revert "Workaround https://github.com/xamarin/xamarin-macios/issues/5760 in generator csproj"
This reverts commit 9bd927bb7fe3eb1b14721745c500ff8b4aecd109.
The previous commit for xibuild removes the need for this.
* [xibuild] Handle "incorrectly" cased msbuild property names (#6202)
msbuild property names are case insensitive. While generating the custom
app.config, in `SetToolsetProperty(..)` we try to update the property if
it already exists. But the name lookup was case sensitive, thus causing
the lookup to fail, resulting in two entries for the same property name
differing only in case. Eg. `MSBuildSDKsPath` vs `MSBuildSdksPath`.
Fixed to ignore case.
Fixes https://github.com/mono/mono/issues/14765 .
2019-06-19 18:28:01 +03:00
|
|
|
$(Q) $(SYSTEM_XIBUILD) -t -- /Library/Frameworks/Mono.framework/Versions/Current/lib/mono/nuget/NuGet.exe restore xtro-sharpie.sln
|
2019-01-09 09:43:22 +03:00
|
|
|
$(Q_BUILD) $(SYSTEM_MSBUILD) $(MSBUILD_VERBOSITY) xtro-sharpie.sln
|
2017-08-22 16:47:38 +03:00
|
|
|
|
2020-11-27 20:53:25 +03:00
|
|
|
XIOS ?= $(TOP)/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/lib/64bits/iOS/Xamarin.iOS.dll
|
2017-02-15 00:55:13 +03:00
|
|
|
XIOS_GL ?= $(TOP)/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/Current/lib/mono/Xamarin.iOS/OpenTK-1.0.dll
|
2016-05-26 16:06:52 +03:00
|
|
|
XIOS_ARCH = arm64
|
|
|
|
XIOS_PCH = iphoneos$(IOS_SDK_VERSION)-$(XIOS_ARCH).pch
|
|
|
|
|
2017-10-26 17:43:45 +03:00
|
|
|
$(XIOS_PCH): .stamp-check-sharpie
|
2021-01-12 11:55:23 +03:00
|
|
|
$(SHARPIE) sdk-db --xcode $(XCODE) -s iphoneos$(IOS_SDK_VERSION) -a $(XIOS_ARCH) -exclude OSLog
|
2016-05-26 16:06:52 +03:00
|
|
|
|
|
|
|
|
2020-11-27 20:53:25 +03:00
|
|
|
XWATCHOS ?= $(TOP)/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/lib/32bits/watchOS/Xamarin.WatchOS.dll
|
2016-05-26 16:06:52 +03:00
|
|
|
XWATCHOS_ARCH = armv7
|
|
|
|
XWATCHOS_PCH = watchos$(WATCH_SDK_VERSION)-$(XWATCHOS_ARCH).pch
|
|
|
|
|
2017-10-26 17:43:45 +03:00
|
|
|
$(XWATCHOS_PCH): .stamp-check-sharpie
|
2021-01-12 11:55:23 +03:00
|
|
|
$(SHARPIE) sdk-db --xcode $(XCODE) -s watchos$(WATCH_SDK_VERSION) -a $(XWATCHOS_ARCH) -exclude OSLog
|
2016-05-26 16:06:52 +03:00
|
|
|
|
2020-11-27 20:53:25 +03:00
|
|
|
XTVOS ?= $(TOP)/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/lib/64bits/tvOS/Xamarin.TVOS.dll
|
2017-02-15 00:55:13 +03:00
|
|
|
XTVOS_GL ?= $(TOP)/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/lib/mono/Xamarin.TVOS/OpenTK-1.0.dll
|
2016-05-26 16:06:52 +03:00
|
|
|
XTVOS_ARCH = arm64
|
|
|
|
XTVOS_PCH = appletvos$(TVOS_SDK_VERSION)-$(XTVOS_ARCH).pch
|
|
|
|
|
2017-10-26 17:43:45 +03:00
|
|
|
$(XTVOS_PCH): .stamp-check-sharpie
|
2021-01-12 11:55:23 +03:00
|
|
|
$(SHARPIE) sdk-db --xcode $(XCODE) -s appletvos$(TVOS_SDK_VERSION) -a $(XTVOS_ARCH) -exclude OSLog
|
2016-05-26 16:06:52 +03:00
|
|
|
|
|
|
|
|
Xamarin.Mac native Apple Silicon targetting support (#10115)
* Add support for Xamarin.Mac arm64
* Add compile product definition task
Xamarin.Mac can be provided with a ProductDefinition file for the generated pkg. Normally, providing a product definition was optional. However, with Apple Silicon, we have an extra issue : `productbuild` needs to know what architectures your package target. If not provided with them, it will guess to the best of its abilities. However, on Catalina and lower, the guess is x86_64, even if you have an arm64 slice. To fix this, we add a new task to compile the product definition and use this file to create the pkg. If you provide your own Product Definition, we can check and warn if the architectures don't match what we expect. If the file doesn't exist or there is no architecture, we set it ourselves based on our target architectures.
* Don't reference dynamic objC_send on arm64
When building in debug, we currently try to link dynamic objC_send symbols when targeting a 64-bit architecture. However, this is actually only defined on Intel architectures, not on arm64, so we end up failing because we're referring symbols that don't exist. Rework the `GetRequiredSymbols` to take an abi, and tag those symbols to only be valid on i386/x86_64, so they don't get referred at all when building on arm64, but still get referred in x86_64.
* Fix improper delete/move with already existing directories
* Fix stret requirement for Xamarin.Mac in arm64.
The generator supposes that we're running in x64 mode, refactor to take into account the possibility of running in arm64.
* Implement OS version generation in Product.plist, based on MinimumSystemVersion of the app
* Re-generalize some mmp registrar rules
`Microsoft.macOS.registrar` was missed by the current rule set
* Fix mmp tests
* Set E7072 as not translated
Tests were failing otherwise
* Rename Xamarin.Mac lib/x86_64 folder to 64bits (currently all targeted archs are the same)
* Fix style issues
* Fix `ToLower` usage for invariant usage
* Fix xtro-sharpie test
2021-03-18 04:48:02 +03:00
|
|
|
XMAC ?= $(TOP)/_mac-build/Library/Frameworks/Xamarin.Mac.framework/Versions/git/lib/64bits/mobile/Xamarin.Mac.dll
|
2016-05-26 16:06:52 +03:00
|
|
|
XMAC_ARCH = x86_64
|
|
|
|
XMAC_PCH = macosx$(OSX_SDK_VERSION)-$(XMAC_ARCH).pch
|
|
|
|
|
2017-10-26 17:43:45 +03:00
|
|
|
$(XMAC_PCH): .stamp-check-sharpie
|
2021-01-12 11:55:23 +03:00
|
|
|
$(SHARPIE) sdk-db --xcode $(XCODE) -s macosx$(OSX_SDK_VERSION) -a $(XMAC_ARCH) -exclude ClockKit -exclude JavaNativeFoundation
|
2016-05-26 16:06:52 +03:00
|
|
|
|
2021-01-11 13:56:58 +03:00
|
|
|
XCAT ?= $(TOP)/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/lib/64bits/MacCatalyst/Xamarin.MacCatalyst.dll
|
|
|
|
XCAT_GL ?=
|
|
|
|
XCAT_ARCH = x86_64
|
|
|
|
XCAT_PCH = ios$(MACCATALYST_SDK_VERSION)-macabi-$(XCAT_ARCH).pch
|
|
|
|
|
|
|
|
$(XCAT_PCH): .stamp-check-sharpie
|
2021-01-12 11:55:23 +03:00
|
|
|
$(SHARPIE) sdk-db --xcode $(XCODE) -s ios$(MACCATALYST_SDK_VERSION)-macabi -a $(XCAT_ARCH) \
|
2021-01-11 13:56:58 +03:00
|
|
|
-exclude AGL \
|
|
|
|
-exclude CalendarStore \
|
|
|
|
-exclude Carbon \
|
|
|
|
-exclude ClockKit \
|
|
|
|
-exclude DiscRecordingUI \
|
|
|
|
-exclude GLKit \
|
|
|
|
-exclude ICADevices \
|
|
|
|
-exclude InputMethodKit \
|
|
|
|
-exclude InstallerPlugins \
|
|
|
|
-exclude IOBluetooth \
|
|
|
|
-exclude IOBluetoothUI \
|
|
|
|
-exclude JavaNativeFoundation \
|
|
|
|
-exclude LDAP \
|
|
|
|
-exclude Python \
|
|
|
|
-exclude Quartz \
|
|
|
|
-exclude SecurityInterface \
|
|
|
|
|
|
|
|
|
2017-02-21 19:38:07 +03:00
|
|
|
ios-$(IOS_SDK_VERSION).g.cs: $(XIOS_PCH)
|
|
|
|
|
2020-09-16 12:41:44 +03:00
|
|
|
ifdef INCLUDE_IOS
|
2017-10-26 17:43:45 +03:00
|
|
|
gen-ios: ios-$(IOS_SDK_VERSION).g.cs .stamp-check-sharpie
|
2021-01-12 11:55:23 +03:00
|
|
|
$(SHARPIE) query -bind $(XIOS_PCH) > ios-$(IOS_SDK_VERSION).g.cs
|
2020-09-16 12:41:44 +03:00
|
|
|
else
|
|
|
|
gen-ios: ; @true
|
|
|
|
endif
|
2017-02-21 19:38:07 +03:00
|
|
|
|
|
|
|
tvos-$(TVOS_SDK_VERSION).g.cs: $(XTVOS_PCH)
|
|
|
|
|
2020-09-16 12:41:44 +03:00
|
|
|
ifdef INCLUDE_TVOS
|
2017-10-26 17:43:45 +03:00
|
|
|
gen-tvos: tvos-$(TVOS_SDK_VERSION).g.cs .stamp-check-sharpie
|
2021-01-12 11:55:23 +03:00
|
|
|
$(SHARPIE) query -bind $(XTVOS_PCH) > tvos-$(TVOS_SDK_VERSION).g.cs
|
2020-09-16 12:41:44 +03:00
|
|
|
else
|
|
|
|
gen-tvos: ; @true
|
|
|
|
endif
|
2017-02-21 19:38:07 +03:00
|
|
|
|
|
|
|
watchos-$(WATCH_SDK_VERSION).g.cs: $(XWATCHOS_PCH)
|
|
|
|
|
2020-09-16 12:41:44 +03:00
|
|
|
ifdef INCLUDE_WATCH
|
2017-10-26 17:43:45 +03:00
|
|
|
gen-watchos: watchos-$(WATCH_SDK_VERSION).g.cs .stamp-check-sharpie
|
2021-01-12 11:55:23 +03:00
|
|
|
$(SHARPIE) query -bind $(XWATCHOS_PCH) > watchos-$(WATCH_SDK_VERSION).g.cs
|
2020-09-16 12:41:44 +03:00
|
|
|
else
|
|
|
|
gen-watchos: ; @true
|
|
|
|
endif
|
2017-02-21 19:38:07 +03:00
|
|
|
|
|
|
|
macos-$(OSX_SDK_VERSION).g.cs: $(XMAC_PCH)
|
|
|
|
|
2020-09-16 12:41:44 +03:00
|
|
|
ifdef INCLUDE_MAC
|
2017-10-26 17:43:45 +03:00
|
|
|
gen-macos: macos-$(OSX_SDK_VERSION).g.cs .stamp-check-sharpie
|
2021-01-12 11:55:23 +03:00
|
|
|
$(SHARPIE) query -bind $(XMAC_PCH) > macos-$(OSX_SDK_VERSION).g.cs
|
2020-09-16 12:41:44 +03:00
|
|
|
else
|
|
|
|
gen-macos: ; @true
|
|
|
|
endif
|
2017-02-21 19:38:07 +03:00
|
|
|
|
2021-03-18 16:14:17 +03:00
|
|
|
maccatalyst-$(MACCATALYST_SDK_VERSION).g.cs: $(XCAT_PCH)
|
2021-01-11 13:56:58 +03:00
|
|
|
|
|
|
|
ifdef INCLUDE_MACCATALYST
|
|
|
|
gen-maccatalyst: maccatalyst-$(MACCATALYST_SDK_VERSION).g.cs .stamp-check-sharpie
|
2021-01-12 11:55:23 +03:00
|
|
|
$(SHARPIE) query -bind $(XCAT_PCH) > maccatalyst-$(MACCATALYST_SDK_VERSION).g.cs
|
2021-01-11 13:56:58 +03:00
|
|
|
else
|
|
|
|
gen-maccatalyst: ; @true
|
|
|
|
endif
|
|
|
|
|
|
|
|
gen-all: gen-ios gen-tvos gen-watchos gen-macos gen-maccatalyst
|
2018-01-25 17:12:41 +03:00
|
|
|
|
|
|
|
wrench: classify
|
|
|
|
|
|
|
|
report: build
|
|
|
|
rm -rf report/
|
|
|
|
$(MONO) xtro-report/bin/Debug/xtro-report.exe .
|
|
|
|
|
|
|
|
report-short:
|
|
|
|
JENKINS_SERVER_COOKIE=1 make report
|
2017-10-26 17:43:45 +03:00
|
|
|
|
2020-09-16 12:41:44 +03:00
|
|
|
ifdef INCLUDE_IOS
|
2018-08-03 17:20:00 +03:00
|
|
|
classify-ios:
|
2018-01-25 17:12:41 +03:00
|
|
|
$(MONO) bin/Debug/xtro-sharpie.exe $(XIOS_PCH) $(XIOS) $(XIOS_GL)
|
2020-09-16 12:41:44 +03:00
|
|
|
else
|
|
|
|
classify-ios: ; @true
|
|
|
|
endif
|
2018-08-03 17:20:00 +03:00
|
|
|
|
2020-09-16 12:41:44 +03:00
|
|
|
ifdef INCLUDE_TVOS
|
2018-08-03 17:20:00 +03:00
|
|
|
classify-tvos:
|
2018-01-25 17:12:41 +03:00
|
|
|
$(MONO) bin/Debug/xtro-sharpie.exe $(XTVOS_PCH) $(XTVOS) $(XTVOS_GL)
|
2020-09-16 12:41:44 +03:00
|
|
|
else
|
|
|
|
classify-tvos: ; @true
|
|
|
|
endif
|
2018-08-03 17:20:00 +03:00
|
|
|
|
2020-09-16 12:41:44 +03:00
|
|
|
ifdef INCLUDE_WATCH
|
2018-08-03 17:20:00 +03:00
|
|
|
classify-watchos:
|
|
|
|
$(MONO) bin/Debug/xtro-sharpie.exe $(XWATCHOS_PCH) $(XWATCHOS)
|
2020-09-16 12:41:44 +03:00
|
|
|
else
|
|
|
|
classify-watchos: ; @true
|
|
|
|
endif
|
2018-08-03 17:20:00 +03:00
|
|
|
|
2020-09-16 12:41:44 +03:00
|
|
|
ifdef INCLUDE_MAC
|
2018-08-03 17:20:00 +03:00
|
|
|
classify-macos:
|
2018-01-25 17:12:41 +03:00
|
|
|
$(MONO) bin/Debug/xtro-sharpie.exe $(XMAC_PCH) $(XMAC)
|
2020-09-16 12:41:44 +03:00
|
|
|
else
|
|
|
|
classify-macos: ; @true
|
|
|
|
endif
|
2018-08-03 17:20:00 +03:00
|
|
|
|
2021-01-11 13:56:58 +03:00
|
|
|
ifdef INCLUDE_MACCATALYST
|
|
|
|
classify-maccatalyst: bin/Debug/xtro-sharpie.exe $(XCAT_PCH)
|
|
|
|
$(MONO) bin/Debug/xtro-sharpie.exe $(XCAT_PCH) $(XCAT)
|
|
|
|
else
|
|
|
|
classify-maccatalyst: ; @true
|
|
|
|
endif
|
|
|
|
|
|
|
|
classify: build $(XIOS_PCH) $(XWATCHOS_PCH) $(XTVOS_PCH) $(XMAC_PCH) $(XCAT_PCH)
|
2018-08-03 17:20:00 +03:00
|
|
|
rm -f *.unclassified
|
2021-01-11 13:56:58 +03:00
|
|
|
$(MAKE) -j8 classify-ios classify-tvos classify-watchos classify-macos classify-maccatalyst
|
2018-01-25 17:12:41 +03:00
|
|
|
$(MONO) xtro-sanity/bin/Debug/xtro-sanity.exe .
|
|
|
|
rm -f *.raw
|
|
|
|
|
|
|
|
insane:
|
|
|
|
XTRO_SANITY_SKIP=1 make all
|
|
|
|
|
2018-04-04 01:02:36 +03:00
|
|
|
remove-empty:
|
|
|
|
find . -size 0 | xargs git rm
|
|
|
|
|
2018-01-25 17:12:41 +03:00
|
|
|
all: classify report
|
2017-10-26 17:43:45 +03:00
|
|
|
|
|
|
|
.stamp-check-sharpie:
|
|
|
|
@$(TOP)/system-dependencies.sh --ignore-all --enforce-sharpie
|
|
|
|
@touch $@
|
2018-01-25 17:12:41 +03:00
|
|
|
|
2018-07-04 12:14:17 +03:00
|
|
|
remove-empty-files:
|
|
|
|
find . -empty -exec git rm -f {} \;
|
2018-07-31 04:39:56 +03:00
|
|
|
|
|
|
|
unclassified2todo:
|
2020-01-07 00:53:22 +03:00
|
|
|
$(SYSTEM_CSC) -features:strict Filter.cs u2todo/u2todo.cs
|
2018-07-31 04:39:56 +03:00
|
|
|
$(MONO) u2todo.exe
|