Get the F# binaries from macios-binaries instead of building them every time. (#5015)

It's still possible to build from source if desired.

Also remove the fsharp submodule (it will be cloned manually only if building
from source).
This commit is contained in:
Rolf Bjarne Kvinge 2018-10-19 16:54:44 +02:00 коммит произвёл GitHub
Родитель ac87108152
Коммит 1279dd1eaa
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
7 изменённых файлов: 44 добавлений и 18 удалений

4
.gitmodules поставляемый
Просмотреть файл

@ -1,7 +1,3 @@
[submodule "external/fsharp"]
path = external/fsharp
url = ../../fsharp/fsharp.git
branch = master
[submodule "external/guiunit"]
path = external/guiunit
url = ../../mono/guiunit.git

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

@ -231,7 +231,6 @@ DEVICETV_OBJC_CFLAGS = $(DEVICETV_CFLAGS) $(DEVICE_OBJC_CFLAGS)
# things in other places if they absolutely must.
MONO_PATH=$(TOP)/external/mono
WATCH_MONO_PATH=$(TOP)/external/mono
FSHARP_PATH=$(TOP)/external/fsharp
TOUCH_UNIT_PATH=$(TOP)/external/Touch.Unit
NUNITLITE_PATH=$(TOP)/external/mono/external/nunit-lite
OPENTK_PATH=$(TOP)/external/opentk

1
external/fsharp поставляемый

@ -1 +0,0 @@
Subproject commit 7171700877115e2243b4edbc4e2eb88d019e02b0

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

@ -1 +1 @@
Subproject commit a4a1ceec883cc47f5eb4d4604fe5fe52d1f662d0
Subproject commit 850e2e3035843e93e758ca79aff3fc977b2c18ac

2
fsharp/.gitignore поставляемый
Просмотреть файл

@ -1,2 +1,4 @@
build.stamp
Makefile.inc
fsharp

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

@ -1,7 +1,32 @@
TOP=..
include $(TOP)/Make.config
FSHARP_FILES:=$(shell git --git-dir=$(FSHARP_PATH)/.git --work-tree=$(FSHARP_PATH) ls-tree --full-tree -r HEAD --name-only | sed 's_^\(.*\)_$(FSHARP_PATH)/\1_' | sed 's/ /\\ /g')
# By default we'll get the F# binaries from the macios-binaries repository.
# It's still possible to build from source, by passing "FSHARP_BUILD_FROM_SOURCE=1" when building,
# which will automatically clone the fsharp repository, and build what's needed.
# The FSHARP_SOURCE_HASH variable below defines which fsharp hash to build.
FSHARP_SOURCE_HASH=7171700877115e2243b4edbc4e2eb88d019e02b0
FSHARP_SOURCE_BRANCH=master
FSHARP_BINARIES_PATH=$(abspath $(MACIOS_BINARIES_PATH)/fsharp)
FSHARP_SOURCE_PATH=$(abspath $(CURDIR)/fsharp)
ifeq ($(FSHARP_BUILD_FROM_SOURCE),)
FSHARP_PATH=$(FSHARP_BINARIES_PATH)
FSHARP_BUILD_PATH=$(FSHARP_BINARIES_PATH)
else
FSHARP_PATH=$(FSHARP_SOURCE_PATH)
FSHARP_BUILD_PATH=build
# Create a list of all the source files in the fsharp repo to use as dependencies.
# But skip any files with spaces, because make + spaces is not a good combination.
Makefile.inc: $(FSHARP_SOURCE_PATH)
$(Q) printf "FSHARP_FILES := \\\\\\n" >> $@.tmp
$(Q) git --git-dir=$(FSHARP_SOURCE_PATH)/.git --work-tree=$(FSHARP_SOURCE_PATH) ls-tree --full-tree -r HEAD --name-only | grep -v ' ' | sed -e 's_^\(.*\)_ $(FSHARP_SOURCE_PATH)/\1 \\_' >> $@.tmp
$(Q) mv $@.tmp $@
-include Makefile.inc
endif
FSHARP_TARGET_FILES = \
FSharp.Core.dll \
@ -10,6 +35,11 @@ FSHARP_TARGET_FILES = \
FSharp.Core.sigdata \
FSharp.Core.xml \
$(FSHARP_SOURCE_PATH):
$(Q) echo "Cloning the fsharp repository..."
$(Q) git clone -q https://github.com/fsharp/fsharp fsharp
$(Q) cd fsharp && git checkout $(FSHARP_SOURCE_BRANCH) && git reset --hard $(FSHARP_SOURCE_HASH)
BIN_DIR=$(FSHARP_PATH)/lib/release
IOS_BIN_DIR = $(FSHARP_PATH)/lib/release/monotouch
WATCH_BIN_DIR = $(FSHARP_PATH)/lib/release/xamarinwatchos
@ -33,7 +63,7 @@ IOS_FSHARP_DIRECTORIES = \
$(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/2.1/LICENSE-fsharp: $(FSHARP_PATH)/LICENSE | $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/2.1
$(Q) install -m 0644 $< $@
$(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/2.1/%.dll: build/monotouch/%.dll | $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/2.1
$(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/2.1/%.dll: $(FSHARP_BUILD_PATH)/monotouch/%.dll | $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/2.1
$(Q) install -m 0644 $< $@
$(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/2.1/%: $(IOS_BIN_DIR)/% | $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/2.1
@ -42,7 +72,7 @@ $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/2.1/%: $(IOS_BIN_DIR)/% | $(IOS_DESTD
$(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.iOS/LICENSE-fsharp: $(FSHARP_PATH)/LICENSE | $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.iOS
$(Q) install -m 0644 $< $@
$(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.iOS/%.dll: build/monotouch/%.dll | $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.iOS
$(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.iOS/%.dll: $(FSHARP_BUILD_PATH)/monotouch/%.dll | $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.iOS
$(Q) install -m 0644 $< $@
$(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.iOS/%: $(IOS_BIN_DIR)/% | $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.iOS
@ -62,7 +92,7 @@ WATCH_FSHARP_DIRECTORIES = \
$(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.WatchOS/LICENSE-fsharp: $(FSHARP_PATH)/LICENSE | $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.WatchOS
$(Q) install -m 0644 $< $@
$(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.WatchOS/%.dll: build/xamarinwatchos/%.dll | $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.WatchOS
$(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.WatchOS/%.dll: $(FSHARP_BUILD_PATH)/xamarinwatchos/%.dll | $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.WatchOS
$(Q) install -m 0644 $< $@
$(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.WatchOS/%: $(WATCH_BIN_DIR)/% | $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.WatchOS
@ -82,7 +112,7 @@ TVOS_FSHARP_DIRECTORIES = \
$(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.TVOS/LICENSE-fsharp: $(FSHARP_PATH)/LICENSE | $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.TVOS
$(Q) install -m 0644 $< $@
$(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.TVOS/%.dll: build/xamarintvos/%.dll | $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.TVOS
$(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.TVOS/%.dll: $(FSHARP_BUILD_PATH)/xamarintvos/%.dll | $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.TVOS
$(Q) install -m 0644 $< $@
$(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.TVOS/%: $(TVOS_BIN_DIR)/% | $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.TVOS
@ -107,7 +137,7 @@ MAC_FSHARP_DIRECTORIES = \
$(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono/4.5/LICENSE-fsharp: $(FSHARP_PATH)/LICENSE | $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono/4.5
$(Q) install -m 0644 $< $@
$(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono/4.5/%.dll: build/xamarinmacfull/%.dll | $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono/4.5
$(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono/4.5/%.dll: $(FSHARP_BUILD_PATH)/xamarinmacfull/%.dll | $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono/4.5
$(Q) install -m 0644 $< $@
$(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono/4.5/%: $(MAC_45_BIN_DIR)/% | $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono/4.5
@ -118,7 +148,7 @@ $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono/4.5/%: $(MAC_45_BIN_DIR)/% |
$(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono/Xamarin.Mac/LICENSE-fsharp: $(FSHARP_PATH)/LICENSE | $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono/Xamarin.Mac
$(Q) install -m 0644 $< $@
$(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono/Xamarin.Mac/%.dll: build/xamarinmacmobile/%.dll | $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono/Xamarin.Mac
$(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono/Xamarin.Mac/%.dll: $(FSHARP_BUILD_PATH)/xamarinmacmobile/%.dll | $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono/Xamarin.Mac
$(Q) install -m 0644 $< $@
$(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono/Xamarin.Mac/%: $(MAC_MOBILE_BIN_DIR)/% | $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono/Xamarin.Mac
@ -163,11 +193,15 @@ build.stamp: $(FSHARP_FILES) $(FSHARP_PATH)/Makefile
$(MAKE) -C $(FSHARP_PATH)/src/fsharp $(FSHARP_BUILD_TARGETS)
$(Q) touch $@
ifneq ($(FSHARP_BUILD_FROM_SOURCE),)
$(FSHARP_TARGETS): build.stamp
endif
all-local:: $(FSHARP_TARGETS)
install-local:: $(FSHARP_TARGETS)
$(FSHARP_PATH)/autogen.sh: $(FSHARP_SOURCE_PATH)
$(FSHARP_PATH)/Makefile: $(FSHARP_PATH)/autogen.sh $(FSHARP_FILES) /Library/Frameworks/Mono.framework/Versions/Current/updateinfo
@echo "Executing autogen for fsharp..."
$(Q) cd $(FSHARP_PATH) && ./autogen.sh --prefix=/Library/Frameworks/Mono.framework/Versions/Current

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

@ -67,7 +67,6 @@ endef
$(shell rm -f .check-versions-failure)
$(eval $(call CheckSubmoduleTemplate,mono,MONO))
$(eval $(call CheckSubmoduleTemplate,fsharp,FSHARP))
$(eval $(call CheckSubmoduleTemplate,Touch.Unit,TOUCH_UNIT))
$(eval $(call CheckSubmoduleTemplate,opentk,OPENTK))
$(eval $(call CheckSubmoduleTemplate,Xamarin.MacDev,XAMARIN_MACDEV))
@ -81,9 +80,6 @@ include $(TOP)/mk/xamarin.mk
reset-mono::
$(Q) rm -f $(TOP)/.stamp-build* $(MONO_PATH)/configure
reset-fsharp::
$(Q) cd $(FSHARP_PATH) && git clean -xffdq
check-versions::
@if test -e .check-versions-failure; then \
rm .check-versions-failure; \