Stop injecting compiler arguments via PMCS (#3057)

- Remove PMCS injection of command line arguments. Handled directly by Makefile
- Classic iOS is still building for now due to documentation issues but will be removed at a later date.
This commit is contained in:
Chris Hamons 2017-12-22 10:37:40 -06:00 коммит произвёл GitHub
Родитель 6ad9014c9f
Коммит 7f565e6e4c
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
5 изменённых файлов: 46 добавлений и 190 удалений

2
external/macios-binaries поставляемый

@ -1 +1 @@
Subproject commit fd01b78da403a904b675462eb73c748f6fcaac74
Subproject commit 67ca117a455f5b8f614ac87c6c762768a7f356d9

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

@ -1,59 +0,0 @@
#if !XAMCORE_2_0
//
// Compat.cs: namespaces with internal classes to simplify
// code sharing with MonoTouch
//
//
// Copryright 2013 Xamarin Inc
//
namespace MonoTouch.AVFoundation { internal class x {} }
namespace MonoTouch.Accounts { internal class x {} }
namespace MonoTouch.AdSupport { internal class x {} }
namespace MonoTouch.AddressBook { internal class x {} }
namespace MonoTouch.AddressBookUI { internal class x {} }
namespace MonoTouch.AssetsLibrary { internal class x {} }
namespace MonoTouch.AudioToolbox { internal class x {} }
namespace MonoTouch.AudioUnit { internal class x {} }
namespace MonoTouch.AudioUnitWrapper { internal class x {} }
namespace MonoTouch.CoreAnimation { internal class x {} }
namespace MonoTouch.CoreBluetooth { internal class x {} }
namespace MonoTouch.CoreData { internal class x {} }
namespace MonoTouch.CoreFoundation { internal class x {} }
namespace MonoTouch.CoreGraphics { internal class x {} }
namespace MonoTouch.CoreImage { internal class x {} }
namespace MonoTouch.CoreLocation { internal class x {} }
namespace MonoTouch.CoreMedia { internal class x {} }
namespace MonoTouch.CoreMidi { internal class x {} }
namespace MonoTouch.CoreMotion { internal class x {} }
namespace MonoTouch.CoreServices { internal class x {} }
namespace MonoTouch.CoreTelephony { internal class x {} }
namespace MonoTouch.CoreText { internal class x {} }
namespace MonoTouch.CoreVideo { internal class x {} }
namespace MonoTouch.EventKit { internal class x {} }
namespace MonoTouch.EventKitUI { internal class x {} }
namespace MonoTouch.ExternalAccessory { internal class x {} }
namespace MonoTouch.Foundation { internal class x {} }
namespace MonoTouch.GLKit { internal class x {} }
namespace MonoTouch.GameKit { internal class x {} }
namespace MonoTouch.ImageIO { internal class x {} }
namespace MonoTouch.Libraries { internal class x {} }
namespace MonoTouch.MapKit { internal class x {} }
namespace MonoTouch.MediaPlayer { internal class x {} }
namespace MonoTouch.MediaToolbox { internal class x {} }
namespace MonoTouch.MessageUI { internal class x {} }
namespace MonoTouch.MobileCoreServices { internal class x {} }
namespace MonoTouch.NewsstandKit { internal class x {} }
namespace MonoTouch.ObjCRuntime { internal class x {} }
namespace MonoTouch.OpenGLES { internal class x {} }
namespace MonoTouch.PassKit { internal class x {} }
namespace MonoTouch.QuickLook { internal class x {} }
namespace MonoTouch.Registrar { internal class x {} }
namespace MonoTouch.Security { internal class x {} }
namespace MonoTouch.Social { internal class x {} }
namespace MonoTouch.StoreKit { internal class x {} }
namespace MonoTouch.SystemConfiguration { internal class x {} }
namespace MonoTouch.Twitter { internal class x {} }
namespace MonoTouch.UIKit { internal class x {} }
namespace MonoTouch.Utils { internal class x {} }
namespace MonoTouch.iAd { internal class x {} }
#endif

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

@ -48,6 +48,9 @@ COMMON_TARGET_DIRS = \
build/common \
build/common/NativeTypes \
ARGS_32 = -define:ARCH_32
ARGS_64 = -define:ARCH_64
#
# Xamarin.iOS
#
@ -65,7 +68,9 @@ IOS_CORE_SOURCES += $(IOS_EXTRA_SOURCES)
IOS_SOURCES += $(IOS_EXTRA_SOURCES)
IOS_GENERATOR_FLAGS = -inline-selectors -d:IOS -process-enums -warnaserror:$(IOS_GENERATOR_WARNASERROR)
IOS_GENERATOR_native_FLAGS = -d:XAMCORE_2_0 -d:__UNIFIED__
IOS_DEFINES = -define:IPHONE -define:IOS -define:MONOTOUCH -d:NET_2_0 -d:__IOS__ $(APPLETLS_DEFINES)
IOS_native_DEFINES = -d:XAMCORE_2_0 -d:__UNIFIED__
IOS_LIBDIR = $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/2.1
IOS_PMCS = $(IOS_BUILD_DIR)/pmcs
IOS_BMONO = MONO_PATH=$(IOS_LIBDIR) $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/bin/btouch-mono
@ -119,6 +124,7 @@ $(IOS_BUILD_DIR)/$(1)/core.dll: $$(IOS_PMCS) $$(IOS_CORE_SOURCES) frameworks.sou
-r:$(IOS_LIBDIR)/Mono.Security.dll \
-nowarn:219,618,114,414,1635,3021,$$(IOS_WARNINGS_THAT_YOU_SHOULD_FIX) \
-define:COREBUILD $$(IOS_DEFINES) \
$$(IOS_$(1)_DEFINES) \
$$(IOS_CORE_SOURCES)
# generator.exe
@ -139,6 +145,7 @@ xi_native_profile=--target-framework=Xamarin.iOS,v1.0
$(IOS_BUILD_DIR)/$(1)/generated_sources: $$(IOS_$(1)_GENERATOR) $$(IOS_APIS) $(IOS_BUILD_DIR)/$(1)/core.dll $(IOS_PMCS) $(IOS_BUILD_DIR)/native/$(4)
$$(call Q_PROF_GEN,ios/$(1)) PMCS_PROFILE=$(3) $$(IOS_$(1)_GENERATE) \
$$(IOS_GENERATOR_FLAGS) \
$$(IOS_GENERATOR_$(1)_FLAGS) \
-core \
-sourceonly=$$@ \
-compiler=$$(IOS_PMCS) \
@ -165,21 +172,30 @@ $(IOS_BUILD_DIR)/$(1)/$(3): $$(IOS_SOURCES) $(IOS_BUILD_DIR)/$(4)/generated_sour
@mkdir -p $(IOS_BUILD_DIR)/$(1)
$$(call Q_PROF_PMCS,ios/$(1)) PMCS_PROFILE=$(5) $$(IOS_PMCS) -out:$$@ -target:library -debug -unsafe -optimize \
-r:$(IOS_LIBDIR)/Mono.Security.dll \
$$(ARGS_$(6)) \
-keyfile:$(PRODUCT_KEY_PATH) $$(IOS_DEFINES) \
$$(IOS_$(4)_DEFINES) \
-nowarn:219,618,114,414,1635,3021,$$(IOS_WARNINGS_THAT_YOU_SHOULD_FIX) \
$(IOS_MCS_FLAGS_XI) \
$$(IOS_SOURCES) @$(IOS_BUILD_DIR)/$(4)/generated_sources
$(IOS_BUILD_DIR)/$(1)/$(3).mdb: $(IOS_BUILD_DIR)/$(1)/$(3)
@touch $(IOS_BUILD_DIR)/$(1)/$(3).mdb
chmod 0644 $(IOS_BUILD_DIR)/$(1)/$(3).mdb
$(IOS_BUILD_DIR)/$(1)/$(3).pdb: $(IOS_BUILD_DIR)/$(1)/$(3).dll
endef
$(eval $(call IOS_TARGETS_template,compat,--ns=MonoTouch.ObjCRuntime,monotouch.dll,compat,compat-ios))
$(eval $(call IOS_TARGETS_template,native-32,--ns=ObjCRuntime,Xamarin.iOS.dll,native,native-32))
$(eval $(call IOS_TARGETS_template,native-64,--ns=ObjCRuntime,Xamarin.iOS.dll,native,native-64))
$(IOS_BUILD_DIR)/compat/%: $(MACIOS_BINARIES_PATH)/% | $(IOS_BUILD_DIR)/compat
$(Q) cp $< $@
$(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/2.1/%: $(IOS_BUILD_DIR)/compat/%
$(Q) cp $< $@
$(eval $(call IOS_TARGETS_template,compat,--ns=MonoTouch.ObjCRuntime,monotouch.dll,compat,compat-ios,32))
$(eval $(call IOS_TARGETS_template,native-32,--ns=ObjCRuntime,Xamarin.iOS.dll,native,native-32,32))
$(eval $(call IOS_TARGETS_template,native-64,--ns=ObjCRuntime,Xamarin.iOS.dll,native,native-64,64))
define IOS_LIBS_template
IOS_VARIANTS_TARGETS += $(addprefix $(IOS_BUILD_DIR)/$(1)/,$(4) $(5))
@ -440,8 +456,11 @@ MAC_WARNINGS_TO_FIX := 114,108
# 4014 is "The statement is not awaited and execution of current method continues before the call is completed. Consider using `await' operator or calling `Wait' method"
MAC_WARNINGS_TO_FIX := $(MAC_WARNINGS_TO_FIX),4014
MAC_COMMON_DEFINES = -define:NET_2_0,XAMARIN_MAC,MONOMAC
MAC_COMMON_DEFINES = -define:NET_2_0,XAMARIN_MAC,MONOMAC,XAMCORE_2_0,__UNIFIED__
MAC_full_ARGS = -sdk:4.5 -define:NO_SYSTEM_DRAWING -define:XAMMAC_SYSTEM_MONO
MAC_mobile_ARGS = -nostdlib -r:mscorlib -lib:$(abspath $(MAC_DESTDIR)/Library/Frameworks/Xamarin.Mac.framework/Versions/Current/lib/mono/Xamarin.Mac)
MAC_BOOTSTRAP_DEFINES = $(MAC_COMMON_DEFINES),COREBUILD
MAC_GENERATED_DEFINES = -d:MONOMAC -d:XAMARIN_MAC -d:XAMCORE_2_0 -d:__UNIFIED__
SN_KEY = $(PRODUCT_KEY_PATH)
@ -456,7 +475,6 @@ MAC_CORE_SOURCES += \
MAC_SOURCES += \
$(MAC_EXTRA_CORE_SOURCES) \
$(MAC_BUILD_DIR)/AssemblyInfo.cs \
Compat.mac.cs \
Obsoletes.cs \
Darwin/KernelNotification.cs \
Darwin/SystemLog.cs \
@ -529,8 +547,7 @@ $(MAC_BUILD_DIR)/$(1)/_bmac.exe: $(MAC_BUILD_DIR)/$(1)/core.dll $(MAC_APIS) $(GE
$(MAC_BUILD_DIR)/$(1)/generated-sources: $$(MAC_$(1)_GENERATOR) $(MAC_APIS) $(MAC_BUILD_DIR)/$(1)/core.dll $(MAC_BUILD_DIR)/$(1)/pmcs $(MAC_BUILD_DIR)/$(7)
$$(call Q_PROF_GEN,mac/$(1)) PMCS_PROFILE=$(6) $$(MAC_$(1)_GENERATE) \
-d:MONOMAC \
-d:XAMARIN_MAC \
$(MAC_GENERATED_DEFINES) \
-compiler:$(MAC_BUILD_DIR)/$(1)/pmcs \
-process-enums \
-warnaserror:$(MAC_GENERATOR_WARNASERROR) \
@ -557,6 +574,8 @@ $(MAC_BUILD_DIR)/$(1)/$(2): $(MAC_BUILD_DIR)/$(3)/generated-sources $(MAC_SOURCE
-out:$$@ -target:library -debug -unsafe \
$$(MAC_COMMON_DEFINES),OBJECT_REF_TRACKING \
-r:Mono.Security.dll \
$$(MAC_$(3)_ARGS) \
$$(ARGS_$(6)) \
-keyfile:$(SN_KEY) \
-nowarn:3021,1635,612,618,0219,0414,$(MAC_WARNINGS_TO_FIX) \
$(MAC_MCS_FLAGS_XM) \
@ -564,10 +583,10 @@ $(MAC_BUILD_DIR)/$(1)/$(2): $(MAC_BUILD_DIR)/$(3)/generated-sources $(MAC_SOURCE
@$$< $$(MAC_SOURCES)
endef
$(eval $(call MAC_TARGETS_template,mobile-32,Xamarin.Mac.dll,mobile,-r:System.Net.Http -lib:$(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono/Xamarin.Mac $(MAC_CFNETWORK_SOURCES) $(MAC_MODERNHTTP_SOURCES) $(SHARED_SYSTEM_DRAWING_SOURCES) $(APPLETLS_DEFINES) -D:XAMARIN_MODERN -D:UNIFIED -D:__UNIFIED__,mobile-32))
$(eval $(call MAC_TARGETS_template,mobile-64,Xamarin.Mac.dll,mobile,-r:System.Net.Http -lib:$(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono/Xamarin.Mac $(MAC_CFNETWORK_SOURCES) $(MAC_MODERNHTTP_SOURCES) $(SHARED_SYSTEM_DRAWING_SOURCES) $(APPLETLS_DEFINES) -D:XAMARIN_MODERN -D:UNIFIED -D:__UNIFIED__,mobile-64))
$(eval $(call MAC_TARGETS_template,full-32,Xamarin.Mac.dll,full,-r:System.Net.Http -lib:$(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono/4.5 $(MAC_CFNETWORK_SOURCES) $(MAC_MODERNHTTP_SOURCES) -D:XAMARIN_MODERN -D:UNIFIED -D:__UNIFIED__,full-32))
$(eval $(call MAC_TARGETS_template,full-64,Xamarin.Mac.dll,full,-r:System.Net.Http -lib:$(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono/4.5 $(MAC_CFNETWORK_SOURCES) $(MAC_MODERNHTTP_SOURCES) -D:XAMARIN_MODERN -D:UNIFIED -D:__UNIFIED__,full-64))
$(eval $(call MAC_TARGETS_template,mobile-32,Xamarin.Mac.dll,mobile,-r:System.Net.Http -lib:$(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono/Xamarin.Mac $(MAC_CFNETWORK_SOURCES) $(MAC_MODERNHTTP_SOURCES) $(SHARED_SYSTEM_DRAWING_SOURCES) $(APPLETLS_DEFINES) -D:XAMARIN_MODERN -D:UNIFIED -D:__UNIFIED__,mobile-32,32))
$(eval $(call MAC_TARGETS_template,mobile-64,Xamarin.Mac.dll,mobile,-r:System.Net.Http -lib:$(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono/Xamarin.Mac $(MAC_CFNETWORK_SOURCES) $(MAC_MODERNHTTP_SOURCES) $(SHARED_SYSTEM_DRAWING_SOURCES) $(APPLETLS_DEFINES) -D:XAMARIN_MODERN -D:UNIFIED -D:__UNIFIED__,mobile-64,64))
$(eval $(call MAC_TARGETS_template,full-32,Xamarin.Mac.dll,full,-r:System.Net.Http -lib:$(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono/4.5 $(MAC_CFNETWORK_SOURCES) $(MAC_MODERNHTTP_SOURCES) -D:XAMARIN_MODERN -D:UNIFIED -D:__UNIFIED__,full-32,32))
$(eval $(call MAC_TARGETS_template,full-64,Xamarin.Mac.dll,full,-r:System.Net.Http -lib:$(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono/4.5 $(MAC_CFNETWORK_SOURCES) $(MAC_MODERNHTTP_SOURCES) -D:XAMARIN_MODERN -D:UNIFIED -D:__UNIFIED__,full-64,64))
$(MAC_BUILD_DIR)/%-reference/Xamarin.Mac.dll: $(MAC_BUILD_DIR)/%-64/Xamarin.Mac.dll
@mkdir -p $(@D)
@ -738,6 +757,7 @@ WATCH_LIBDIR = $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.WatchOS
WATCH_BMONO = MONO_PATH=$(WATCH_LIBDIR)/repl $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/bin/bwatch-mono
WATCH_GENERATOR=build/common/bgen.exe
WATCH_GENERATE=$(SYSTEM_MONO) --debug $(WATCH_GENERATOR)
WATCH_GENERATED_DEFINES= -d:WATCH -d:XAMCORE_3_0 -d:XAMCORE_2_0 -d:__UNIFIED__
WATCHOS_EXTRA_CORE_SOURCES = \
$(WATCH_BUILD_DIR)/Constants.cs \
@ -793,6 +813,7 @@ $(WATCH_BUILD_DIR)/watch/generator.exe: $(GENERATOR_SOURCES) $(WATCH_BUILD_DIR)/
$(call Q_PROF_PMCS,watch) PMCS_PROFILE=watch $(WATCH_PMCS) -out:$@ -debug -unsafe \
-r:$(WATCH_BUILD_DIR)/watch/core.dll \
$(GENERATOR_SOURCES) \
$(WATCH_DEFINES) \
$(GENERATOR_DEFINES) \
# generated_sources
@ -812,7 +833,7 @@ $(WATCH_BUILD_DIR)/watch/generated_sources: $(WATCH_GENERATOR) $(WATCHOS_APIS) $
-r=$(WATCH_MONO_PATH)/mcs/class/lib/monotouch_watch/System.dll \
-ns=MonoTouch.ObjCRuntime \
-native-exception-marshalling \
-d:WATCH \
$(WATCH_GENERATED_DEFINES) \
--ns:ObjCRuntime \
$(WATCHOS_APIS) \
--target-framework=Xamarin.WatchOS,v1.0 \
@ -820,6 +841,7 @@ $(WATCH_BUILD_DIR)/watch/generated_sources: $(WATCH_GENERATOR) $(WATCHOS_APIS) $
$(WATCH_BUILD_DIR)/watch-32/Xamarin.WatchOS.dll: $(WATCHOS_SOURCES) $(WATCH_BUILD_DIR)/watch/generated_sources $(PRODUCT_KEY_PATH) | $(WATCH_BUILD_DIR)/watch-32
$(call Q_PROF_PMCS,watch) PMCS_PROFILE=watch-32 $(WATCH_PMCS) -out:$@ -target:library -debug -unsafe -optimize \
-keyfile:$(PRODUCT_KEY_PATH) $(WATCH_DEFINES) \
$(ARGS_32) \
-nowarn:219,618,114,414,1635,3021,$(IOS_WARNINGS_THAT_YOU_SHOULD_FIX) \
$(WATCHOS_SOURCES) @$(WATCH_BUILD_DIR)/watch/generated_sources
@ -967,6 +989,7 @@ TVOS_LIBDIR = $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.TVOS
TVOS_BMONO = MONO_PATH=$(TVOS_LIBDIR)/repl $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/bin/btv-mono
TVOS_GENERATOR=build/common/bgen.exe
TVOS_GENERATE=$(SYSTEM_MONO) --debug $(TVOS_GENERATOR)
TVOS_GENERATED_DEFINES= -d:TVOS -d:XAMCORE_3_0 -d:XAMCORE_2_0 -d:__UNIFIED__
TVOS_EXTRA_CORE_SOURCES = \
$(TVOS_BUILD_DIR)/Constants.cs \
@ -1034,9 +1057,9 @@ $(TVOS_BUILD_DIR)/tvos/generated_sources: $(TVOS_GENERATOR) $(TVOS_APIS) $(TVOS_
-baselib=$(TVOS_BUILD_DIR)/tvos/core.dll \
-attributelib=$(TVOS_BUILD_DIR)/Xamarin.TVOS.BindingAttributes.dll \
-r=$(MONO_PATH)/mcs/class/lib/monotouch_tv/System.dll \
$(TVOS_GENERATED_DEFINES) \
-ns=MonoTouch.ObjCRuntime \
-native-exception-marshalling \
-d:TVOS \
--ns:ObjCRuntime \
$(TVOS_APIS) \
--target-framework=Xamarin.TVOS,v1.0 \
@ -1045,6 +1068,7 @@ $(TVOS_BUILD_DIR)/tvos-64/Xamarin.TVOS.dll: $(TVOS_SOURCES) $(TVOS_BUILD_DIR)/tv
$(call Q_PROF_PMCS,tvos) PMCS_PROFILE=tvos-64 $(TVOS_PMCS) -out:$@ -target:library -debug -unsafe -optimize \
-keyfile:$(PRODUCT_KEY_PATH) $(TVOS_DEFINES) \
-r:$(TVOS_LIBDIR)/Mono.Security.dll \
$(ARGS_64) \
-nowarn:219,618,114,414,1635,3021,$(IOS_WARNINGS_THAT_YOU_SHOULD_FIX) \
$(TVOS_SOURCES) @$(TVOS_BUILD_DIR)/tvos/generated_sources

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

@ -217,9 +217,10 @@ $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/bgen/%.exe: build/common/bgen.exe
$(Q) install -m 0755 $< $@
$(Q) install -m 0644 $< $(@:.exe=.pdb)
$(MAC_BUILD_DIR)/XamMac.BindingAttributes.dll: generator-attributes.cs Makefile.generator $(PMCS_EXE)
$(MAC_BUILD_DIR)/XamMac.BindingAttributes.dll: $(MACIOS_BINARIES_PATH)/XamMac.BindingAttributes.dll
$(Q) mkdir -p $(dir $@)
$(Q_GEN) $(SYSTEM_MONO) --debug $(PMCS_EXE) -profile:"$(TOP)/src/pmcs-profiles/compat-mac" -compiler:$(SYSTEM_MCS) -global-replace:"^XamCore.=MonoMac." -out:$@ -debug generator-attributes.cs -target:library
$(Q) cp $< $@
$(Q) cp $<.mdb $@.mdb
$(MAC_BUILD_DIR)/Xamarin.Mac-%.BindingAttributes.dll: generator-attributes.cs Makefile.generator $(PMCS_EXE)
$(Q) mkdir -p $(dir $@)

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

@ -15,120 +15,25 @@ namespace Xamarin.Pmcs.Profiles
public static Profile Get (string profileName)
{
switch (profileName) {
// Watch
case "watch":
return new WatchXamCore3 (ArchDefine.None);
case "watch-32":
return new WatchXamCore3 (ArchDefine.ARCH_32);
// TVOS
case "tvos":
return new WatchXamCore3 (ArchDefine.None);
case "tvos-64":
return new WatchXamCore3 (ArchDefine.ARCH_64);
// iOS
case "native":
return new IosXamCore2 (ArchDefine.None);
case "native-64":
return new IosXamCore2 (ArchDefine.ARCH_64);
case "native-32":
return new IosXamCore2 (ArchDefine.ARCH_32);
// Mac
case "mobile":
return new MacMobileFrameworkXamCore2 (ArchDefine.None);
case "mobile-64":
return new MacMobileFrameworkXamCore2 (ArchDefine.ARCH_64);
case "mobile-32":
return new MacMobileFrameworkXamCore2 (ArchDefine.ARCH_32);
case "full":
return new MacFullFrameworkXamCore2 (ArchDefine.None);
case "full-64":
return new MacFullFrameworkXamCore2 (ArchDefine.ARCH_64);
case "full-32":
return new MacFullFrameworkXamCore2 (ArchDefine.ARCH_32);
// Compat iOS/Mac
case "compat-ios":
return new CompatIos ();
case "compat-mac":
return new CompatMac ();
throw new InvalidOperationException ("Classic should not be building");
default:
return new XamCore2Common ();
}
return null;
}
}
public enum ArchDefine
class XamCore2Common : Profile
{
None,
ARCH_32,
ARCH_64
}
abstract class XamCore3Common : XamCore2Common
{
protected XamCore3Common (ArchDefine arch) : base (arch)
public XamCore2Common ()
{
CompilerOptions.Add ("-define:XAMCORE_3_0");
}
}
abstract class XamCore2Common : Profile
{
protected XamCore2Common (ArchDefine arch)
{
CompilerOptions.Add ("-define:XAMCORE_2_0");
CompilerOptions.Add ("-define:__UNIFIED__");
if (arch != ArchDefine.None)
CompilerOptions.Add ("-define:" + arch.ToString ());
IgnorePaths.Add ("Compat.mac.cs");
IgnorePaths.Add ("Compat.iOS.cs");
GlobalReplacements.Add (new Xamarin20Replacement ());
EnumBackingTypeReplacements.Add (new Xamarin20Replacement ());
}
}
sealed class WatchXamCore3 : XamCore3Common
{
public WatchXamCore3 (ArchDefine arch) : base (arch)
{
}
}
sealed class IosXamCore2 : XamCore2Common
{
public IosXamCore2 (ArchDefine arch) : base (arch)
{
}
}
sealed class MacMobileFrameworkXamCore2 : XamCore2Common
{
public MacMobileFrameworkXamCore2 (ArchDefine arch) : base (arch)
{
CompilerExecutable = "../builds/mcs-mac32";
CompilerOptions.Add ("-nostdlib");
CompilerOptions.Add ("-r:mscorlib");
CompilerOptions.Add ("-lib:../_mac-build/Library/Frameworks/Xamarin.Mac.framework/Versions/Current/lib/mono/Xamarin.Mac");
}
}
sealed class MacFullFrameworkXamCore2 : XamCore2Common
{
public MacFullFrameworkXamCore2 (ArchDefine arch) : base (arch)
{
CompilerOptions.Add ("-sdk:4.5");
CompilerOptions.Add ("-define:NO_SYSTEM_DRAWING");
CompilerOptions.Add ("-define:XAMMAC_SYSTEM_MONO");
}
}
sealed class CompatIos : Profile
{
public CompatIos ()
@ -140,21 +45,6 @@ namespace Xamarin.Pmcs.Profiles
}
}
sealed class CompatMac : Profile
{
public CompatMac ()
{
CompilerOptions.Add ("-sdk:4.0");
CompilerOptions.Add ("-define:ARCH_32");
CompilerOptions.Add ("-define:XAMMAC_SYSTEM_MONO");
IgnorePaths.Add ("Compat.mac.cs");
GlobalReplacements.Add (new XamarinCompatReplacement ("MonoMac"));
EnumBackingTypeReplacements.Add (new XamarinCompatReplacement ("MonoMac"));
}
}
class Xamarin20Replacement : ExplicitReplacement
{
protected override string Evaluate (string input)