231 строка
11 KiB
Makefile
231 строка
11 KiB
Makefile
#
|
|
# Generator
|
|
#
|
|
|
|
# copy generator.csproj to the build dir so that we can use our shared .csproj.inc target from rules.mk to create generator.csproj.inc
|
|
# we need any generated files in this directory to go into the build directory, and the shared target will output the csproj.inc into the same directory as the csproj
|
|
$(BUILD_DIR)/generator.csproj: generator.csproj | $(BUILD_DIR)
|
|
$(Q) $(CP) $< $@
|
|
|
|
# generator.csproj.inc contains the generator_dependencies variable used to determine if the generator needs to be rebuilt or not.
|
|
-include $(BUILD_DIR)/generator.csproj.inc
|
|
|
|
$(BUILD_DIR)/common/bgen.exe: $(generator_dependencies) Makefile.generator $(BUILD_DIR)/generator-frameworks.g.cs
|
|
$(Q_GEN) $(SYSTEM_MSBUILD) "/bl:$@.binlog" $(XBUILD_VERBOSITY) /p:Configuration=Debug generator.csproj /p:IntermediateOutputPath=$(BUILD_DIR)/IDE/obj/common/ /p:OutputPath=$(BUILD_DIR)/common /restore
|
|
|
|
$(DOTNET_BUILD_DIR)/bgen/bgen: $(generator_dependencies) Makefile.generator $(BUILD_DIR)/generator-frameworks.g.cs global.json | $(DOTNET_BUILD_DIR)/bgen
|
|
$(Q_DOTNET_BUILD) $(DOTNET6) publish bgen/bgen.csproj $(DOTNET_BUILD_VERBOSITY) /p:Configuration=Debug /p:IntermediateOutputPath=$(abspath $(DOTNET_BUILD_DIR)/IDE/obj/common/bgen)/ /p:OutputPath=$(abspath $(DOTNET_BUILD_DIR)/IDE/bin/common/bgen/)/
|
|
$(Q) $(CP) $(DOTNET_BUILD_DIR)/IDE/bin/common/bgen/publish/* $(dir $@)
|
|
$(Q) printf 'exec $(DOTNET6) "$$(dirname "$$0")"/bgen.dll $$@\n' > $@
|
|
$(Q) chmod +x $@
|
|
|
|
|
|
$(DOTNET_DESTDIR)/%.Sdk/tools/lib/bgen/bgen: $(DOTNET_BUILD_DIR)/bgen/bgen | $(DOTNET_DESTDIR)/%.Sdk/tools/lib/bgen
|
|
$(Q) rm -Rf "$(dir $@)"
|
|
$(Q) $(CP) -r "$(dir $<)" "$(dir $@)"
|
|
|
|
$(DOTNET_DESTDIR)/%.Sdk/tools/bin/bgen: bgen/bgen.dotnet | $(DOTNET_DESTDIR)/%.Sdk/tools/bin
|
|
$(Q) $(CP) $< $@
|
|
|
|
$(DOTNET_DESTDIR)/%.Sdk/tools/lib/Xamarin.Apple.BindingAttributes.dll: $(DOTNET_BUILD_DIR)/Xamarin.Apple.BindingAttributes.dll | $(DOTNET_DESTDIR)/%.Sdk/tools/lib
|
|
$(Q) $(CP) $< $@
|
|
$(Q) $(CP) $(<:.dll=.pdb) $(@:.dll=.pdb)
|
|
|
|
DOTNET_TARGETS += \
|
|
$(DOTNET_BUILD_DIR)/bgen/bgen \
|
|
$(foreach platform,$(DOTNET_PLATFORMS),$(DOTNET_DESTDIR)/Microsoft.$(platform).Sdk/tools/bin/bgen) \
|
|
$(foreach platform,$(DOTNET_PLATFORMS),$(DOTNET_DESTDIR)/Microsoft.$(platform).Sdk/tools/lib/bgen/bgen) \
|
|
$(foreach platform,$(DOTNET_PLATFORMS),$(DOTNET_DESTDIR)/Microsoft.$(platform).Sdk/tools/lib/Xamarin.Apple.BindingAttributes.dll) \
|
|
|
|
DOTNET_TARGETS_DIRS += \
|
|
$(DOTNET_BUILD_DIR) \
|
|
$(DOTNET_BUILD_DIR)/bgen \
|
|
$(foreach platform,$(DOTNET_PLATFORMS),$(DOTNET_DESTDIR)/Microsoft.$(platform).Sdk/tools/bin) \
|
|
$(foreach platform,$(DOTNET_PLATFORMS),$(DOTNET_DESTDIR)/Microsoft.$(platform).Sdk/tools/lib) \
|
|
$(foreach platform,$(DOTNET_PLATFORMS),$(DOTNET_DESTDIR)/Microsoft.$(platform).Sdk/tools/lib/bgen) \
|
|
|
|
#
|
|
# Common
|
|
#
|
|
|
|
$(BUILD_DIR)/generator-frameworks.g.cs: frameworks.sources Makefile.generator generate-frameworks.csharp
|
|
@mkdir -p $(dir $@)
|
|
$(Q) ./generate-frameworks.csharp $@.tmp '$(IOS_FRAMEWORKS)' '$(MACOS_FRAMEWORKS)' '$(WATCHOS_FRAMEWORKS)' '$(TVOS_FRAMEWORKS)' '$(MACCATALYST_FRAMEWORKS)'
|
|
$(Q) mv $@.tmp $@
|
|
|
|
# This rule means: generate a <platform>-defines.rsp for the frameworks in the variable <PLATFORM>_FRAMEWORKS
|
|
$(BUILD_DIR)/%-defines.rsp: frameworks.sources Makefile.generator generate-defines.csharp
|
|
@mkdir -p $(dir $@)
|
|
$(Q) ./generate-defines.csharp $@.tmp '$($(shell echo $* | tr a-z A-Z)_FRAMEWORKS)'
|
|
$(Q) mv $@.tmp $@
|
|
|
|
$(DOTNET_BUILD_DIR)/Xamarin.Apple.BindingAttributes.dll: generator-attributes.cs Makefile.generator | $(DOTNET_BUILD_DIR)
|
|
$(Q_DOTNET_BUILD) $(SYSTEM_CSC) $(DOTNET_FLAGS) -out:$@ $<
|
|
|
|
#
|
|
# Xamarin.iOS (btouch)
|
|
#
|
|
|
|
IOS_TARGETS_DIRS += \
|
|
$(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/btouch \
|
|
$(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/bgen \
|
|
|
|
IOS_TARGETS += \
|
|
$(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/bgen/Xamarin.iOS.BindingAttributes.dll \
|
|
$(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/bgen/bgen.exe \
|
|
$(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/bin/bgen \
|
|
|
|
IOS_TARGETS += \
|
|
$(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/bin/btouch \
|
|
$(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/bin/btouch-native \
|
|
|
|
$(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/bin/bgen: bgen/bgen | $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/bin
|
|
$(Q) $(CP) $< $@
|
|
|
|
$(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/bin/btouch: Makefile.generator | $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/bin
|
|
$(Q_GEN) printf "#!/bin/sh -e\n\necho \"error BI0088: btouch: MonoTouch binding projects are not supported anymore. Please upgrade the binding project to a Xamarin.iOS (Unified) binding project.\"\nexit 1\n" > $@
|
|
$(Q) chmod +x $@
|
|
|
|
$(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/bin/btouch-native: btouch-native | $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/bin
|
|
$(Q) $(CP) $< $@
|
|
|
|
$(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/bgen/%.dll: $(IOS_BUILD_DIR)/native/%.dll | $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/bgen
|
|
$(Q) install -m 0755 $< $@
|
|
$(Q) install -m 0644 $(<:.dll=.pdb) $(@:.dll=.pdb)
|
|
|
|
$(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/bgen/bgen.exe: $(BUILD_DIR)/common/bgen.exe | $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/bgen
|
|
$(Q) install -m 0755 $< $@
|
|
$(Q) install -m 0644 $< $(@:.exe=.pdb)
|
|
$(Q) install -m 0755 "$(dir $<)"/*.dll "$(dir $@)"
|
|
|
|
$(IOS_BUILD_DIR)/native/Xamarin.iOS.BindingAttributes.dll: generator-attributes.cs Makefile.generator
|
|
$(Q) mkdir -p $(dir $@)
|
|
$(Q_GEN) $(IOS_CSC) -features:strict -nologo -out:$@ -debug generator-attributes.cs -target:library -deterministic
|
|
|
|
#
|
|
# Xamarin.Watch (bwatch)
|
|
#
|
|
|
|
WATCH_TARGETS_DIRS += \
|
|
$(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/bwatch \
|
|
|
|
WATCH_TARGETS += \
|
|
$(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/bgen/Xamarin.WatchOS.BindingAttributes.dll \
|
|
|
|
WATCH_TARGETS += \
|
|
$(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/bin/bwatch \
|
|
|
|
$(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/bin/bwatch: bwatch | $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/bin
|
|
$(Q) $(CP) $< $@
|
|
|
|
$(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/bgen/%.dll: $(WATCH_BUILD_DIR)/%.dll | $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/bgen
|
|
$(Q) install -m 0755 $< $@
|
|
$(Q) install -m 0644 $(<:.dll=.pdb) $(@:.dll=.pdb)
|
|
|
|
$(WATCH_BUILD_DIR)/Xamarin.WatchOS.BindingAttributes.dll: generator-attributes.cs Makefile.generator
|
|
$(Q) mkdir -p $(dir $@)
|
|
$(Q_GEN) $(WATCH_CSC) -features:strict -nologo -debug -out:$@ -debug generator-attributes.cs -target:library -deterministic
|
|
|
|
# #
|
|
# # Xamarin.TVOS (btv)
|
|
# #
|
|
|
|
TVOS_TARGETS_DIRS += \
|
|
$(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/btv \
|
|
|
|
TVOS_TARGETS += \
|
|
$(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/bgen/Xamarin.TVOS.BindingAttributes.dll \
|
|
|
|
TVOS_TARGETS += \
|
|
$(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/bin/btv \
|
|
|
|
$(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/bin/btv: btv | $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/bin
|
|
$(Q) $(CP) $< $@
|
|
|
|
$(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/bgen/%.dll: $(TVOS_BUILD_DIR)/%.dll | $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/bgen
|
|
$(Q) install -m 0755 $< $@
|
|
$(Q) install -m 0644 $(<:.dll=.pdb) $(@:.dll=.pdb)
|
|
|
|
$(TVOS_BUILD_DIR)/Xamarin.TVOS.BindingAttributes.dll: generator-attributes.cs Makefile.generator
|
|
$(Q) mkdir -p $(dir $@)
|
|
$(Q_GEN) $(TV_CSC) -features:strict -nologo -debug -out:$@ -debug generator-attributes.cs -target:library -deterministic
|
|
|
|
#
|
|
# Xamarin.MacCatalyst
|
|
#
|
|
|
|
MACCATALYST_TARGETS += \
|
|
$(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/bgen/Xamarin.MacCatalyst.BindingAttributes.dll \
|
|
|
|
$(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/bgen/%.dll: $(MACCATALYST_BUILD_DIR)/%.dll | $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/bgen
|
|
$(Q) install -m 0755 $< $@
|
|
$(Q) install -m 0644 $(<:.dll=.pdb) $(@:.dll=.pdb)
|
|
|
|
$(MACCATALYST_BUILD_DIR)/Xamarin.MacCatalyst.BindingAttributes.dll: generator-attributes.cs Makefile.generator
|
|
$(Q) mkdir -p $(dir $@)
|
|
$(Q_GEN) $(MACCATALYST_CSC) -features:strict -nologo -debug -out:$@ -debug generator-attributes.cs -target:library -deterministic
|
|
|
|
#
|
|
# Xamarin.Mac (bmac)
|
|
#
|
|
|
|
MAC_TARGETS_DIRS += \
|
|
$(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/bmac \
|
|
$(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/bgen \
|
|
|
|
MAC_TARGETS += \
|
|
$(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/bin/bgen \
|
|
$(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/bin/bgen-classic \
|
|
$(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/bgen/bgen.exe \
|
|
$(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/bgen/Xamarin.Mac-full.BindingAttributes.dll \
|
|
$(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/bgen/Xamarin.Mac-mobile.BindingAttributes.dll \
|
|
|
|
MAC_TARGETS += \
|
|
$(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/bin/bmac \
|
|
|
|
$(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/bin/bgen: bgen/bgen | $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/bin
|
|
$(Q) $(CP) $< $@
|
|
|
|
$(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/bin/bgen-classic: Makefile.generator | $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/bin
|
|
$(Q_GEN) printf "#!/bin/sh -e\n\necho \"error BI0087: bgen-classic: Xamarin.Mac Classic binding projects are not supported anymore. Please upgrade the binding project to a Xamarin.Mac Unified binding project.\"\nexit 1\n" > $@
|
|
$(Q) chmod +x $@
|
|
|
|
$(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/bin/bmac: bmac.ikvm | $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/bin
|
|
$(Q) install -m 0755 $< $@
|
|
|
|
$(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/bgen/%.dll: $(MAC_BUILD_DIR)/%.dll | $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/bgen
|
|
$(Q) install -m 0755 $< $@
|
|
|
|
$(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/bgen/%.pdb: $(MAC_BUILD_DIR)/%.pdb | $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/bgen
|
|
$(Q) install -m 0644 $< $@
|
|
|
|
$(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/bgen/%.mdb: $(MAC_BUILD_DIR)/%.mdb | $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/bgen
|
|
$(Q) install -m 0644 $< $@
|
|
|
|
$(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/bgen/%.exe: $(BUILD_DIR)/common/bgen.exe | $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/bgen
|
|
$(Q) install -m 0755 $< $@
|
|
$(Q) install -m 0644 $< $(@:.exe=.pdb)
|
|
$(Q) install -m 0755 "$(dir $<)"/*.dll "$(dir $@)"
|
|
|
|
define MAC_BINDINGATTRIBUTES_template
|
|
$$(MAC_BUILD_DIR)/Xamarin.Mac-$(1).BindingAttributes.dll: generator-attributes.cs Makefile.generator
|
|
$$(Q) mkdir -p $$(dir $$@)
|
|
$$(Q_GEN) $$(MAC_$(1)_CSC) -features:strict -nologo -debug -out:$$@ -debug generator-attributes.cs -target:library -deterministic
|
|
endef
|
|
|
|
$(eval $(call MAC_BINDINGATTRIBUTES_template,full))
|
|
$(eval $(call MAC_BINDINGATTRIBUTES_template,mobile))
|
|
|
|
install-bgen: \
|
|
$(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/bin/bgen \
|
|
$(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/bgen/bgen.exe \
|
|
$(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/bgen/Xamarin.Mac-full.BindingAttributes.dll \
|
|
$(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/bgen/Xamarin.Mac-mobile.BindingAttributes.dll \
|
|
$(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/bgen/Xamarin.iOS.BindingAttributes.dll \
|
|
$(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/bgen/Xamarin.TVOS.BindingAttributes.dll \
|
|
$(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/bgen/Xamarin.WatchOS.BindingAttributes.dll \
|
|
$(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/bgen/Xamarin.MacCatalyst.BindingAttributes.dll \
|
|
$(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/bgen/bgen.exe \
|
|
$(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/bin/bgen \
|
|
|