Add our mono runtimes to the build.

This commit is contained in:
Rolf Bjarne Kvinge 2016-04-21 13:18:44 +02:00
Родитель 39ef301279
Коммит 9ea0738c48
18 изменённых файлов: 2356 добавлений и 1 удалений

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

@ -1,3 +1,5 @@
Make.config.local Make.config.local
Make.config.inc Make.config.inc
_ios-build
_mac-build

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

@ -0,0 +1,8 @@
[submodule "external/llvm"]
path = external/llvm
url = git://github.com/mono/llvm.git
branch = master
[submodule "external/mono"]
path = external/mono
url = git://github.com/mono/mono.git
branch = mono-4.5.0-branch

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

@ -209,6 +209,11 @@ DEVICETV_SDK = $(XCODE_DEVELOPER_ROOT)/Platforms/AppleTVOS.platfor
DEVICETV_CFLAGS = -arch arm64 -mtvos-version-min=$(MIN_TVOS_SDK_VERSION) -isysroot $(DEVICETV_SDK) $(CFLAGS) -fembed-bitcode $(IOS_COMMON_DEFINES) DEVICETV_CFLAGS = -arch arm64 -mtvos-version-min=$(MIN_TVOS_SDK_VERSION) -isysroot $(DEVICETV_SDK) $(CFLAGS) -fembed-bitcode $(IOS_COMMON_DEFINES)
DEVICETV_OBJC_CFLAGS = $(DEVICETV_CFLAGS) $(DEVICE_OBJC_CFLAGS) DEVICETV_OBJC_CFLAGS = $(DEVICETV_CFLAGS) $(DEVICE_OBJC_CFLAGS)
# paths to the modules we depend on, as variables, so people can put
# things in other places if they absolutely must.
MONO_PATH=$(TOP)/external/mono
LLVM_PATH=$(TOP)/external/llvm
MONO_PREFIX ?= /Library/Frameworks/Mono.framework/Versions/Current MONO_PREFIX ?= /Library/Frameworks/Mono.framework/Versions/Current
SYSTEM_MCS=$(MONO_PREFIX)/bin/mcs SYSTEM_MCS=$(MONO_PREFIX)/bin/mcs
SYSTEM_SN=$(MONO_PREFIX)/bin/sn SYSTEM_SN=$(MONO_PREFIX)/bin/sn

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

@ -1,4 +1,4 @@
TOP=. TOP=.
SUBDIRS= SUBDIRS=builds
include $(TOP)/Make.config include $(TOP)/Make.config
include $(TOP)/mk/versions.mk include $(TOP)/mk/versions.mk

21
builds/.gitignore поставляемый Normal file
Просмотреть файл

@ -0,0 +1,21 @@
.stamp*
*.config.cache
install
mac32
mac64
llvm
llvm64
simulator86
simulator64
watchsimulator
tvsimulator
tools64
cross
cross64
crosstv
cross-watch
target7
target7s
target64
targettv
targetwatch

2029
builds/Makefile Normal file

Разница между файлами не показана из-за своего большого размера Загрузить разницу

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

@ -0,0 +1,58 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleIdentifier</key>
<string>xamarin.ios.mono-framework</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>Mono</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>3.12</string>
<key>NSPrincipalClass</key>
<string></string>
<key>CFBundleExecutable</key>
<string>Mono</string>
<key>BuildMachineOSBuild</key>
<string>13F34</string>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleSupportedPlatforms</key>
<array>
<string>iPhoneOS</string>
</array>
<key>DTCompiler</key>
<string>com.apple.compilers.llvm.clang.1_0</string>
<key>DTPlatformBuild</key>
<string>12D508</string>
<key>DTPlatformName</key>
<string>iphoneos</string>
<key>DTPlatformVersion</key>
<string>8.2</string>
<key>DTSDKBuild</key>
<string>12D508</string>
<key>DTSDKName</key>
<string>iphoneos8.2</string>
<key>DTXcode</key>
<string>0620</string>
<key>DTXcodeBuild</key>
<string>6C131e</string>
<key>MinimumOSVersion</key>
<string>8.0</string>
<key>UIDeviceFamily</key>
<array>
<integer>1</integer>
<integer>2</integer>
</array>
</dict>
</plist>

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

@ -0,0 +1,56 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleIdentifier</key>
<string>xamarin.ios.mono-framework</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>Mono</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>3.12</string>
<key>NSPrincipalClass</key>
<string></string>
<key>CFBundleExecutable</key>
<string>Mono</string>
<key>BuildMachineOSBuild</key>
<string>13F34</string>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleSupportedPlatforms</key>
<array>
<string>AppleTVOS</string>
</array>
<key>DTCompiler</key>
<string>com.apple.compilers.llvm.clang.1_0</string>
<key>DTPlatformBuild</key>
<string>12D508</string>
<key>DTPlatformName</key>
<string>appletvos</string>
<key>DTPlatformVersion</key>
<string>9.0</string>
<key>DTSDKBuild</key>
<string>12D508</string>
<key>DTSDKName</key>
<string>appletvos9.0</string>
<key>DTXcode</key>
<string>0620</string>
<key>DTXcodeBuild</key>
<string>6C131e</string>
<key>MinimumOSVersion</key>
<string>9.0</string>
<key>UIDeviceFamily</key>
<array>
<integer>3</integer>
</array>
</dict>
</plist>

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

@ -0,0 +1,56 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleIdentifier</key>
<string>xamarin.ios.mono-framework</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>Mono</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>3.12</string>
<key>NSPrincipalClass</key>
<string></string>
<key>CFBundleExecutable</key>
<string>Mono</string>
<key>BuildMachineOSBuild</key>
<string>13F34</string>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleSupportedPlatforms</key>
<array>
<string>WatchOS</string>
</array>
<key>DTCompiler</key>
<string>com.apple.compilers.llvm.clang.1_0</string>
<key>DTPlatformBuild</key>
<string>12D508</string>
<key>DTPlatformName</key>
<string>watchos</string>
<key>DTPlatformVersion</key>
<string>2.0</string>
<key>DTSDKBuild</key>
<string>12D508</string>
<key>DTSDKName</key>
<string>watchos2.2</string>
<key>DTXcode</key>
<string>0620</string>
<key>DTXcodeBuild</key>
<string>6C131e</string>
<key>MinimumOSVersion</key>
<string>2.0</string>
<key>UIDeviceFamily</key>
<array>
<integer>4</integer>
</array>
</dict>
</plist>

3
builds/mac-System.config Normal file
Просмотреть файл

@ -0,0 +1,3 @@
<configuration>
<dllmap dll="MonoPosixHelper" target="@executable_path/../lib/libMonoPosixHelper.dylib" />
</configuration>

7
builds/mono-wrapper.in Normal file
Просмотреть файл

@ -0,0 +1,7 @@
#!/usr/bin/env bash
export PATH="@FRAMEWORK_ROOT@/bin:$PATH"
export MONO_CFG_DIR="@FRAMEWORK_ROOT@/etc"
export MONO_PATH="@FRAMEWORK_ROOT@/lib/@ARCH@:@FRAMEWORK_ROOT@/lib/mono/Xamarin.Mac"
"@MONO@" "$@"

33
builds/wrap-autogen.sh Executable file
Просмотреть файл

@ -0,0 +1,33 @@
#!/bin/bash -e
START=$(date -u +"%s")
# first argument is directory
D=$1
shift
# second argument is a name
NAME=$1
shift
echo Running autogen for $D
ORIGINAL_CWD=$(pwd)
LOG_FILE=$ORIGINAL_CWD/.stamp-autogen-$NAME.log
cd $D
if ! git submodule update -r > $LOG_FILE 2>&1; then
echo "Autogen (git submodule update) for $D failed:"
cat $LOG_FILE | sed "s/^/ /"
exit 1
fi
if ! NOCONFIGURE=1 ./autogen.sh "$@" > $LOG_FILE 2>&1; then
echo Autogen for $D failed:
cat $LOG_FILE | sed "s/^/ /"
exit 1
fi
END=$(date -u +"%s")
DIFF=$(($END-$START))
echo Ran autogen for $D in $(($DIFF/60))m $(($DIFF%60))s

45
builds/wrap-configure.sh Executable file
Просмотреть файл

@ -0,0 +1,45 @@
#!/bin/bash -e
START=$(date -u +"%s")
# first argument is directory
D=$1
shift
if test -f $D.config.cache; then
HAS_CACHE=1
fi
mkdir -p $D
echo Configuring $D
cd $D
if ! "$@" > .stamp-configure-$D.log 2>&1; then
FAILED=1
if [[ x"$HAS_CACHE" == "x1" ]]; then
echo Configuring $D failed, but a cache was used. Will try to configure without the cache.
rm ../$D.config.cache
if ! "$@" > .stamp-configure-$D.log 2>&1; then
echo Configuring $D failed without cache as well.
else
FAILED=
fi
fi
if [[ x"$FAILED" == "x1" ]]; then
echo Configuring $D failed:
cat .stamp-configure-$D.log | sed "s/^/ /"
echo
echo " *** config.log *** "
echo
cat config.log | sed "s/^/ /"
exit 1
fi
fi
cd ..
touch .stamp-configure-$D
END=$(date -u +"%s")
DIFF=$(($END-$START))
echo Configured $D in $(($DIFF/60))m $(($DIFF%60))s

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

@ -0,0 +1 @@
Subproject commit 9f79399f87282524fee099b328bd8cbf07929daf

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

@ -0,0 +1 @@
Subproject commit 87d50fbdb500c197c21e553fcfe3a0a003cd0ec1

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

@ -55,6 +55,19 @@ check-versions:: check-$(1)
print-versions:: print-$(1) print-versions:: print-$(1)
endef endef
$(shell rm -f .check-versions-failure)
$(eval $(call CheckSubmoduleTemplate,llvm,LLVM))
$(eval $(call CheckSubmoduleTemplate,mono,MONO))
# some hackish reset-* targets to deal with what needs to happen in various parts of the build tree when you reset a module
reset-mono::
$(Q) rm -f $(TOP)/.stamp-build* $(MONO_PATH)/configure
reset-llvm::
$(Q) $(MAKE) -C $(TOP)/builds clean-llvm
check-versions:: check-versions::
@if test -e .check-versions-failure; then \ @if test -e .check-versions-failure; then \
rm .check-versions-failure; \ rm .check-versions-failure; \

17
mono/4.5/machine.config Normal file
Просмотреть файл

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<strongNames>
<pubTokenMapping>
<!-- ECMA key: System.Data.dll, System.Data.Services.Client.dll, System.Numerics.dll, System.Transaction.dll -->
<map Token="b77a5c561934e089" PublicKey="0024000004800000940000000602000000240000525341310004000011000000438ac2a5acfbf16cbd2b2b47a62762f273df9cb2795ceccdf77d10bf508e69e7a362ea7a45455bbf3ac955e1f2e2814f144e5d817efc4c6502cc012df310783348304e3ae38573c6d658c234025821fda87a0be8a0d504df564e2c93b2b878925f42503e9d54dfef9f9586d9e6f38a305769587b1de01f6c0410328b2c9733db" />
<!-- Microsoft (final) key: System.Web.Services.dll -->
<map Token="b03f5f7f11d50a3a" PublicKey="0024000004800000940000000602000000240000525341310004000011000000438ac2a5acfbf16cbd2b2b47a62762f273df9cb2795ceccdf77d10bf508e69e7a362ea7a45455bbf3ac955e1f2e2814f144e5d817efc4c6502cc012df310783348304e3ae38573c6d658c234025821fda87a0be8a0d504df564e2c93b2b878925f42503e9d54dfef9f9586d9e6f38a305769587b1de01f6c0410328b2c9733db" />
<!-- Microsoft (Web Service Enhancement) key: System.Json.dll, System.ServiceModel.dll, System.Xml.Linq.dll -->
<map Token="31bf3856ad364e35" PublicKey="0024000004800000940000000602000000240000525341310004000011000000438ac2a5acfbf16cbd2b2b47a62762f273df9cb2795ceccdf77d10bf508e69e7a362ea7a45455bbf3ac955e1f2e2814f144e5d817efc4c6502cc012df310783348304e3ae38573c6d658c234025821fda87a0be8a0d504df564e2c93b2b878925f42503e9d54dfef9f9586d9e6f38a305769587b1de01f6c0410328b2c9733db" />
<!-- Silverlight 2.0 key: mscorlib.dll, System.Runtime.Serialization.dll, System.ServiceModel.Web.dll, System.Xml.dll, System.dll, mscorlib.dll -->
<map Token="7cec85d7bea7798e" PublicKey="0024000004800000940000000602000000240000525341310004000011000000438ac2a5acfbf16cbd2b2b47a62762f273df9cb2795ceccdf77d10bf508e69e7a362ea7a45455bbf3ac955e1f2e2814f144e5d817efc4c6502cc012df310783348304e3ae38573c6d658c234025821fda87a0be8a0d504df564e2c93b2b878925f42503e9d54dfef9f9586d9e6f38a305769587b1de01f6c0410328b2c9733db" />
<!-- Mono key: I18N*.dll, Mono.Data.Sqlite.dll, Mono.Data.Tds.dll, Mono.Security.dll -->
<map Token="0738eb9f132ed756" PublicKey="0024000004800000940000000602000000240000525341310004000011000000438ac2a5acfbf16cbd2b2b47a62762f273df9cb2795ceccdf77d10bf508e69e7a362ea7a45455bbf3ac955e1f2e2814f144e5d817efc4c6502cc012df310783348304e3ae38573c6d658c234025821fda87a0be8a0d504df564e2c93b2b878925f42503e9d54dfef9f9586d9e6f38a305769587b1de01f6c0410328b2c9733db" />
</pubTokenMapping>
</strongNames>
</configuration>

Двоичные данные
product.snk Normal file

Двоичный файл не отображается.