Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
0215993
[generator] Add Makefile logic to build an IKVM-version of the genera…
rolfbjarne Feb 22, 2017
51bb3bd
[generator] Add a project file for the IKVM-based generator.
rolfbjarne Feb 22, 2017
3b55516
[generator] Build an IKVM-based generator (bgen.exe).
rolfbjarne Mar 6, 2017
fe9bcb0
[generator] Build an assembly containing the binding attributes for e…
rolfbjarne Mar 6, 2017
1d5f432
[tests][generator] Add support for running tests with the IKVM-based …
rolfbjarne Mar 6, 2017
7dcadeb
[generator] Pass the expected assemblies to TypeManager.
rolfbjarne Feb 23, 2017
9be1d2d
[generator] Remove unused usings.
rolfbjarne Feb 23, 2017
4582a2c
[generator] Remove logic from the attribute assemblies.
rolfbjarne Feb 23, 2017
93569ec
[generator] Add IKVM usings pointing to IKVM types instead of reflect…
rolfbjarne Feb 23, 2017
5caa0e4
[generator] Implement IKVM support.
rolfbjarne Feb 23, 2017
5dc2a52
[generator] We don't need to redirect System.Console when using IKVM,…
rolfbjarne Feb 23, 2017
119ae22
Add a section about the generator to the README, and document some code.
rolfbjarne Mar 6, 2017
b7794b0
[builds] Don't install mono binaries for the generator if we're using…
rolfbjarne Mar 7, 2017
449bcd3
[msbuild] Add support for IKVM-based generator.
rolfbjarne Mar 7, 2017
7837d5d
Bump maccore to get fix for IKVM-based generator.
rolfbjarne Mar 7, 2017
9dc3a0b
[generator] Flip the switch.
rolfbjarne Mar 8, 2017
aaee3a9
[generator] Use Array.Empty<T> to avoid allocating many empty arrays.
rolfbjarne Mar 14, 2017
a719e1f
Merge remote-tracking branch 'origin/master' into generator-ikvm
rolfbjarne Mar 14, 2017
001790f
Merge remote-tracking branch 'origin/master' into generator-ikvm
rolfbjarne Mar 16, 2017
8a29f0d
Merge remote-tracking branch 'origin/master' into generator-ikvm
rolfbjarne Mar 22, 2017
1bf8c67
Bump maccore to an official hash.
rolfbjarne Mar 22, 2017
d942fcf
[tests][generator] Simplify mac tests a bit and fix new tests when us…
rolfbjarne Mar 22, 2017
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions Make.config
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,8 @@ IOS_TARGETDIR ?= $(IOS_DESTDIR)

USE_SOURCE_LINKS ?= 1

IKVM=1

IOS_FRAMEWORK_DIR=/Library/Frameworks/Xamarin.iOS.framework
# Prefix used to install monotouch
ifndef MONOTOUCH_PREFIX
Expand Down
19 changes: 16 additions & 3 deletions builds/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -644,32 +644,41 @@ IOS_BCL_TARGETS +=
$(foreach file,$(filter-out $(NO_MDB_ASSEMBLIES),$(IOS_ASSEMBLIES)),$(PREFIX)/lib/mono/Xamarin.iOS/$(file).dll.mdb) \
$(PREFIX)/lib/mono/Xamarin.iOS/mscorlib.dll \
$(PREFIX)/lib/mono/2.1/mscorlib.dll \
$(PREFIX)/bin/btouch-mono \
$(foreach file,$(IOS_FACADE_ASSEMBLIES),$(PREFIX)/lib/mono/2.1/Facades/$(file).dll) \
$(foreach file,$(IOS_FACADE_ASSEMBLIES),$(PREFIX)/lib/mono/Xamarin.iOS/Facades/$(file).dll) \
$(foreach file,$(IOS_REPL_ASSEMBLIES),$(PREFIX)/lib/mono/2.1/repl/$(file).dll) \
$(foreach file,$(IOS_REPL_ASSEMBLIES),$(PREFIX)/lib/mono/2.1/repl/$(file).dll.mdb) \
$(foreach file,$(IOS_REPL_ASSEMBLIES),$(PREFIX)/lib/mono/Xamarin.iOS/repl/$(file).dll) \
$(foreach file,$(IOS_REPL_ASSEMBLIES),$(PREFIX)/lib/mono/Xamarin.iOS/repl/$(file).dll.mdb) \

ifndef IKVM
IOS_BCL_TARGETS += $(PREFIX)/bin/btouch-mono
endif

WATCH_BCL_TARGETS += \
$(foreach file,$(WATCHOS_ASSEMBLIES),$(PREFIX)/lib/mono/Xamarin.WatchOS/$(file).dll) \
$(foreach file,$(filter-out $(NO_MDB_ASSEMBLIES),$(WATCHOS_ASSEMBLIES)),$(PREFIX)/lib/mono/Xamarin.WatchOS/$(file).dll.mdb) \
$(PREFIX)/lib/mono/Xamarin.WatchOS/mscorlib.dll \
$(PREFIX)/bin/bwatch-mono \
$(foreach file,$(WATCHOS_FACADE_ASSEMBLIES),$(PREFIX)/lib/mono/Xamarin.WatchOS/Facades/$(file).dll) \
$(foreach file,$(WATCHOS_REPL_ASSEMBLIES),$(PREFIX)/lib/mono/Xamarin.WatchOS/repl/$(file).dll) \
$(foreach file,$(WATCHOS_REPL_ASSEMBLIES),$(PREFIX)/lib/mono/Xamarin.WatchOS/repl/$(file).dll.mdb) \

ifndef IKVM
WATCH_BCL_TARGETS += $(PREFIX)/bin/bwatch-mono
endif

TVOS_BCL_TARGETS += \
$(foreach file,$(TVOS_ASSEMBLIES),$(PREFIX)/lib/mono/Xamarin.TVOS/$(file).dll) \
$(foreach file,$(filter-out $(NO_MDB_ASSEMBLIES),$(TVOS_ASSEMBLIES)),$(PREFIX)/lib/mono/Xamarin.TVOS/$(file).dll.mdb) \
$(PREFIX)/lib/mono/Xamarin.TVOS/mscorlib.dll \
$(PREFIX)/bin/btv-mono \
$(foreach file,$(TVOS_FACADE_ASSEMBLIES),$(PREFIX)/lib/mono/Xamarin.TVOS/Facades/$(file).dll) \
$(foreach file,$(TVOS_REPL_ASSEMBLIES),$(PREFIX)/lib/mono/Xamarin.TVOS/repl/$(file).dll) \
$(foreach file,$(TVOS_REPL_ASSEMBLIES),$(PREFIX)/lib/mono/Xamarin.TVOS/repl/$(file).dll.mdb) \

ifndef IKVM
TVOS_BCL_TARGETS += $(PREFIX)/bin/btv-mono
endif

$(PREFIX)/lib/mono/Xamarin.iOS/%.mdb: $(BUILD_DESTDIR)/ios/bcl/%.mdb | $(PREFIX)/lib/mono/Xamarin.iOS $(PREFIX)/lib/mono/Xamarin.iOS/repl
$(Q) install -m 0644 $< $@
$(Q_MDB) $(MDB_REBASE) -q -i $(abspath $(MONO_PATH))/ -o $(IOS_TARGETDIR)$(MONOTOUCH_PREFIX)/src/mono/ $@
Expand All @@ -695,8 +704,10 @@ $(PREFIX)/lib/mono/2.1/%.mdb: $(BUILD_DESTDIR)/ios/bcl/%.mdb | $(PREFIX)/lib/mon
$(Q_MDB) $(MDB_REBASE) -q -i $(abspath $(MONO_PATH))/ -o $(IOS_TARGETDIR)$(MONOTOUCH_PREFIX)/src/mono/ $@
$(Q) chmod 0644 $@

ifndef IKVM
$(PREFIX)/bin/btouch-mono: $(BUILD_DESTDIR)/tools64/bin/mono | $(PREFIX)/bin
$(Q) install -s -m 0755 $< $@
endif

$(PREFIX)/lib/mono/Xamarin.WatchOS/Facades/%.dll: $(BUILD_DESTDIR)/watchos/bcl/Facades/%.dll | $(PREFIX)/lib/mono/Xamarin.WatchOS/Facades
$(Q) install -m 0755 $< $@
Expand All @@ -720,6 +731,7 @@ $(PREFIX)/lib/mono/Xamarin.TVOS/%.mdb: $(BUILD_DESTDIR)/tvos/bcl/%.mdb | $(PREFI
$(Q_MDB) $(MDB_REBASE) -q -i $(abspath $(MONO_PATH))/ -o $(IOS_TARGETDIR)$(MONOTOUCH_PREFIX)/src/mono/ $@
$(Q) chmod 0644 $@

ifndef IKVM
$(PREFIX)/bin/btv-mono: $(BUILD_DESTDIR)/tools64/bin/mono | $(PREFIX)/bin
$(Q) install -s -m 0755 $< $@

Expand All @@ -729,6 +741,7 @@ else
$(PREFIX)/bin/bwatch-mono: $(BUILD_DESTDIR)/watchbcl/bin/mono | $(PREFIX)/bin
endif
$(Q) install -s -m 0755 $< $@
endif

# copy to temporary directory before signing / mdb-rebasing,
# otherwise we end up re-signing if installing into a different directory.
Expand Down
22 changes: 22 additions & 0 deletions docs/website/generator-errors.md
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,28 @@ This usually indicates a bug in Xamarin.iOS/Xamarin.Mac; please [file a bug repo

<h3><a name='BI1053'/>BI1053: Internal error: unknown target framework '*'.</h3>

<h3><a name='BI1054'/>BI1054: Internal error: can't convert type '*' (unknown assembly). Please file a bug report (https://bugzilla.xamarin.com) with a test case.</h3>

This usually indicates a bug in Xamarin.iOS/Xamarin.Mac; please [file a bug report](https://bugzilla.xamarin.com/enter_bug.cgi?product=iOS&component=Tools) with a test case.

<h3><a name='BI1055'/>BI1055: Internal error: failed to convert type '*'. Please file a bug report (https://bugzilla.xamarin.com) with a test case.</h3>

This usually indicates a bug in Xamarin.iOS/Xamarin.Mac; please [file a bug report](https://bugzilla.xamarin.com/enter_bug.cgi?product=iOS&component=Tools) with a test case.

<h3><a name='BI1056'/>BI1056: Internal error: failed to instantiate mock attribute '*' (could not convert type constructor argument #*). Please file a bug report (https://bugzilla.xamarin.com) with a test case.</h3>

This usually indicates a bug in Xamarin.iOS/Xamarin.Mac; please [file a bug report](https://bugzilla.xamarin.com/enter_bug.cgi?product=iOS&component=Tools) with a test case.

<h3><a name='BI1057'/>BI1057: Internal error: failed to instantiate mock attribute '*' (could not convert constructor type #* (*)). Please file a bug report (https://bugzilla.xamarin.com) with a test case.</h3>

This usually indicates a bug in Xamarin.iOS/Xamarin.Mac; please [file a bug report](https://bugzilla.xamarin.com/enter_bug.cgi?product=iOS&component=Tools) with a test case.

<h3><a name='BI1058'/>BI1058: Internal error: could not find a constructor for the mock attribute '*'. Please file a bug report (https://bugzilla.xamarin.com) with a test case.</h3>

This usually indicates a bug in Xamarin.iOS/Xamarin.Mac; please [file a bug report](https://bugzilla.xamarin.com/enter_bug.cgi?product=iOS&component=Tools) with a test case.

<h3><a name='BI1059'/>BI1059: Found * * attributes on the member *. At most one was expected.</h3>

<h3><a name='BI1060'/>BI1060: The * protocol is decorated with [Model], but not [BaseType]. Please verify that [Model] is relevant for this protocol; if so, add [BaseType] as well, otherwise remove [Model].</h3>

# BI11xx: warnings
Expand Down
2 changes: 1 addition & 1 deletion mk/xamarin.mk
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
ifdef ENABLE_XAMARIN
NEEDED_MACCORE_VERSION := d576fd8274e3fea113171bf7586175735b6dd42c
NEEDED_MACCORE_VERSION := 479cb9e380932f45322fbe904e7918988e49c373
NEEDED_MACCORE_BRANCH := master

MACCORE_DIRECTORY := maccore
Expand Down
11 changes: 8 additions & 3 deletions msbuild/Xamarin.Mac.Tasks/Tasks/BTouch.cs
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,15 @@ protected override string GenerateCommandLineCommands ()
};

var sb = new StringBuilder ();
if (isMobile) {
sb.Append (Path.Combine (FrameworkRoot, "lib", "bmac", "bmac-mobile.exe"));
var bgen = Path.Combine (FrameworkRoot, "lib", "bgen", "bgen.exe");
if (File.Exists (bgen)) {
sb.Append (bgen);
} else {
sb.Append (Path.Combine (FrameworkRoot, "lib", "bmac", "bmac-full.exe"));
if (isMobile) {
sb.Append (Path.Combine (FrameworkRoot, "lib", "bmac", "bmac-mobile.exe"));
} else {
sb.Append (Path.Combine (FrameworkRoot, "lib", "bmac", "bmac-full.exe"));
}
}
sb.Append (" -nostdlib ");
sb.Append (base.GenerateCommandLineCommands ());
Expand Down
1 change: 1 addition & 0 deletions src/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,4 @@ xamios.csproj
xammac.csproj
xamtvos.csproj
xamwatch.csproj
generator-ikvm.csproj
5 changes: 5 additions & 0 deletions src/Foundation/ExportAttribute.cs
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,12 @@
//
using System;
using System.Globalization;
#if IKVM
using IKVM.Reflection;
using Type = IKVM.Reflection.Type;
#else
using System.Reflection;
#endif
using XamCore.ObjCRuntime;
using XamCore.Registrar;

Expand Down
73 changes: 61 additions & 12 deletions src/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ include $(TOP)/src/system-drawing.sources
include $(TOP)/src/monotouch-dialog.sources
include $(TOP)/src/touch-unit.sources

export MD_MTOUCH_SDK_ROOT=$(IOS_DESTDIR)/$(MONOTOUCH_PREFIX)
export XamarinMacFrameworkRoot=$(MAC_DESTDIR)/Library/Frameworks/Xamarin.Mac.framework/Versions/Current

MAC_BUILD_DIR=build/mac
IOS_BUILD_DIR=build/ios
WATCH_BUILD_DIR=build/watch
Expand Down Expand Up @@ -55,7 +58,20 @@ IOS_DEFINES = -define:IPHONE -define:IOS -define:MONOTOUCH -d:NET_2_0 -d:__IOS__
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

ifdef IKVM
IOS_GENERATOR=build/common/bgen.exe
IOS_GENERATE=$(SYSTEM_MONO) --debug $(IOS_GENERATOR)
IOS_GENERATOR_DEPENDENCIES=$(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/bgen/monotouch.BindingAttributes.dll $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/bgen/Xamarin.iOS.BindingAttributes.dll
IOS_compat_GENERATOR=$(IOS_GENERATOR)
IOS_compat_GENERATE=$(IOS_GENERATE)
IOS_native_GENERATOR=$(IOS_GENERATOR)
IOS_native_GENERATE=$(IOS_GENERATE)
else
IOS_compat_GENERATOR=$(IOS_BUILD_DIR)/compat/generator.exe
IOS_compat_GENERATE=$(IOS_BMONO) --debug $(IOS_compat_GENERATOR)
IOS_native_GENERATOR=$(IOS_BUILD_DIR)/native/generator.exe
IOS_native_GENERATE=$(IOS_BMONO) --debug $(IOS_native_GENERATOR)
endif
$(IOS_BUILD_DIR)/Constants.cs: Constants.iOS.cs.in Makefile
$(Q) mkdir -p $(IOS_BUILD_DIR)
$(call Q_PROF_GEN,ios) sed \
Expand Down Expand Up @@ -117,8 +133,8 @@ $(IOS_BUILD_DIR)/$(1)/generator.exe: $$(GENERATOR_SOURCES) $(IOS_BUILD_DIR)/$(1)
xi_compat_profile=--target-framework=MonoTouch,v1.0
xi_native_profile=--target-framework=Xamarin.iOS,v1.0

$(IOS_BUILD_DIR)/$(1)/generated_sources: $(IOS_BUILD_DIR)/$(1)/generator.exe $$(IOS_APIS)
$$(call Q_PROF_GEN,ios/$(1)) PMCS_PROFILE=$(3) $$(IOS_BMONO) --debug $(IOS_BUILD_DIR)/$(1)/generator.exe \
$(IOS_BUILD_DIR)/$(1)/generated_sources: $$(IOS_$(1)_GENERATOR) $$(IOS_APIS) $(IOS_BUILD_DIR)/$(1)/core.dll $(IOS_PMCS) $(IOS_GENERATOR_DEPENDENCIES)
$$(call Q_PROF_GEN,ios/$(1)) PMCS_PROFILE=$(3) $$(IOS_$(1)_GENERATE) \
$$(IOS_GENERATOR_FLAGS) \
-core \
-sourceonly=$$@ \
Expand Down Expand Up @@ -465,6 +481,24 @@ xm_full_profile=--target-framework=Xamarin.Mac,Version=v4.5,Profile=Full
xm_mobile_profile=--target-framework=Xamarin.Mac,Version=v2.0,Profile=Mobile
xm_compat_profile=--target-framework=XamMac,v1.0

ifdef IKVM
MAC_GENERATOR=build/common/bgen.exe
MAC_GENERATE=$(SYSTEM_MONO) --debug $(MAC_GENERATOR)
MAC_compat_GENERATOR=$(MAC_GENERATOR)
MAC_compat_GENERATE=$(MAC_GENERATE)
MAC_full_GENERATOR=$(MAC_GENERATOR)
MAC_full_GENERATE=$(MAC_GENERATE)
MAC_mobile_GENERATOR=$(MAC_GENERATOR)
MAC_mobile_GENERATE=$(MAC_GENERATE)
else
MAC_compat_GENERATOR=$(MAC_BUILD_DIR)/compat/_bmac.exe
MAC_compat_GENERATE=$(SYSTEM_MONO) --debug $(MAC_compat_GENERATOR)
MAC_full_GENERATOR=$(MAC_BUILD_DIR)/full/_bmac.exe
MAC_full_GENERATE=$(SYSTEM_MONO) --debug $(MAC_full_GENERATOR)
MAC_mobile_GENERATOR=$(MAC_BUILD_DIR)/mobile/_bmac.exe
MAC_mobile_GENERATE=$(TOP)/builds/install/mono-mac64 --debug $(MAC_mobile_GENERATOR)
endif

define MAC_GENERATOR_template
$(MAC_BUILD_DIR)/$(1)/pmcs: pmcs.in $(PMCS_EXE) Makefile | $(MAC_BUILD_DIR)/$(1)
$$(call Q_PROF_GEN,mac/$(1)) sed -e 's|@MCS@|$(SYSTEM_MCS) $(4)|g' -e 's|@PMCS@|$(abspath $(PMCS_EXE))|g' < $$< > $$@
Expand All @@ -484,8 +518,8 @@ $(MAC_BUILD_DIR)/$(1)/_bmac.exe: $(MAC_BUILD_DIR)/$(1)/core.dll $(MAC_APIS) $(GE
-r:$$(@D)/core.dll \
$(GENERATOR_SOURCES)

$(MAC_BUILD_DIR)/$(1)/generated-sources: $(MAC_BUILD_DIR)/$(1)/_bmac.exe $(MAC_APIS)
$$(call Q_PROF_GEN,mac/$(1)) PMCS_PROFILE=$(6) $(5) --debug $$< \
$(MAC_BUILD_DIR)/$(1)/generated-sources: $$(MAC_$(1)_GENERATOR) $(MAC_APIS) $(MAC_BUILD_DIR)/$(1)/core.dll $(MAC_BUILD_DIR)/$(1)/pmcs
$$(call Q_PROF_GEN,mac/$(1)) PMCS_PROFILE=$(6) $$(MAC_$(1)_GENERATE) \
-d:MONOMAC \
-d:XAMARIN_MAC \
-compiler:$(MAC_BUILD_DIR)/$(1)/pmcs \
Expand All @@ -502,9 +536,9 @@ $(MAC_BUILD_DIR)/$(1)/generated-sources: $(MAC_BUILD_DIR)/$(1)/_bmac.exe $(MAC_A
$(MAC_APIS)
endef

$(eval $(call MAC_GENERATOR_template,compat,--ns=MonoMac.ObjCRuntime,-r:/Library/Frameworks/Mono.framework/Versions/Current/lib/mono/4.5/System.Drawing.dll,,$(SYSTEM_MONO),compat-mac))
$(eval $(call MAC_GENERATOR_template,full,--ns=ObjCRuntime,-d:NO_SYSTEM_DRAWING,,$(SYSTEM_MONO),full))
$(eval $(call MAC_GENERATOR_template,mobile,--ns=ObjCRuntime,$(SHARED_SYSTEM_DRAWING_SOURCES),-nostdlib -r:mscorlib.dll -lib:$(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono/Xamarin.Mac,$(TOP)/builds/install/mono-mac64,mobile))
$(eval $(call MAC_GENERATOR_template,compat,--ns=MonoMac.ObjCRuntime,-r:/Library/Frameworks/Mono.framework/Versions/Current/lib/mono/4.5/System.Drawing.dll,,,compat-mac))
$(eval $(call MAC_GENERATOR_template,full,--ns=ObjCRuntime,-d:NO_SYSTEM_DRAWING,,,full))
$(eval $(call MAC_GENERATOR_template,mobile,--ns=ObjCRuntime,$(SHARED_SYSTEM_DRAWING_SOURCES),-nostdlib -r:mscorlib.dll -lib:$(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono/Xamarin.Mac,,mobile))

define MAC_TARGETS_template
$(MAC_BUILD_DIR)/$(1)/$(2): $(MAC_BUILD_DIR)/$(3)/generated-sources $(MAC_SOURCES) $(MAC_CFNETWORK_SOURCES) $(MAC_CLASSIC_SOURCES) $(SN_KEY)
Expand Down Expand Up @@ -680,6 +714,14 @@ WATCH_DEFINES = -define:IPHONE -define:MONOTOUCH -d:NET_2_0 -d:WATCH -d:XAMCORE_
WATCH_PMCS = $(WATCH_BUILD_DIR)/pmcs
WATCH_LIBDIR = $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.WatchOS
WATCH_BMONO = MONO_PATH=$(WATCH_LIBDIR)/repl $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/bin/bwatch-mono
ifdef IKVM
WATCH_GENERATOR=build/common/bgen.exe
WATCH_GENERATE=$(SYSTEM_MONO) --debug $(WATCH_GENERATOR)
else
WATCH_GENERATOR=$(WATCH_BUILD_DIR)/watch/generator.exe
WATCH_GENERATE=$(WATCH_BMONO) --debug $(WATCH_GENERATOR)
endif


WATCHOS_EXTRA_CORE_SOURCES = \
$(WATCH_BUILD_DIR)/Constants.cs \
Expand Down Expand Up @@ -738,8 +780,8 @@ $(WATCH_BUILD_DIR)/watch/generator.exe: $(GENERATOR_SOURCES) $(WATCH_BUILD_DIR)/
$(GENERATOR_DEFINES) \

# generated_sources
$(WATCH_BUILD_DIR)/watch/generated_sources: $(WATCH_BUILD_DIR)/watch/generator.exe $(WATCHOS_APIS)
$(call Q_PROF_GEN,watch) PMCS_PROFILE=watch $(WATCH_BMONO) --debug $(WATCH_BUILD_DIR)/watch/generator.exe \
$(WATCH_BUILD_DIR)/watch/generated_sources: $(WATCH_GENERATOR) $(WATCHOS_APIS) $(WATCH_BUILD_DIR)/watch/core.dll $(WATCH_PMCS)
$(call Q_PROF_GEN,watch) PMCS_PROFILE=watch $(WATCH_GENERATE) \
-inline-selectors \
-process-enums \
-core \
Expand Down Expand Up @@ -883,6 +925,13 @@ TVOS_DEFINES = -define:IPHONE -define:MONOTOUCH -d:NET_2_0 -d:TVOS -d:XAMCORE_2_
TVOS_PMCS = $(TVOS_BUILD_DIR)/pmcs
TVOS_LIBDIR = $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.TVOS
TVOS_BMONO = MONO_PATH=$(TVOS_LIBDIR)/repl $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/bin/btv-mono
ifdef IKVM
TVOS_GENERATOR=build/common/bgen.exe
TVOS_GENERATE=$(SYSTEM_MONO) --debug $(TVOS_GENERATOR)
else
TVOS_GENERATOR=$(TVOS_BUILD_DIR)/tvos/generator.exe
TVOS_GENERATE=$(TVOS_BMONO) --debug $(TVOS_GENERATOR)
endif

TVOS_EXTRA_CORE_SOURCES = \
$(TVOS_BUILD_DIR)/Constants.cs \
Expand Down Expand Up @@ -936,8 +985,8 @@ $(TVOS_BUILD_DIR)/tvos/generator.exe: $(GENERATOR_SOURCES) $(TVOS_BUILD_DIR)/tvo
$(GENERATOR_DEFINES) \

# generated_sources
$(TVOS_BUILD_DIR)/tvos/generated_sources: $(TVOS_BUILD_DIR)/tvos/generator.exe $(TVOS_APIS)
$(call Q_PROF_GEN,tvos) PMCS_PROFILE=tvos $(TVOS_BMONO) --debug $(TVOS_BUILD_DIR)/tvos/generator.exe \
$(TVOS_BUILD_DIR)/tvos/generated_sources: $(TVOS_GENERATOR) $(TVOS_APIS) $(TVOS_BUILD_DIR)/tvos/core.dll $(TVOS_PMCS)
$(call Q_PROF_GEN,tvos) PMCS_PROFILE=tvos $(TVOS_GENERATE) \
-inline-selectors \
-process-enums \
-core \
Expand Down
Loading