diff --git a/Make.config b/Make.config index 5a7a6d59ad7e..3589e3387370 100644 --- a/Make.config +++ b/Make.config @@ -317,5 +317,8 @@ endif JENKINS_RESULTS_DIRECTORY ?= $(abspath $(TOP)/jenkins-results) +# Clone files instead of copying them on APFS file systems. Much faster. +CP:=$(shell df -t apfs / >/dev/null 2>&1 && echo "cp -c" || echo "cp") + .SUFFIXES: MAKEFLAGS += --no-builtin-rules diff --git a/Makefile b/Makefile index 6b4565b51e03..1334083f10b6 100644 --- a/Makefile +++ b/Makefile @@ -193,9 +193,9 @@ package: mkdir -p ../package $(MAKE) -C $(MACCORE_PATH) package # copy .pkg, .zip and *updateinfo to the packages directory to be uploaded to storage - cp $(MACCORE_PATH)/release/*.pkg ../package - cp $(MACCORE_PATH)/release/*.zip ../package - cp $(MACCORE_PATH)/release/*updateinfo ../package + $(CP) $(MACCORE_PATH)/release/*.pkg ../package + $(CP) $(MACCORE_PATH)/release/*.zip ../package + $(CP) $(MACCORE_PATH)/release/*updateinfo ../package install-system: install-system-ios install-system-mac @# Clean up some old files diff --git a/builds/Makefile b/builds/Makefile index d7645ba11636..1edb4ac047fa 100644 --- a/builds/Makefile +++ b/builds/Makefile @@ -335,10 +335,10 @@ $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/libmono-2.0.dylib $(MAC_DESTDIR)$ $(Q_LN) ln -sf libmonosgen-2.0$(suffix $@) $@ $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/pkgconfig/mono-2.pc: mac32/data/mono-2.pc | $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/pkgconfig - $(Q_CP) cp $< $@ + $(Q_CP) $(CP) $< $@ $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/etc/mono/assemblies/System/System.config: mac-System.config | $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/etc/mono/assemblies/System - $(Q_CP) cp $< $@ + $(Q_CP) $(CP) $< $@ $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/bin/bmac-mobile-mono: install/mac64/bin/mono-sgen | $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/bin $(Q) install -m 0755 $< $@ @@ -644,11 +644,11 @@ TMP_BCL_TARGET_DIRS = \ $(BUILD_DESTDIR)/bcl/xammac_net_4_5/Facades \ $(BUILD_DESTDIR)/bcl/%.dll: $(MONO_PATH)/mcs/class/lib/%.dll | $(TMP_BCL_TARGET_DIRS) - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(Q_SN) MONO_CFG_DIR=$(TOP) $(SYSTEM_SN) -q -R $@ $(PRODUCT_KEY_PATH) $(BUILD_DESTDIR)/bcl/%.pdb: $(MONO_PATH)/mcs/class/lib/%.pdb | $(TMP_BCL_TARGET_DIRS) - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(IOS_BCL_TARGETS_DIRS) $(WATCH_BCL_TARGETS_DIRS) $(TVOS_BCL_TARGETS_DIRS): $(Q) mkdir -p $@ @@ -731,8 +731,8 @@ clean-local:: clean-$(2) .stamp-build-$(2): $(MONO_PATH)/configure $(MONO_DEPENDENCIES) $(BUILD_DESTDIR)/$(2) $(MAKE) -C $(SDK_BUILDDIR) package-ios-$(3) $(SDK_ARGS) - $(Q) cp -r $(SDK_DESTDIR)/ios-$(4)/lib $(BUILD_DESTDIR)/$(2) - $(Q) cp -r $(SDK_DESTDIR)/ios-$(4)/include $(BUILD_DESTDIR)/$(2) + $(Q) $(CP) -r $(SDK_DESTDIR)/ios-$(4)/lib $(BUILD_DESTDIR)/$(2) + $(Q) $(CP) -r $(SDK_DESTDIR)/ios-$(4)/include $(BUILD_DESTDIR)/$(2) $(Q) touch $$@ build-$(2): .stamp-build-$(2) @@ -764,7 +764,7 @@ $(BUILD_DESTDIR)/$(2)/lib/libmono-native-compat.dylib: .stamp-build-$(2) $(BUILD_DESTDIR)/$(2)/lib/libmono-native-unified.dylib: .stamp-build-$(2) $(BUILD_DESTDIR)/$(2)/tmp-lib/libmono-profiler-log.0.dylib: $(BUILD_DESTDIR)/$(2)/lib/libmono-profiler-log.0.dylib | $(BUILD_DESTDIR)/$(2)/tmp-lib - $(Q) cp $$< $$@ + $(Q) $(CP) $$< $$@ $(Q) install_name_tool -id @rpath/libmono-profiler-log.dylib -change $(SDK_DESTDIR)/ios-$(4)/lib/libmonosgen-2.0.1.dylib @rpath/libmonosgen-2.0.dylib $$@ $(BUILD_DESTDIR)/$(2): @@ -839,12 +839,12 @@ $(IPHONESIMULATOR_DIRECTORIES): $(Q) mkdir -p $@ $(IOS_DESTDIR)$(IPHONESIMULATOR_SDK)/Frameworks/Mono.framework/Mono: $(IOS_DESTDIR)$(IPHONESIMULATOR_PREFIX)/lib/libmonosgen-2.0.dylib | $(IOS_DESTDIR)$(IPHONESIMULATOR_SDK)/Frameworks/Mono.framework - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(Q) install_name_tool -id @rpath/Mono.framework/Mono $@ $(Q) dsymutil -t 4 -o $(patsubst %/,%,$(dir $@)).dSYM $@ $(IOS_DESTDIR)$(IPHONESIMULATOR_SDK)/Frameworks/Mono.framework/Info.plist: Mono.framework-Info.plist | $(IOS_DESTDIR)$(IPHONESIMULATOR_SDK)/Frameworks/Mono.framework - $(Q) cp $< $@ + $(Q) $(CP) $< $@ install-iphonesimulator:: $(IPHONESIMULATOR_TARGETS) @@ -866,8 +866,8 @@ endif .stamp-build-watchsimulator: $(MONO_PATH)/configure $(MONO_DEPENDENCIES) $(MAKE) -C $(SDK_BUILDDIR) package-ios-simwatch $(SDK_ARGS) $(Q) mkdir -p $(BUILD_DESTDIR)/watchsimulator - $(Q) cp -r $(SDK_DESTDIR)/ios-simwatch-release/lib $(BUILD_DESTDIR)/watchsimulator - $(Q) cp -r $(SDK_DESTDIR)/ios-simwatch-release/include $(BUILD_DESTDIR)/watchsimulator + $(Q) $(CP) -r $(SDK_DESTDIR)/ios-simwatch-release/lib $(BUILD_DESTDIR)/watchsimulator + $(Q) $(CP) -r $(SDK_DESTDIR)/ios-simwatch-release/include $(BUILD_DESTDIR)/watchsimulator $(Q) touch $@ build-watchsimulator: .stamp-build-watchsimulator @@ -946,12 +946,12 @@ $(WATCHSIMULATOR_DIRECTORIES): $(Q) mkdir -p $@ $(IOS_DESTDIR)$(XAMARIN_WATCHSIMULATOR_SDK)/Frameworks/Mono.framework/Mono: $(IOS_DESTDIR)$(XAMARIN_WATCHSIMULATOR_SDK)/usr/lib/libmonosgen-2.0.dylib | $(IOS_DESTDIR)$(XAMARIN_WATCHSIMULATOR_SDK)/Frameworks/Mono.framework - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(Q) $(WATCHOS_BIN_PATH)/install_name_tool -id @rpath/Mono.framework/Mono $@ $(Q) dsymutil -t 4 -o $(patsubst %/,%,$(dir $@)).dSYM $@ $(IOS_DESTDIR)$(XAMARIN_WATCHSIMULATOR_SDK)/Frameworks/Mono.framework/Info.plist: Mono.framework-watchos.Info.plist | $(IOS_DESTDIR)$(XAMARIN_WATCHSIMULATOR_SDK)/Frameworks/Mono.framework - $(Q) cp $< $@ + $(Q) $(CP) $< $@ install-watchsimulator: $(WATCHSIMULATOR_TARGETS) @@ -973,8 +973,8 @@ endif .stamp-build-tvsimulator: $(MONO_PATH)/configure $(MONO_DEPENDENCIES) $(MAKE) -C $(SDK_BUILDDIR) package-ios-simtv $(SDK_ARGS) $(Q) mkdir -p $(BUILD_DESTDIR)/tvsimulator - $(Q) cp -r $(SDK_DESTDIR)/ios-simtv-release/lib $(BUILD_DESTDIR)/tvsimulator - $(Q) cp -r $(SDK_DESTDIR)/ios-simtv-release/include $(BUILD_DESTDIR)/tvsimulator + $(Q) $(CP) -r $(SDK_DESTDIR)/ios-simtv-release/lib $(BUILD_DESTDIR)/tvsimulator + $(Q) $(CP) -r $(SDK_DESTDIR)/ios-simtv-release/include $(BUILD_DESTDIR)/tvsimulator $(Q) touch $@ build-tvsimulator: .stamp-build-tvsimulator @@ -1053,12 +1053,12 @@ $(TVSIMULATOR_DIRECTORIES): $(Q) mkdir -p $@ $(IOS_DESTDIR)$(XAMARIN_TVSIMULATOR_SDK)/Frameworks/Mono.framework/Mono: $(IOS_DESTDIR)$(XAMARIN_TVSIMULATOR_SDK)/usr/lib/libmonosgen-2.0.dylib | $(IOS_DESTDIR)$(XAMARIN_TVSIMULATOR_SDK)/Frameworks/Mono.framework - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(Q) $(TVOS_BIN_PATH)/install_name_tool -id @rpath/Mono.framework/Mono $@ $(Q) dsymutil -t 4 -o $(patsubst %/,%,$(dir $@)).dSYM $@ $(IOS_DESTDIR)$(XAMARIN_TVSIMULATOR_SDK)/Frameworks/Mono.framework/Info.plist: Mono.framework-tvos.Info.plist | $(IOS_DESTDIR)$(XAMARIN_TVSIMULATOR_SDK)/Frameworks/Mono.framework - $(Q) cp $< $@ + $(Q) $(CP) $< $@ install-tvsimulator: $(TVSIMULATOR_TARGETS) @@ -1092,7 +1092,7 @@ clean-local:: clean-$(2) .stamp-build-$(2): $(MONO_PATH)/configure $(SDK_CONFIG) $(MONO_DEPENDENCIES) $(MAKE) -C $(SDK_BUILDDIR) package-ios-$(3) $(SDK_ARGS) $(Q) mkdir -p $(BUILD_DESTDIR)/$(2) - $(Q) cp -r $(SDK_DESTDIR)/ios-$(3)-release/* $(BUILD_DESTDIR)/$(2) + $(Q) $(CP) -r $(SDK_DESTDIR)/ios-$(3)-release/* $(BUILD_DESTDIR)/$(2) $(Q) touch $$@ build-$(2): .stamp-build-$(2) @@ -1265,7 +1265,7 @@ $(IOS_DESTDIR)$(IPHONEOS_SDK)/Frameworks/Mono.framework/Mono: $(TARGET_MONOFRAME $(Q) dsymutil -t 4 -o $(patsubst %/,%,$(dir $@)).dSYM $@ $(IOS_DESTDIR)$(IPHONEOS_SDK)/Frameworks/Mono.framework/Info.plist: Mono.framework-Info.plist | $(IOS_DESTDIR)$(IPHONEOS_SDK)/Frameworks/Mono.framework - $(Q) cp $< $@ + $(Q) $(CP) $< $@ install-iphoneos:: $(IPHONEOS_TARGETS) @@ -1294,7 +1294,7 @@ watchos:: targetwatch .stamp-build-targetwatch: $(MONO_PATH)/configure $(SDK_CONFIG) $(MONO_DEPENDENCIES) $(MAKE) -C $(SDK_BUILDDIR) package-ios-targetwatch $(SDK_ARGS) $(Q) mkdir -p $(BUILD_DESTDIR)/targetwatch - $(Q) cp -r $(SDK_DESTDIR)/ios-targetwatch-release/* $(BUILD_DESTDIR)/targetwatch + $(Q) $(CP) -r $(SDK_DESTDIR)/ios-targetwatch-release/* $(BUILD_DESTDIR)/targetwatch $(Q) touch $@ build-targetwatch: .stamp-build-targetwatch @@ -1397,11 +1397,11 @@ $(WATCHOS_DIRECTORIES): $(Q) mkdir -p $@ $(IOS_DESTDIR)$(XAMARIN_WATCHOS_SDK)/Frameworks/Mono.framework/Mono: $(BUILD_DESTDIR)/targetwatch/tmp-lib/Mono | $(IOS_DESTDIR)$(XAMARIN_WATCHOS_SDK)/Frameworks/Mono.framework - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(Q) dsymutil -t 4 -o $(patsubst %/,%,$(dir $@)).dSYM $@ $(IOS_DESTDIR)$(XAMARIN_WATCHOS_SDK)/Frameworks/Mono.framework/Info.plist: Mono.framework-watchos.Info.plist | $(IOS_DESTDIR)$(XAMARIN_WATCHOS_SDK)/Frameworks/Mono.framework - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(BUILD_DESTDIR)/targetwatch/tmp-lib/Mono: $(BUILD_DESTDIR)/targetwatch/lib/libmonosgen-2.0.a $(Q_GEN) CC="$(IOS_CC)" ./create-shared-library.sh $< $@ -arch armv7k -install_name @rpath/Mono.framework/Mono -mwatchos-version-min=$(MIN_WATCHOS_SDK_VERSION) -isysroot $(DEVICEWATCH_SDK) -lc++ -fembed-bitcode @@ -1433,7 +1433,7 @@ tvos:: targettv .stamp-build-targettv: $(MONO_PATH)/configure $(SDK_CONFIG) $(MONO_DEPENDENCIES) $(MAKE) -C $(SDK_BUILDDIR) package-ios-targettv $(SDK_ARGS) $(Q) mkdir -p $(BUILD_DESTDIR)/targettv - $(Q) cp -r $(SDK_DESTDIR)/ios-targettv-release/* $(BUILD_DESTDIR)/targettv + $(Q) $(CP) -r $(SDK_DESTDIR)/ios-targettv-release/* $(BUILD_DESTDIR)/targettv $(Q) touch $@ build-targettv: .stamp-build-targettv @@ -1535,11 +1535,11 @@ $(TVOS_DIRECTORIES): $(Q) mkdir -p $@ $(IOS_DESTDIR)$(XAMARIN_TVOS_SDK)/Frameworks/Mono.framework/Mono: $(BUILD_DESTDIR)/targettv/tmp-lib/Mono | $(IOS_DESTDIR)$(XAMARIN_TVOS_SDK)/Frameworks/Mono.framework - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(Q) dsymutil -t 4 -o $(patsubst %/,%,$(dir $@)).dSYM $@ $(IOS_DESTDIR)$(XAMARIN_TVOS_SDK)/Frameworks/Mono.framework/Info.plist: Mono.framework-tvos.Info.plist | $(IOS_DESTDIR)$(XAMARIN_TVOS_SDK)/Frameworks/Mono.framework - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(BUILD_DESTDIR)/targettv/tmp-lib/Mono: $(BUILD_DESTDIR)/targettv/lib/libmonosgen-2.0.a $(Q_GEN) CC="$(IOS_CC)" ./create-shared-library.sh $< $@ -arch arm64 -install_name @rpath/Mono.framework/Mono -mtvos-version-min=$(MIN_TVOS_SDK_VERSION) -isysroot $(DEVICETV_SDK) -lc++ -fembed-bitcode diff --git a/fsharp/Makefile b/fsharp/Makefile index 11d2a2244745..3fb39467c289 100644 --- a/fsharp/Makefile +++ b/fsharp/Makefile @@ -183,7 +183,7 @@ $(FSHARP_DIRECTORIES): ### Sign the assemblies. This is done in a temporary directory so that we don't have to re-sign on every install. build/%.dll: $(BIN_DIR)/%.dll | build/monotouch build/xamarinmacmobile build/xamarinmacfull build/xamarinwatchos build/xamarintvos - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(Q_SN) MONO_CFG_DIR="$(TOP)" sn -q -R "$@" "$(PRODUCT_KEY_PATH)" build.stamp: export TargetFrameworkFallbackSearchPaths=$(IOS_DESTDIR)/Library/Frameworks/Mono.framework/External/xbuild-frameworks diff --git a/msbuild/Makefile b/msbuild/Makefile index b83ad1a1ef7c..237e3c459801 100644 --- a/msbuild/Makefile +++ b/msbuild/Makefile @@ -278,7 +278,7 @@ $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono/4.5/RedistList/FrameworkList $(Q) sed 's@%TargetFrameworkDirectory%@$(MAC_TARGETDIR)/Library/Frameworks/Xamarin.Mac.framework/Versions/Current/lib/mono/4.5@' $< > $@ $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/etc/mono/4.5/machine.config: $(TOP)/tools/mmp/machine.4_5.config | $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/etc/mono/4.5 - $(Q) cp $(TOP)/tools/mmp/machine.4_5.config $@ + $(Q) $(CP) $(TOP)/tools/mmp/machine.4_5.config $@ $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/msbuild/%: Xamarin.Mac.Tasks/% | $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/msbuild $(Q) install -m 644 $< $@ @@ -306,7 +306,7 @@ $(foreach dll,$(MSBUILD_TASK_ASSEMBLIES),$(dll)/bin/$(CONFIG)/$(dll).dll): .buil define copyToBuild build/$(1).dll: $(1)/bin/$(CONFIG)/$(1).dll | build - $$(Q) cp $$< $$@ + $$(Q) $(CP) $$< $$@ endef # Create the rules to copy all the dlls into the 'build' directory. diff --git a/msbuild/Xamarin.MacDev.Tasks.Core/Tasks/BTouchTaskBase.cs b/msbuild/Xamarin.MacDev.Tasks.Core/Tasks/BTouchTaskBase.cs index 36902dda634e..0a406d80ca67 100644 --- a/msbuild/Xamarin.MacDev.Tasks.Core/Tasks/BTouchTaskBase.cs +++ b/msbuild/Xamarin.MacDev.Tasks.Core/Tasks/BTouchTaskBase.cs @@ -202,15 +202,20 @@ protected override string GenerateCommandLineCommands () { "projectdir", projectDir }, // Apparently msbuild doesn't propagate the solution path, so we can't get it. // { "solutiondir", proj.ParentSolution != null ? proj.ParentSolution.BaseDirectory : proj.BaseDirectory }, - { "targetpath", Path.Combine (Path.GetDirectoryName (target), Path.GetFileName (target)) }, - { "targetdir", Path.GetDirectoryName (target) }, - { "targetname", Path.GetFileName (target) }, - { "targetext", Path.GetExtension (target) }, }; + // OutputAssembly is optional so it can be null + if (target != null) { + var d = Path.GetDirectoryName (target); + var n = Path.GetFileName (target); + customTags.Add ("targetpath", Path.Combine (d, n)); + customTags.Add ("targetdir", d); + customTags.Add ("targetname", n); + customTags.Add ("targetext", Path.GetExtension (target)); + } for (int i = 0; i < extraArgs.Length; i++) { var argument = extraArgs[i]; - + cmd.AppendTextUnquoted (" "); cmd.AppendTextUnquoted (StringParserService.Parse (argument, customTags)); } } diff --git a/msbuild/tests/Xamarin.iOS.Tasks.Tests/TaskTests/BTouchTaskTest.cs b/msbuild/tests/Xamarin.iOS.Tasks.Tests/TaskTests/BTouchTaskTest.cs index 08f9bd23028d..93f6ccbe8b25 100644 --- a/msbuild/tests/Xamarin.iOS.Tasks.Tests/TaskTests/BTouchTaskTest.cs +++ b/msbuild/tests/Xamarin.iOS.Tasks.Tests/TaskTests/BTouchTaskTest.cs @@ -9,11 +9,7 @@ namespace Xamarin.iOS.Tasks { class CustomBTouchTask : BTouch { - public CustomBTouchTask () - { - } - - public new string GenerateCommandLineCommands () + public string GetCommandLineCommands () { return base.GenerateCommandLineCommands (); } @@ -22,29 +18,34 @@ public CustomBTouchTask () [TestFixture] public class BTouchTaskTests : TestBase { - CustomBTouchTask Task { - get; set; - } - - public override void Setup () - { - base.Setup (); - - Task = CreateTask (); - - Task.ApiDefinitions = new [] { new TaskItem ("apidefinition.cs") }; - Task.References = new [] { new TaskItem ("a.dll"), new TaskItem ("b.dll"), new TaskItem ("c.dll") }; - } - [Test] public void StandardCommandline () { - var args = Task.GenerateCommandLineCommands (); + var task = CreateTask (); + + task.ApiDefinitions = new[] { new TaskItem ("apidefinition.cs") }; + task.References = new[] { new TaskItem ("a.dll"), new TaskItem ("b.dll"), new TaskItem ("c.dll") }; + + var args = task.GetCommandLineCommands (); Assert.IsTrue (args.Contains ("-r " + Path.Combine (Environment.CurrentDirectory, "a.dll")), "#1a"); Assert.IsTrue (args.Contains ("-r " + Path.Combine (Environment.CurrentDirectory, "b.dll")), "#1b"); Assert.IsTrue (args.Contains ("-r " + Path.Combine (Environment.CurrentDirectory, "c.dll")), "#1c"); } + [Test] + public void Bug656983 () + { + var task = CreateTask (); + + task.ApiDefinitions = new[] { new TaskItem ("apidefinition.cs") }; + task.References = new[] { new TaskItem ("a.dll"), new TaskItem ("b.dll"), new TaskItem ("c.dll") }; + task.ProjectDir = "~/"; // not important, but required (so can't be null) + + task.OutputAssembly = null; // default, but important for the bug (in case that default changes) + task.ExtraArgs = "-invalid"; + var args = task.GetCommandLineCommands (); + Assert.That (args.Contains (" -invalid"), "incorrect ExtraArg not causing an exception"); + } } } diff --git a/opentk/Makefile.include b/opentk/Makefile.include index 1f30f13768cf..fe20e1885470 100644 --- a/opentk/Makefile.include +++ b/opentk/Makefile.include @@ -51,13 +51,13 @@ $(MAC_BUILD_DIR)/net_4_5/OpenTK.dll: $(MAC_OPENTK_SOURCES) $(MAC_BUILD_DIR)/full $(MAC_BUILD_DIR)/net_4_5-reference/OpenTK.dll: $(MAC_BUILD_DIR)/net_4_5/OpenTK.dll @mkdir -p $(@D) - $(Q) cp $^ $@ - $(Q) cp $(<:.dll=.pdb) $(@:.dll=.pdb) + $(Q) $(CP) $^ $@ + $(Q) $(CP) $(<:.dll=.pdb) $(@:.dll=.pdb) $(MAC_BUILD_DIR)/%-reference/OpenTK.dll: $(MAC_BUILD_DIR)/%-32/OpenTK.dll @mkdir -p $(@D) - $(Q) cp $^ $@ - $(Q) cp $(<:.dll=.pdb) $(@:.dll=.pdb) + $(Q) $(CP) $^ $@ + $(Q) $(CP) $(<:.dll=.pdb) $(@:.dll=.pdb) $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/reference/mobile/OpenTK.dll: $(MAC_BUILD_DIR)/mobile-reference/OpenTK.dll | $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/reference/mobile $(Q) install -m 0755 $^ $@ diff --git a/runtime/Makefile b/runtime/Makefile index f6ce43219eac..19521cf16811 100644 --- a/runtime/Makefile +++ b/runtime/Makefile @@ -132,10 +132,10 @@ $(IOS_DESTDIR)$$(XAMARIN_$(5)SIMULATOR_SDK)/usr/lib/%.a: .libs/$(1)/%.a | $(IOS_ $(Q) install -m 0644 $$< $$@ $(IOS_DESTDIR)$$(XAMARIN_$(5)SIMULATOR_SDK)/Frameworks/Xamarin.framework/Xamarin: .libs/$(1)/Xamarin-sim.framework | $(IOS_DESTDIR)$$(XAMARIN_$(5)SIMULATOR_SDK)/Frameworks/Xamarin.framework - $(Q) cp $$< $$@ + $(Q) $(CP) $$< $$@ $(IOS_DESTDIR)$$(XAMARIN_$(5)SIMULATOR_SDK)/Frameworks/Xamarin-debug.framework/Xamarin-debug: .libs/$(1)/Xamarin-debug-sim.framework | $(IOS_DESTDIR)$$(XAMARIN_$(5)SIMULATOR_SDK)/Frameworks/Xamarin-debug.framework - $(Q) cp $$< $$@ + $(Q) $(CP) $$< $$@ $(IOS_DESTDIR)$$(XAMARIN_$(5)SIMULATOR_SDK)/Frameworks/%.framework/Info.plist: Xamarin.framework-$(1).Info.plist | $(IOS_DESTDIR)$$(XAMARIN_$(5)SIMULATOR_SDK)/Frameworks/%.framework $(Q) sed 's/@BUNDLE_EXECUTABLE@/$$*/' $$< > $$@ @@ -145,10 +145,10 @@ $(IOS_DESTDIR)$$(XAMARIN_$(6)OS_SDK)/usr/lib/%.a: .libs/$(1)/%.a | $(IOS_DESTDIR $(Q) install -m 0644 $$< $$@ $(IOS_DESTDIR)$$(XAMARIN_$(6)OS_SDK)/Frameworks/Xamarin.framework/Xamarin: .libs/$(1)/Xamarin-dev.framework | $(IOS_DESTDIR)$$(XAMARIN_$(6)OS_SDK)/Frameworks/Xamarin.framework - $(Q) cp $$< $$@ + $(Q) $(CP) $$< $$@ $(IOS_DESTDIR)$$(XAMARIN_$(6)OS_SDK)/Frameworks/Xamarin-debug.framework/Xamarin-debug: .libs/$(1)/Xamarin-debug-dev.framework | $(IOS_DESTDIR)$$(XAMARIN_$(6)OS_SDK)/Frameworks/Xamarin-debug.framework - $(Q) cp $$< $$@ + $(Q) $(CP) $$< $$@ $(IOS_DESTDIR)$$(XAMARIN_$(6)OS_SDK)/Frameworks/%.framework/Info.plist: Xamarin.framework-$(1).Info.plist | $(IOS_DESTDIR)$$(XAMARIN_$(6)OS_SDK)/Frameworks/%.framework $(Q) sed 's/@BUNDLE_EXECUTABLE@/$$*/' $$< > $$@ @@ -261,7 +261,7 @@ $$(foreach arch,$$($(2)_ARCHITECTURES),.libs/$(1)/tvextension-main.$$(arch).o): .libs/$(1)/libxamarin-dev.dylib: $$(foreach arch,$$($(2)_DEVICE_ARCHITECTURES),.libs/$(1)/libxamarin.$$(arch).dylib) $(Q) rm -f $$@ ifeq (1,$$(words $$($(2)_DEVICE_ARCHITECTURES))) - $(Q) cp $$^ $$@ + $(Q) $(CP) $$^ $$@ else $$(call Q_2,LIPO, [$1]) $(DEVICE_BIN_PATH)/lipo $$^ -create -output $$@ endif @@ -271,7 +271,7 @@ endif .libs/$(1)/libxamarin-debug-dev.dylib: $$(foreach arch,$$($(2)_DEVICE_ARCHITECTURES),.libs/$(1)/libxamarin-debug.$$(arch).dylib) $(Q) rm -f $$@ ifeq (1,$$(words $$($(2)_DEVICE_ARCHITECTURES))) - $(Q) cp $$^ $$@ + $(Q) $(CP) $$^ $$@ else $$(call Q_2,LIPO, [$1]) $(DEVICE_BIN_PATH)/lipo $$^ -create -output $$@ endif @@ -281,7 +281,7 @@ endif .libs/$(1)/Xamarin-dev.framework: $$(foreach arch,$$($(2)_DEVICE_ARCHITECTURES),.libs/$(1)/Xamarin.$$(arch).framework) $(Q) rm -f $$@ ifeq (1,$$(words $$($(2)_DEVICE_ARCHITECTURES))) - $(Q) cp $$^ $$@ + $(Q) $(CP) $$^ $$@ else $$(call Q_2,LIPO, [$1]) $(DEVICE_BIN_PATH)/lipo $$^ -create -output $$@ endif @@ -289,7 +289,7 @@ endif .libs/$(1)/Xamarin-debug-dev.framework: $$(foreach arch,$$($(2)_DEVICE_ARCHITECTURES),.libs/$(1)/Xamarin-debug.$$(arch).framework) $(Q) rm -f $$@ ifeq (1,$$(words $$($(2)_DEVICE_ARCHITECTURES))) - $(Q) cp $$^ $$@ + $(Q) $(CP) $$^ $$@ else $$(call Q_2,LIPO, [$1]) $(DEVICE_BIN_PATH)/lipo $$^ -create -output $$@ endif @@ -526,10 +526,10 @@ $(foreach arch,$(MAC_ARCHITECTURES),.libs/mac/extension-main.$(arch).o): EXTRA_D $(call Q_2,LIPO, [mac]) xcrun lipo -create $^ -o $@ .libs/mac/XamMacLauncher: $(MACIOS_BINARIES_PATH)/XamMacLauncher | .libs/mac - $(Q) cp $< $@ + $(Q) $(CP) $< $@ .libs/mac/libxammac-%.a: $(MACIOS_BINARIES_PATH)/libxammac-%.a | .libs/mac - $(Q) cp $< $@ + $(Q) $(CP) $< $@ .SECONDARY: .libs/mac/libxammac-classic.a .libs/mac/libxammac-system-classic.a .libs/mac/libxammac-classic-debug.a .libs/mac/libxammac-system-classic-debug.a @@ -551,7 +551,7 @@ $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/XamMacLauncher: .libs/mac/XamMacL $(Q) xcrun strip -S $@ $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/%: .libs/mac/% | $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono/XamMacLauncher: | $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono $(Q) ln -sF ../XamMacLauncher $@ diff --git a/src/Constants.mac.cs.in b/src/Constants.mac.cs.in index 615679f52c55..615639e70fee 100644 --- a/src/Constants.mac.cs.in +++ b/src/Constants.mac.cs.in @@ -146,6 +146,6 @@ namespace MonoMac { public const string NaturalLanguageLibrary = "/System/Library/Frameworks/Frameworks/NaturalLanguage.framework/NaturalLanguage"; public const string VideoSubscriberAccountLibrary = "/System/Library/Frameworks/VideoSubscriberAccount.framework/VideoSubscriberAccount"; public const string UserNotificationsLibrary = "/System/Library/Frameworks/UserNotifications.framework/UserNotifications"; - public const string iTunesLibraryLibrary = "/System/Library/Frameworks/iTunesLibrary.framewor/iTunesLibrary"; + public const string iTunesLibraryLibrary = "/System/Library/Frameworks/iTunesLibrary.framework/iTunesLibrary"; } } diff --git a/src/Makefile b/src/Makefile index 336e8c58a202..78560ae13a08 100644 --- a/src/Makefile +++ b/src/Makefile @@ -135,20 +135,20 @@ $(IOS_BUILD_DIR)/native-$(1)%Xamarin.iOS.dll $(IOS_BUILD_DIR)/native-$(1)%Xamari endef $(IOS_BUILD_DIR)/compat/%: $(MACIOS_BINARIES_PATH)/% | $(IOS_BUILD_DIR)/compat - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/2.1/%: $(IOS_BUILD_DIR)/compat/% - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(eval $(call IOS_TARGETS_template,32)) $(eval $(call IOS_TARGETS_template,64)) # MonoTouch.Dialog-1 $(IOS_BUILD_DIR)/reference/MonoTouch.Dialog-1.dll: $(MACIOS_BINARIES_PATH)/MonoTouch.Dialog-Unified/ios/MonoTouch.Dialog-1.dll | $(IOS_BUILD_DIR)/reference - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(IOS_BUILD_DIR)/reference/MonoTouch.Dialog-1.pdb: $(MACIOS_BINARIES_PATH)/MonoTouch.Dialog-Unified/ios/MonoTouch.Dialog-1.pdb | $(IOS_BUILD_DIR)/reference - $(Q) cp $< $@ + $(Q) $(CP) $< $@ # MonoTouch.NUnitLite $(IOS_BUILD_DIR)/reference%MonoTouch.NUnitLite.dll $(IOS_BUILD_DIR)/reference%MonoTouch.NUnitLite.pdb: $(IOS_TOUCHUNIT_SOURCES) $(IOS_BUILD_DIR)/reference/MonoTouch.Dialog-1.dll $(PRODUCT_KEY_PATH) $(IOS_BUILD_DIR)/reference/Xamarin.iOS.dll @@ -171,19 +171,19 @@ $(IOS_BUILD_DIR)/reference/Xamarin.iOS.dll: $(IOS_BUILD_DIR)/native-64/Xamarin.i $(Q_GEN) mono-cil-strip $< $@ $(IOS_BUILD_DIR)/reference/Xamarin.iOS.pdb: $(IOS_BUILD_DIR)/native-64/Xamarin.iOS.pdb | $(IOS_BUILD_DIR)/reference - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/2.1/% : $(MACIOS_BINARIES_PATH)/% | $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/2.1 - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/2.1/Facades/% : $(MACIOS_BINARIES_PATH)/Facades/% | $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/2.1 - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(IOS_BUILD_DIR)/compat/%: $(MACIOS_BINARIES_PATH)/% | $(IOS_BUILD_DIR)/compat - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(IOS_BUILD_DIR)/compat/Facades/System.Drawing.Primitives.dll : $(MACIOS_BINARIES_PATH)/Facades/System.Drawing.Primitives.dll | $(IOS_BUILD_DIR)/compat/Facades - $(Q) cp $< $@ + $(Q) $(CP) $< $@ # # Assemblies which require special handling as they have dependency on Xamarin.iOS.dll @@ -194,14 +194,14 @@ $(MONO_PATH)/mcs/class/lib/monotouch/reference_Facades/System.Drawing.Primitives @touch $@ $(IOS_BUILD_DIR)/%/Facades/System.Drawing.Primitives.dll: $(MONO_PATH)/mcs/class/lib/monotouch/%_Facades/System.Drawing.Primitives.dll | $(IOS_BUILD_DIR)/compat/Facades $(IOS_BUILD_DIR)/reference/Facades - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(MONO_PATH)/mcs/class/lib/monotouch/reference_Facades/netstandard.dll: $(IOS_BUILD_DIR)/reference/Xamarin.iOS.dll $(IOS_BUILD_DIR)/reference/OpenTK-1.0.dll $(call Q_PROF_CSC,ios/unified) $(MAKE) $(if $(V),,-s) -C $(MONO_PATH)/mcs/class/Facades/netstandard PROFILE=monotouch LIBRARY_SUBDIR=reference_Facades EXTERNAL_FACADE_DRAWING_REFERENCE="$(abspath $(IOS_BUILD_DIR)/reference/Xamarin.iOS.dll),$(abspath $(IOS_BUILD_DIR)/reference/OpenTK-1.0.dll)" @touch $@ $(IOS_BUILD_DIR)/%/Facades/netstandard.dll: $(MONO_PATH)/mcs/class/lib/monotouch/%_Facades/netstandard.dll | $(IOS_BUILD_DIR)/compat/Facades $(IOS_BUILD_DIR)/reference/Facades - $(Q) cp $< $@ + $(Q) $(CP) $< $@ # # System.Net.Http is special @@ -234,12 +234,12 @@ $(MONO_PATH)/mcs/class/lib/monotouch/reference/System.Net.Http%dll $(MONO_PATH)/ # sign dll (one target for both compat+reference) $(IOS_BUILD_DIR)/%/System.Net.Http.dll: $(MONO_PATH)/mcs/class/lib/monotouch/%/System.Net.Http.dll | $(IOS_BUILD_DIR)/compat $(IOS_BUILD_DIR)/reference - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(call Q_PROF_SN,ios/$@) MONO_CFG_DIR=$(TOP) $(SYSTEM_SN) -q -R $@ $(PRODUCT_KEY_PATH) # (one target for both compat+reference) $(IOS_BUILD_DIR)/%/System.Net.Http.pdb: $(MONO_PATH)/mcs/class/lib/monotouch/%/System.Net.Http.pdb | $(IOS_BUILD_DIR)/compat $(IOS_BUILD_DIR)/reference - $(Q) cp $< $@ + $(Q) $(CP) $< $@ clean-local:: rm -rf build @@ -499,11 +499,11 @@ $(eval $(call MAC_TARGETS_template,full-64,Xamarin.Mac.dll,full,$(MAC_CFNETWORK_ $(MAC_BUILD_DIR)/%-reference/Xamarin.Mac.dll: $(MAC_BUILD_DIR)/%-64/Xamarin.Mac.dll @mkdir -p $(@D) - $(Q) cp $^ $@ + $(Q) $(CP) $^ $@ $(MAC_BUILD_DIR)/%-reference/Xamarin.Mac.pdb: $(MAC_BUILD_DIR)/%-64/Xamarin.Mac.pdb @mkdir -p $(@D) - $(Q) cp $^ $@ + $(Q) $(CP) $^ $@ # System.Drawing.Primitives.dll is special @@ -513,7 +513,7 @@ $(MONO_PATH)/mcs/class/lib/xammac/reference_Facades/System.Drawing.Primitives.dl @touch $@ $(MAC_BUILD_DIR)/mobile/Facades/System.Drawing.Primitives.dll: $(MONO_PATH)/mcs/class/lib/xammac/reference_Facades/System.Drawing.Primitives.dll $(MAC_BUILD_DIR)/mobile/Facades - $(Q) cp $< $@ + $(Q) $(CP) $< $@ # netstandard.dll is special @@ -522,15 +522,15 @@ $(MONO_PATH)/mcs/class/lib/xammac/reference_Facades/netstandard.dll: $(MAC_BUILD @touch $@ $(MAC_BUILD_DIR)/mobile/Facades/netstandard.dll: $(MONO_PATH)/mcs/class/lib/xammac/reference_Facades/netstandard.dll $(MAC_BUILD_DIR)/mobile/Facades - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(MAC_BUILD_DIR)/compat/XamMac.CFNetwork.dll: $(MACIOS_BINARIES_PATH)/XamMac.CFNetwork.dll | $(MAC_BUILD_DIR)/compat - $(Q) cp $< $@ - $(Q) cp $<.mdb $@.mdb + $(Q) $(CP) $< $@ + $(Q) $(CP) $<.mdb $@.mdb $(MAC_BUILD_DIR)/compat/XamMac.dll: $(MACIOS_BINARIES_PATH)/XamMac.dll | $(MAC_BUILD_DIR)/compat - $(Q) cp $< $@ - $(Q) cp $<.mdb $@.mdb + $(Q) $(CP) $< $@ + $(Q) $(CP) $<.mdb $@.mdb MAC_VARIANTS_TARGETS = \ $(MAC_BUILD_DIR)/compat/XamMac.dll \ @@ -753,7 +753,7 @@ $(WATCH_BUILD_DIR)/reference/Xamarin.WatchOS.dll: $(WATCH_BUILD_DIR)/watch-32/Xa $(Q_GEN) mono-cil-strip $< $@ $(WATCH_BUILD_DIR)/reference/Xamarin.WatchOS.pdb: $(WATCH_BUILD_DIR)/watch-32/Xamarin.WatchOS.pdb | $(WATCH_BUILD_DIR)/reference - $(Q) cp $< $@ + $(Q) $(CP) $< $@ # MonoTouch.NUnitLite $(WATCH_BUILD_DIR)/reference/MonoTouch.NUnitLite%dll $(WATCH_BUILD_DIR)/reference/MonoTouch.NUnitLite%pdb: $(WATCHOS_TOUCHUNIT_SOURCES) $(PRODUCT_KEY_PATH) $(WATCH_BUILD_DIR)/reference/Xamarin.WatchOS.dll @@ -771,7 +771,7 @@ $(MONO_PATH)/mcs/class/lib/monotouch_watch/reference_Facades/System.Drawing.Prim @touch $@ $(WATCH_BUILD_DIR)/%/Facades/System.Drawing.Primitives.dll: $(MONO_PATH)/mcs/class/lib/monotouch_watch/%_Facades/System.Drawing.Primitives.dll | $(WATCH_BUILD_DIR)/reference/Facades - $(Q) cp $< $@ + $(Q) $(CP) $< $@ # netstandard.dll is special @@ -780,7 +780,7 @@ $(MONO_PATH)/mcs/class/lib/monotouch_watch/reference_Facades/netstandard.dll: $( @touch $@ $(WATCH_BUILD_DIR)/%/Facades/netstandard.dll: $(MONO_PATH)/mcs/class/lib/monotouch_watch/%_Facades/netstandard.dll | $(WATCH_BUILD_DIR)/reference/Facades - $(Q) cp $< $@ + $(Q) $(CP) $< $@ # System.Net.Http.dll is special. See comment in src/Makefile @@ -798,11 +798,11 @@ $(MONO_PATH)/mcs/class/lib/monotouch_watch/reference/System.Net.Http%dll $(MONO_ # sign dll $(WATCH_BUILD_DIR)/reference/System.Net.Http.dll: $(MONO_PATH)/mcs/class/lib/monotouch_watch/reference/System.Net.Http.dll | $(WATCH_BUILD_DIR)/reference - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(call Q_PROF_SN,watch) MONO_CFG_DIR=$(TOP) $(SYSTEM_SN) -q -R $@ $(PRODUCT_KEY_PATH) $(WATCH_BUILD_DIR)/reference/System.Net.Http.pdb: $(MONO_PATH)/mcs/class/lib/monotouch_watch/reference/System.Net.Http.pdb | $(WATCH_BUILD_DIR)/reference - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(PROJECT_DIR)/xamwatch.csproj: xamwatch.tmpl.csproj Makefile $(wildcard $(TOP)/*.sources) @sed -e 's**$(foreach file,$(WATCHOS_SOURCES),)*' -e 's**$(foreach file,$(WATCHOS_APIS),)*' $< | xmllint --format - > $@ @@ -962,7 +962,7 @@ $(TVOS_BUILD_DIR)/reference/Xamarin.TVOS.dll: $(TVOS_BUILD_DIR)/tvos-64/Xamarin. $(Q_GEN) mono-cil-strip $< $@ $(TVOS_BUILD_DIR)/reference/Xamarin.TVOS.pdb: $(TVOS_BUILD_DIR)/tvos-64/Xamarin.TVOS.pdb | $(TVOS_BUILD_DIR)/reference - $(Q) cp $< $@ + $(Q) $(CP) $< $@ # MonoTouch.NUnitLite $(TVOS_BUILD_DIR)/reference/MonoTouch.NUnitLite%dll $(TVOS_BUILD_DIR)/reference/MonoTouch.NUnitLite%pdb: $(TVOS_TOUCHUNIT_SOURCES) $(PRODUCT_KEY_PATH) $(TVOS_BUILD_DIR)/reference/Xamarin.TVOS.dll $(TVOS_BUILD_DIR)/reference/MonoTouch.Dialog-1.dll @@ -975,10 +975,10 @@ $(TVOS_BUILD_DIR)/reference/MonoTouch.NUnitLite%dll $(TVOS_BUILD_DIR)/reference/ # MonoTouch.Dialog-1 $(TVOS_BUILD_DIR)/reference/MonoTouch.Dialog-1.dll: $(MACIOS_BINARIES_PATH)/MonoTouch.Dialog-Unified/tvos/MonoTouch.Dialog-1.dll | $(TVOS_BUILD_DIR)/reference - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(TVOS_BUILD_DIR)/reference/MonoTouch.Dialog-1.pdb: $(MACIOS_BINARIES_PATH)/MonoTouch.Dialog-Unified/tvos/MonoTouch.Dialog-1.pdb | $(TVOS_BUILD_DIR)/reference - $(Q) cp $< $@ + $(Q) $(CP) $< $@ # System.Drawing.Primitives.dll is special @@ -987,7 +987,7 @@ $(MONO_PATH)/mcs/class/lib/monotouch_tv/reference_Facades/System.Drawing.Primiti @touch $@ $(TVOS_BUILD_DIR)/%/Facades/System.Drawing.Primitives.dll: $(MONO_PATH)/mcs/class/lib/monotouch_tv/%_Facades/System.Drawing.Primitives.dll | $(TVOS_BUILD_DIR)/reference/Facades - $(Q) cp $< $@ + $(Q) $(CP) $< $@ # netstandard.dll is special @@ -996,7 +996,7 @@ $(MONO_PATH)/mcs/class/lib/monotouch_tv/reference_Facades/netstandard.dll: $(TVO @touch $@ $(TVOS_BUILD_DIR)/%/Facades/netstandard.dll: $(MONO_PATH)/mcs/class/lib/monotouch_tv/%_Facades/netstandard.dll | $(TVOS_BUILD_DIR)/reference/Facades - $(Q) cp $< $@ + $(Q) $(CP) $< $@ # System.Net.Http.dll is special. See comment in src/Makefile @@ -1016,11 +1016,11 @@ $(MONO_PATH)/mcs/class/lib/monotouch_tv/reference/System.Net.Http%dll $(MONO_PAT # sign dll $(TVOS_BUILD_DIR)/reference/System.Net.Http.dll: $(MONO_PATH)/mcs/class/lib/monotouch_tv/reference/System.Net.Http.dll | $(TVOS_BUILD_DIR)/reference - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(call Q_PROF_SN,tvos) MONO_CFG_DIR=$(TOP) $(SYSTEM_SN) -q -R $@ $(PRODUCT_KEY_PATH) $(TVOS_BUILD_DIR)/reference/System.Net.Http.pdb: $(MONO_PATH)/mcs/class/lib/monotouch_tv/reference/System.Net.Http.pdb | $(TVOS_BUILD_DIR)/reference - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(PROJECT_DIR)/xamtvos.csproj: xamtvos.tmpl.csproj Makefile $(wildcard $(TOP)/*.sources) @sed -e 's**$(foreach file,$(TVOS_SOURCES),)*' -e 's**$(foreach file,$(TVOS_APIS),)*' $< | xmllint --format - > $@ diff --git a/src/Makefile.generator b/src/Makefile.generator index 20758c790e15..f3d938e7d117 100644 --- a/src/Makefile.generator +++ b/src/Makefile.generator @@ -164,10 +164,10 @@ $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/bgen/bgen-classic.exe: $(MACIOS_B $(Q) install -m 0644 $< $(@:.exe=.pdb) $(MAC_BUILD_DIR)/XamMac.BindingAttributes.dll: $(MACIOS_BINARIES_PATH)/XamMac.BindingAttributes.dll | $(MAC_BUILD_DIR) - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(MAC_BUILD_DIR)/XamMac.BindingAttributes.mdb: $(MACIOS_BINARIES_PATH)/XamMac.BindingAttributes.mdb | $(MAC_BUILD_DIR) - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(MAC_BUILD_DIR)/Xamarin.Mac-%.BindingAttributes.dll: generator-attributes.cs Makefile.generator $(Q) mkdir -p $(dir $@) diff --git a/tests/Makefile b/tests/Makefile index 676e6255454f..1c483cf70ba0 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -223,17 +223,17 @@ qa-test-dependencies.zip: ifdef INCLUDE_TVOS @# TVOS $(Q) mkdir -p $@.tmpdir/tvos - $(Q) cp $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.TVOS/MonoTouch.Dialog-1.dll* $@.tmpdir/tvos - $(Q) cp $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.TVOS/MonoTouch.NUnitLite.dll* $@.tmpdir/tvos - $(Q) cp $(TOP)/tests/test-libraries/.libs/tvos/libtest.a $@.tmpdir/tvos - $(Q) cp $(TOP)/tests/test-libraries/.libs/tvos/libtest.dylib $@.tmpdir/tvos - $(Q) cp -a $(TOP)/tests/test-libraries/.libs/tvos/XTest.framework $@.tmpdir/tvos + $(Q) $(CP) $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.TVOS/MonoTouch.Dialog-1.dll* $@.tmpdir/tvos + $(Q) $(CP) $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.TVOS/MonoTouch.NUnitLite.dll* $@.tmpdir/tvos + $(Q) $(CP) $(TOP)/tests/test-libraries/.libs/tvos/libtest.a $@.tmpdir/tvos + $(Q) $(CP) $(TOP)/tests/test-libraries/.libs/tvos/libtest.dylib $@.tmpdir/tvos + $(Q) $(CP) -a $(TOP)/tests/test-libraries/.libs/tvos/XTest.framework $@.tmpdir/tvos endif @# iOS $(Q) mkdir -p $@.tmpdir/ios - $(Q) cp $(TOP)/tests/test-libraries/.libs/ios/libtest.a $@.tmpdir/ios - $(Q) cp $(TOP)/tests/test-libraries/.libs/ios/libtest.dylib $@.tmpdir/ios - $(Q) cp -a $(TOP)/tests/test-libraries/.libs/ios/XTest.framework $@.tmpdir/ios + $(Q) $(CP) $(TOP)/tests/test-libraries/.libs/ios/libtest.a $@.tmpdir/ios + $(Q) $(CP) $(TOP)/tests/test-libraries/.libs/ios/libtest.dylib $@.tmpdir/ios + $(Q) $(CP) -a $(TOP)/tests/test-libraries/.libs/ios/XTest.framework $@.tmpdir/ios $(Q) printf '#!/bin/bash -e\n\n/Library/Frameworks/Xamarin.iOS.framework/Versions/Current/bin/mlaunch "$$@"\n' > $@.tmpdir/mlaunch $(Q) chmod +x $@.tmpdir/mlaunch @# Generate zip diff --git a/tests/common/TestRuntime.cs b/tests/common/TestRuntime.cs index 623a523df891..a5f84f8cd5fb 100644 --- a/tests/common/TestRuntime.cs +++ b/tests/common/TestRuntime.cs @@ -531,13 +531,6 @@ static bool CheckWatchOSSystemVersion (int major, int minor, bool throwIfOtherPl #endif } - public static void AssertNotWatchOS (string message = "This test is not supported on watchOS") - { -#if __WATCHOS__ - NUnit.Framework.Assert.Ignore (message); -#endif - } - static void AssertWatchOSSystemVersion (int major, int minor, bool throwIfOtherPlatform = true) { if (CheckWatchOSSystemVersion (major, minor, throwIfOtherPlatform)) diff --git a/tests/mmptest/regression/Makefile b/tests/mmptest/regression/Makefile index 9c9a68cc4da2..bd7bd3370f79 100644 --- a/tests/mmptest/regression/Makefile +++ b/tests/mmptest/regression/Makefile @@ -48,9 +48,6 @@ TESTS_4_5 = \ DISABLED_4_5_TESTS_MONO_4_2 = \ link-httpclient-async \ -DISABLED_TESTS_MONO_2018_08 = \ - link-preserve-calendar-1 \ - ALL_TESTS = \ $(TESTS_UNIFIED) \ $(TESTS_4_0) \ diff --git a/tests/monotouch-test/Security/CertificateTest.cs b/tests/monotouch-test/Security/CertificateTest.cs index 70f7b91c1a34..1119608a960a 100644 --- a/tests/monotouch-test/Security/CertificateTest.cs +++ b/tests/monotouch-test/Security/CertificateTest.cs @@ -555,9 +555,6 @@ public void MailRaw () [Test] public void MailX1 () { - // MARTIN FIXME - // TestRuntime.AssertNotWatchOS ("X509Certificate (byte[]) doesn't work on watchOS"); - using (var cert = new X509Certificate (mail_google_com)) { /* * This X509Certificate constructor will use SecCertificateCreateWithData() and diff --git a/tests/monotouch-test/Security/RecordTest.cs b/tests/monotouch-test/Security/RecordTest.cs index 5acfe127a7b3..01c12115a290 100644 --- a/tests/monotouch-test/Security/RecordTest.cs +++ b/tests/monotouch-test/Security/RecordTest.cs @@ -312,9 +312,6 @@ public void IdentityRecordTest () [Test] public void SecRecordRecordTest () { - // MARTIN FIXME - // TestRuntime.AssertNotWatchOS ("X509Certificate (byte[]) doesn't work on watchOS"); - using (var cert = new X509Certificate (CertificateTest.mail_google_com)) using (var sc = new SecCertificate (cert)) using (var rec = new SecRecord (sc)) { diff --git a/tests/package-mac-tests.sh b/tests/package-mac-tests.sh index 6371852664e7..3732e5a98456 100755 --- a/tests/package-mac-tests.sh +++ b/tests/package-mac-tests.sh @@ -1,5 +1,11 @@ #!/bin/bash -ex +# Clone files instead of copying them on APFS file systems. Much faster. +CP="cp" +if df -t apfs / >/dev/null 2>&1; then + CP="cp -c" +fi + #git clean -xfdq DIR=$(pwd)/mac-test-package/mac-test-package @@ -14,21 +20,21 @@ make build-mac-dontlink build-mac-apitest build-mac-introspection build-mac-link for app in */bin/x86/*/*.app linker/mac/*/bin/x86/*/*.app introspection/Mac/bin/x86/*/*.app; do mkdir -p "$DIR/tests/$app" - cp -R "$app" "$DIR/tests/$app/.." + $CP -R "$app" "$DIR/tests/$app/.." done -cp -p Makefile-mac.inc $DIR/tests -cp -p common.mk $DIR/tests -cp -p Makefile $DIR/tests -cp -p ../Make.config $DIR -cp -p ../Make.versions $DIR -cp -p test-dependencies.sh $DIR -cp -p ../system-dependencies.sh $DIR +$CP -p Makefile-mac.inc $DIR/tests +$CP -p common.mk $DIR/tests +$CP -p Makefile $DIR/tests +$CP -p ../Make.config $DIR +$CP -p ../Make.versions $DIR +$CP -p test-dependencies.sh $DIR +$CP -p ../system-dependencies.sh $DIR mkdir -p $DIR/mk -cp -p ../Make.config $DIR -cp -p ../mk/subdirs.mk $DIR/mk -cp -p ../mk/rules.mk $DIR/mk -cp -p ../mk/quiet.mk $DIR/mk +$CP -p ../Make.config $DIR +$CP -p ../mk/subdirs.mk $DIR/mk +$CP -p ../mk/rules.mk $DIR/mk +$CP -p ../mk/quiet.mk $DIR/mk # 7za compresses better, because there are many duplicated files cd mac-test-package && zip -r ../mac-test-package.zip * diff --git a/tests/test-libraries/Makefile b/tests/test-libraries/Makefile index ef59f68a2ee8..eedb07230a08 100644 --- a/tests/test-libraries/Makefile +++ b/tests/test-libraries/Makefile @@ -94,10 +94,10 @@ COMMON_DYLIB_ARGS=-g -dynamiclib -gdwarf-2 -fms-extensions libframework.m -o $$@ # XTest is a framework where the binary code is a (fat) dynamic library .libs/$(1)/XTest.framework/XTest: .libs/$(1)/libtest.dylib | .libs/$(1)/XTest.framework - $$(Q) cp $$^ $$@ + $$(Q) $(CP) $$^ $$@ .libs/$(1)/XTest.framework/Info.plist: XTest-Info.plist | .libs/$(1)/XTest.framework - $$(Q) cp $$^ $$@ + $$(Q) $(CP) $$^ $$@ # XStaticObjectTest is a framework where the binary code is a (fat) object file .libs/$(1)/XStaticObjectTest.framework/XStaticObjectTest: $$(foreach arch,$(3),.libs/$(1)/libtest-object.$$(arch).o) | .libs/$(1)/XStaticObjectTest.framework diff --git a/tests/xharness/Jenkins.cs b/tests/xharness/Jenkins.cs index e62e2c9a34a1..06842801b260 100644 --- a/tests/xharness/Jenkins.cs +++ b/tests/xharness/Jenkins.cs @@ -1,4 +1,5 @@ using System; +using System.Collections; using System.Collections.Generic; using System.Collections.Concurrent; using System.Diagnostics; @@ -2905,6 +2906,8 @@ protected override async Task RunTestAsync () } proc.StartInfo.Arguments = args.ToString (); SetEnvironmentVariables (proc); + foreach (DictionaryEntry de in proc.StartInfo.EnvironmentVariables) + log.WriteLine ($"export {de.Key}={de.Value}"); Jenkins.MainLog.WriteLine ("Executing {0} ({1})", TestName, Mode); if (!Harness.DryRun) { ExecutionResult = TestExecutingResult.Running; diff --git a/tools/apidiff/Makefile b/tools/apidiff/Makefile index 5ff698b1e3b2..ff4040bf32f6 100644 --- a/tools/apidiff/Makefile +++ b/tools/apidiff/Makefile @@ -267,7 +267,7 @@ endif endif $(Q) $(MAKE) all -j8 $(Q) $(MAKE) -j8 ios-markdown tvos-markdown watchos-markdown macos-markdown - $(Q) cp api-diff.html index.html + $(Q) $(CP) api-diff.html index.html @echo "@MonkeyWrench: AddFile: $(CURDIR)/index.html" @echo "@MonkeyWrench: AddFile: $(CURDIR)/api-diff.html" @# remove empty files so they're not uploaded @@ -282,6 +282,6 @@ endif jenkins-api-diff: -$(MAKE) wrench-api-diff $(Q) mkdir -p $(JENKINS_RESULTS_DIRECTORY)/api-diff - $(Q) cp *.html $(JENKINS_RESULTS_DIRECTORY)/api-diff - $(Q) cp *.md $(JENKINS_RESULTS_DIRECTORY)/api-diff - $(Q) cp -R diff $(JENKINS_RESULTS_DIRECTORY)/api-diff + $(Q) $(CP) *.html $(JENKINS_RESULTS_DIRECTORY)/api-diff + $(Q) $(CP) *.md $(JENKINS_RESULTS_DIRECTORY)/api-diff + $(Q) $(CP) -R diff $(JENKINS_RESULTS_DIRECTORY)/api-diff diff --git a/tools/common/Frameworks.cs b/tools/common/Frameworks.cs index 1eb8044a2aaa..53cbed9f45ff 100644 --- a/tools/common/Frameworks.cs +++ b/tools/common/Frameworks.cs @@ -134,7 +134,6 @@ public static Frameworks MacFrameworks { { "AVKit", 10, 9 }, { "GameController", 10, 9 }, - { "ITunesLibrary", "iTunesLibrary", 10, 9 }, { "MapKit", 10, 9 }, { "MediaAccessibility", 10, 9 }, { "MediaLibrary", 10, 9 }, diff --git a/tools/install-source/Makefile b/tools/install-source/Makefile index 0adb09c83fa6..507d29ed54a0 100644 --- a/tools/install-source/Makefile +++ b/tools/install-source/Makefile @@ -17,13 +17,13 @@ MONO_CECIL_PDB_FILES=$(wildcard $(CECIL_PATH)/symbols/pdb/*.cs) $(wildcard $(CEC Mono.Cecil.Pdb.dll: $(MONO_CECIL_PDB_FILES) $(Q_XBUILD) cd $(CECIL_PATH)/symbols/pdb/ && $(SYSTEM_XBUILD) /p:Configuration=$(CECIL_CONFIG) Mono.Cecil.Pdb.csproj $(XBUILD_VERBOSITY) - $(Q) cp $(CECIL_PATH)/bin/$(CECIL_CONFIG)/*.dll $(dir $@) + $(Q) $(CP) $(CECIL_PATH)/bin/$(CECIL_CONFIG)/*.dll $(dir $@) $(MONO_CECIL_DLL): $(CECIL_PATH)/Mono.Cecil.csproj $(MONO_CECIL_FILES) $(Q_XBUILD) cd $(CECIL_PATH) && $(SYSTEM_XBUILD) /p:Configuration=$(CECIL_CONFIG) Mono.Cecil.csproj $(XBUILD_VERBOSITY) Mono.Cecil.dll: $(MONO_CECIL_DLL) - $(Q) cp $<* $(dir $@) + $(Q) $(CP) $<* $(dir $@) IOS_ASSEMBLIES = \ $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.iOS/I18N.CJK.pdb \ diff --git a/tools/mlaunch/Makefile b/tools/mlaunch/Makefile index 7149b818f9e5..04c844ae7056 100644 --- a/tools/mlaunch/Makefile +++ b/tools/mlaunch/Makefile @@ -10,16 +10,16 @@ all-local install-local:: $(MAKE) -C $(MACCORE_PATH)/tools/mlaunch $@ else all-local install-local:: - $(Q) cp -R $(MACIOS_BINARIES_PATH)/mlaunch/bin/mlaunch $(IOS_DESTDIR)/Library/Frameworks/Xamarin.iOS.framework/Versions/Current/bin - $(Q) cp -R $(MACIOS_BINARIES_PATH)/mlaunch/lib/mlaunch $(IOS_DESTDIR)/Library/Frameworks/Xamarin.iOS.framework/Versions/Current/lib + $(Q) $(CP) -R $(MACIOS_BINARIES_PATH)/mlaunch/bin/mlaunch $(IOS_DESTDIR)/Library/Frameworks/Xamarin.iOS.framework/Versions/Current/bin + $(Q) $(CP) -R $(MACIOS_BINARIES_PATH)/mlaunch/lib/mlaunch $(IOS_DESTDIR)/Library/Frameworks/Xamarin.iOS.framework/Versions/Current/lib endif ifdef ENABLE_XAMARIN publish: $(Q) mkdir -p $(MACIOS_BINARIES_PATH)/mlaunch/bin $(Q) mkdir -p $(MACIOS_BINARIES_PATH)/mlaunch/lib - $(Q) cp -R $(IOS_DESTDIR)/Library/Frameworks/Xamarin.iOS.framework/Versions/Current/bin/mlaunch $(MACIOS_BINARIES_PATH)/mlaunch/bin - $(Q) cp -R $(IOS_DESTDIR)/Library/Frameworks/Xamarin.iOS.framework/Versions/Current/lib/mlaunch $(MACIOS_BINARIES_PATH)/mlaunch/lib + $(Q) $(CP) -R $(IOS_DESTDIR)/Library/Frameworks/Xamarin.iOS.framework/Versions/Current/bin/mlaunch $(MACIOS_BINARIES_PATH)/mlaunch/bin + $(Q) $(CP) -R $(IOS_DESTDIR)/Library/Frameworks/Xamarin.iOS.framework/Versions/Current/lib/mlaunch $(MACIOS_BINARIES_PATH)/mlaunch/lib $(Q) cd $(MACIOS_BINARIES_PATH) && git add mlaunch && git commit -q -m "Bump mlaunch to xamarin/maccore@$(shell cd $(MACCORE_PATH) && git log -1 --pretty=%h)" && git log -1 --pretty=short $(Q) echo "$(COLOR_GREEN)A new version of mlaunch has been copied to $(MACIOS_BINARIES_PATH), and a commit created with the new version.$(COLOR_CLEAR)" $(Q) echo "$(COLOR_GREEN)Please create pull request in the macios-binaries repository for the new mlaunch version, and once merged, bump the submodule in xamarin-macios.$(COLOR_CLEAR)" diff --git a/tools/mmp/Makefile b/tools/mmp/Makefile index db549080d144..0cc6869eb586 100644 --- a/tools/mmp/Makefile +++ b/tools/mmp/Makefile @@ -33,12 +33,12 @@ $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/bin/mmp: mmp.in | $(MAC_DESTDIR)$(MAC $(Q) chmod +x $@ $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mmp/mmp.exe: $(MMP_DIR)/mmp.exe | $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mmp - $(Q) cp $(dir $<)/*.exe $(dir $@) - $(Q) cp $(dir $<)/*.dll $(dir $@) - $(Q) cp $(dir $<)/*.pdb $(dir $@) + $(Q) $(CP) $(dir $<)/*.exe $(dir $@) + $(Q) $(CP) $(dir $<)/*.dll $(dir $@) + $(Q) $(CP) $(dir $<)/*.pdb $(dir $@) $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mmp/Xamarin.Mac.registrar.%.a: Xamarin.Mac.registrar.%.a | $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mmp - $(Q) cp $<* $(dir $@) + $(Q) $(CP) $<* $(dir $@) $(MMP_DIRECTORIES): $(Q) mkdir -p $@ diff --git a/tools/mmp/tests/Makefile b/tools/mmp/tests/Makefile index 57be7dded0a7..29d67ca27b5b 100644 --- a/tools/mmp/tests/Makefile +++ b/tools/mmp/tests/Makefile @@ -18,14 +18,14 @@ run:: tests.dll $(NUGET_CONSOLE) $(Q_NUNIT) mono --runtime=v4.0 $(NUGET_CONSOLE) -noshadow -nologo tests.dll mmp.exe: ../mmp.exe - $(Q) cp ../mmp.exe mmp.exe + $(Q) $(CP) ../mmp.exe mmp.exe nunit.framework.dll nunit-console.exe: /Library/Frameworks/Mono.framework/Commands/nuget restore packages.config - cp $(NUGET_LIB) nunit.framework.dll + $(CP) $(NUGET_LIB) nunit.framework.dll Mono.Cecil.dll: - cp $(CECIL_LIB) Mono.Cecil.dll + $(CP) $(CECIL_LIB) Mono.Cecil.dll tests.dll: $(test_sources) mmp.exe nunit.framework.dll Mono.Cecil.dll $(Q_CSC) $(SYSTEM_CSC) $(test_sources) -r:mmp.exe -t:library -out:tests.dll -r:nunit.framework.dll -r:Mono.Cecil.dll -debug diff --git a/tools/mtouch/Makefile b/tools/mtouch/Makefile index eb5623ab93d9..08f4d93f68d2 100644 --- a/tools/mtouch/Makefile +++ b/tools/mtouch/Makefile @@ -266,28 +266,28 @@ $(TARGET_DIRS): $(Q) mkdir -p $@ $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mtouch/mtouch.exe: $(MTOUCH_DIR)/mtouch.exe | $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mtouch - $(Q) cp $(dir $<)/*.exe $(dir $@) - $(Q) cp $(dir $<)/*.dll $(dir $@) - $(Q) cp $(dir $<)/*.pdb $(dir $@) + $(Q) $(CP) $(dir $<)/*.exe $(dir $@) + $(Q) $(CP) $(dir $<)/*.dll $(dir $@) + $(Q) $(CP) $(dir $<)/*.pdb $(dir $@) $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/bin/mtouch: mtouch.in | $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/bin $(Q_GEN) sed 's!@MONOTOUCH_PREFIX@!$(abspath $(IOS_TARGETDIR)$(MONOTOUCH_PREFIX))!g' $< > $@ $(Q) chmod +x $@ $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/bin/%: % | $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/bin - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/%: % | $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(IOS_DESTDIR)$(MONOTOUCH_SIMULATOR_SDK)/usr/lib/%.registrar.a: %.registrar.ios.a | $(IOS_DESTDIR)$(MONOTOUCH_SIMULATOR_SDK)/usr/lib - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(IOS_DESTDIR)$(XAMARIN_WATCHSIMULATOR_SDK)/usr/lib/%.registrar.a: %.registrar.watchos.a | $(IOS_DESTDIR)$(XAMARIN_WATCHSIMULATOR_SDK)/usr/lib - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(IOS_DESTDIR)$(XAMARIN_TVSIMULATOR_SDK)/usr/lib/%.registrar.a: %.registrar.tvos.a | $(IOS_DESTDIR)$(XAMARIN_TVSIMULATOR_SDK)/usr/lib - $(Q) cp $< $@ + $(Q) $(CP) $< $@ ifdef INCLUDE_IOS install-local:: $(TARGETS)