You've already forked linux-packaging-mono
Imported Upstream version 5.18.0.142
Former-commit-id: 7467d4b717762eeaf652d77f1486dd11ffb1ff1f
This commit is contained in:
parent
e52655b4dc
commit
0abdbe5a7d
@@ -15,7 +15,7 @@ common/Consts.cs: common/Consts.cs.in $(wildcard config.make)
|
||||
test -n '$(MONO_CORLIB_VERSION)'
|
||||
sed -e 's,@''MONO_VERSION@,$(MONO_VERSION),' -e 's,@''MONO_CORLIB_VERSION@,$(MONO_CORLIB_VERSION),' $< > $@
|
||||
|
||||
PLATFORMS = darwin linux win32
|
||||
PLATFORMS = macos linux win32 unix
|
||||
PROFILES = \
|
||||
basic \
|
||||
build \
|
||||
@@ -40,7 +40,6 @@ DISTFILES = \
|
||||
corcompare.make \
|
||||
corcompare-api.xsl \
|
||||
executable.make \
|
||||
gensources.sh \
|
||||
gensources.cs \
|
||||
library.make \
|
||||
rules.make \
|
||||
|
@@ -34,11 +34,11 @@ static class Consts
|
||||
// Use these assembly version constants to make code more maintainable.
|
||||
//
|
||||
|
||||
public const string MonoVersion = "5.16.0.187";
|
||||
public const string MonoVersion = "5.18.0.142";
|
||||
public const string MonoCompany = "Mono development team";
|
||||
public const string MonoProduct = "Mono Common Language Infrastructure";
|
||||
public const string MonoCopyright = "(c) Various Mono authors";
|
||||
public const int MonoCorlibVersion = 1051600011;
|
||||
public const string MonoCorlibVersion = "72078E96-4A71-4CCD-83BC-B7CC78873FC0";
|
||||
|
||||
#if MOBILE
|
||||
// Versions of .NET Framework for Silverlight 4.0
|
||||
|
@@ -38,7 +38,7 @@ static class Consts
|
||||
public const string MonoCompany = "Mono development team";
|
||||
public const string MonoProduct = "Mono Common Language Infrastructure";
|
||||
public const string MonoCopyright = "(c) Various Mono authors";
|
||||
public const int MonoCorlibVersion = @MONO_CORLIB_VERSION@;
|
||||
public const string MonoCorlibVersion = "@MONO_CORLIB_VERSION@";
|
||||
|
||||
#if MOBILE
|
||||
// Versions of .NET Framework for Silverlight 4.0
|
||||
|
@@ -32,10 +32,10 @@ mono_libdir = $(exec_prefix)/lib
|
||||
sysconfdir = $(prefix)/etc
|
||||
#RUNTIME = mono
|
||||
RUNTIME = false
|
||||
MONO_PATH_TOP = $(topdir)/class/lib/$(PROFILE_DIRECTORY)/
|
||||
MONO_PATH_TOP = $(topdir)/class/lib/$(PROFILE_DIRECTORY)
|
||||
MONO_PATH_TESTS = $(MONO_PATH_TOP)/tests
|
||||
TEST_MONO_PATH = $(MONO_PATH_TOP)$(PLATFORM_PATH_SEPARATOR)$(MONO_PATH_TESTS)
|
||||
TEST_RUNTIME = MONO_PATH="$(TEST_MONO_PATH)$(PLATFORM_PATH_SEPARATOR).$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(RUNTIME) --debug
|
||||
TEST_MONO_PATH = $(MONO_PATH_TOP)$(PLATFORM_PATH_SEPARATOR)$(MONO_PATH_TESTS)$(PLATFORM_PATH_SEPARATOR).
|
||||
TEST_RUNTIME = MONO_PATH="$(TEST_MONO_PATH)$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(RUNTIME) --debug
|
||||
|
||||
# In case you want to add MCS_FLAGS, this lets you not have to
|
||||
# keep track of the default value
|
||||
|
@@ -1,5 +1,5 @@
|
||||
API_INFO = $(MONO_PATH) $(RUNTIME) $(topdir)/class/lib/$(PROFILE)/mono-api-info.exe
|
||||
API_DIFF = $(MONO_PATH) $(RUNTIME) $(topdir)/tools/corcompare/mono-api-diff.exe
|
||||
API_DIFF = $(MONO_PATH) $(RUNTIME) $(topdir)/class/lib/$(PROFILE)/mono-api-diff.exe
|
||||
TRANSFORM = $(MONO_PATH) $(RUNTIME) $(topdir)/tools/corcompare/transform.exe
|
||||
|
||||
OBJECTS = $(topdir)/build/corcompare/$(LIBRARY_NAME:.dll=.html)
|
||||
|
@@ -191,6 +191,7 @@ csproj-local:
|
||||
echo $(thisdir):$$config_file >> $(topdir)/../msvc/scripts/order; \
|
||||
(echo $(is_boot); \
|
||||
echo $(USE_MCS_FLAGS) $(LIBRARY_FLAGS) $(LIB_MCS_FLAGS) $(patsubst %,-r:%,$(LIB_REFS)); \
|
||||
echo $(sourcefile); \
|
||||
echo $(PROGRAM); \
|
||||
echo $(BUILT_SOURCES_cmdline); \
|
||||
echo $(build_lib); \
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -1,113 +0,0 @@
|
||||
#! /bin/sh
|
||||
|
||||
outfile=$1
|
||||
incfile=$2
|
||||
excfile=$3
|
||||
extfile=$4
|
||||
extexcfile=$5
|
||||
|
||||
process_includes_1() {
|
||||
sed -e '/^[ \t]*$/d' -e '/^[ \t]*#/d' -e '/*/d' $1 > $2
|
||||
if cmp -s $1 $2; then
|
||||
false
|
||||
else
|
||||
sed -n 's,^[ \t]*#include ,,p' $1 |
|
||||
while read inc; do
|
||||
cat $inc >> $2
|
||||
echo $outfile: $inc >> $outfile.makefrag
|
||||
echo $inc: >> $outfile.makefrag
|
||||
done
|
||||
|
||||
# expand wildcards
|
||||
sed -n '/*/p' $1 | grep -v '#' |
|
||||
while read wildc; do
|
||||
# quick syntax to exclude files:
|
||||
# ../../../MyDir/*.cs:FileToExclude1.cs,FileToExclude2.cs
|
||||
wc=`echo $wildc | cut -d \: -f 1` # ../../../MyDir/*.cs
|
||||
qexc=`echo $wildc | cut -d \: -f 2` # FileToExclude1.cs,FileToExclude2.cs
|
||||
|
||||
if test "$wc" = "$qexc"; then
|
||||
# no quick excludes - just expand the wildcard
|
||||
ls $wildc >> $2
|
||||
else
|
||||
wcdir=`echo $wildc | cut -d \* -f 1` # ../../../MyDir/
|
||||
# Enumerate files from 'FileToExclude1.cs,FileToExclude2.cs'
|
||||
# and save to $outfile.exc
|
||||
oldIFS=$IFS
|
||||
IFS=,
|
||||
for i in $qexc; do
|
||||
echo "$wcdir$i" >> $outfile.exc
|
||||
done
|
||||
IFS=$oldIFS
|
||||
ls $wc >> $2
|
||||
fi
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
process_includes() {
|
||||
i=$1; o=$2; t=${2}.tmp
|
||||
while process_includes_1 $i $o; do
|
||||
mv $o $t
|
||||
i=$t
|
||||
done
|
||||
rm -f $t
|
||||
}
|
||||
|
||||
check_newline_eof() {
|
||||
file=$1
|
||||
if ! test -f "$file"; then return; fi
|
||||
if ! test -z "$(tail -c 1 "$file")"; then echo "$file: missing newline at end of file."; exit 1; fi
|
||||
}
|
||||
|
||||
check_newline_eof $incfile
|
||||
check_newline_eof $excfile
|
||||
check_newline_eof $extfile
|
||||
check_newline_eof $extexcfile
|
||||
|
||||
rm -f $outfile.makefrag
|
||||
|
||||
process_includes $incfile $outfile.inc
|
||||
|
||||
if test x$extfile != x -a -f "$extfile"; then
|
||||
process_includes $extfile $outfile.ext.inc
|
||||
cat $outfile.ext.inc >> $outfile.inc
|
||||
rm -f $outfile.ext.inc
|
||||
fi
|
||||
|
||||
sort -u $outfile.inc > $outfile.inc_s
|
||||
rm -f $outfile.inc
|
||||
|
||||
|
||||
if test -n "$excfile" -a -f "$excfile"; then
|
||||
process_includes $excfile $outfile.exc
|
||||
fi
|
||||
|
||||
if test -n "$extexcfile"; then
|
||||
process_includes $extexcfile $outfile.ext_exc
|
||||
cat $outfile.ext_exc >> $outfile.exc
|
||||
rm -f $outfile.ext_exc
|
||||
fi
|
||||
|
||||
if test -f $outfile.exc; then
|
||||
# So what we're doing below with uniq -u is that we take
|
||||
# lines that have not been duplicated. This computes the
|
||||
# symmetric difference between the files. This is not
|
||||
# what we want. If a file is in the excludes but not in
|
||||
# the sources, we want that file not to show up. By duplicating the
|
||||
# excludes, we ensure that we won't end up in this failure state.
|
||||
sort -u $outfile.exc > $outfile.exc_s
|
||||
|
||||
# Duplicate excludes
|
||||
cat $outfile.exc_s >> $outfile.exc_s_dup
|
||||
cat $outfile.exc_s >> $outfile.exc_s_dup
|
||||
|
||||
rm -f $outfile.exc $outfile.exc_s
|
||||
|
||||
cat $outfile.inc_s $outfile.exc_s_dup | sort | uniq -u > $outfile
|
||||
rm -f $outfile.inc_s $outfile.exc_s_dup
|
||||
else
|
||||
mv $outfile.inc_s $outfile
|
||||
fi
|
||||
|
||||
|
@@ -136,6 +136,7 @@ csproj-library:
|
||||
echo $(thisdir):$$config_file >> $(topdir)/../msvc/scripts/order; \
|
||||
(echo $(is_boot); \
|
||||
echo $(USE_MCS_FLAGS) $(LIBRARY_FLAGS) $(LIB_MCS_FLAGS) $(KEYFILE_MCS_FLAGS); \
|
||||
echo $(LIBRARY); \
|
||||
echo $(LIBRARY_NAME); \
|
||||
echo $(BUILT_SOURCES_cmdline); \
|
||||
echo $(build_lib); \
|
||||
@@ -236,11 +237,12 @@ ifdef RESOURCE_DEFS
|
||||
$(foreach pair,$(RESOURCE_DEFS), $(eval $(call RESOURCE_template,$(word 1, $(subst $(ccomma), ,$(pair))), $(word 2, $(subst $(ccomma), ,$(pair))))))
|
||||
endif
|
||||
|
||||
DISTFILES = $(wildcard *$(LIBRARY)*.sources) $(EXTRA_DISTFILES) $(DIST_LISTED_RESOURCES)
|
||||
DISTFILES = $(wildcard *.sources) $(EXTRA_DISTFILES) $(DIST_LISTED_RESOURCES)
|
||||
|
||||
ASSEMBLY = $(LIBRARY)
|
||||
ASSEMBLY_EXT = .dll
|
||||
the_assembly = $(the_lib)
|
||||
|
||||
include $(topdir)/build/tests.make
|
||||
|
||||
ifdef HAVE_CS_TESTS
|
||||
@@ -251,6 +253,7 @@ csproj-test:
|
||||
echo $(thisdir):$$config_file >> $(topdir)/../msvc/scripts/order; \
|
||||
(echo false; \
|
||||
echo $(USE_MCS_FLAGS) -r:$(the_assembly) $(TEST_MCS_FLAGS); \
|
||||
echo $(LIBRARY); \
|
||||
echo $(test_lib); \
|
||||
echo $(BUILT_SOURCES_cmdline); \
|
||||
echo $(test_lib); \
|
||||
@@ -295,22 +298,18 @@ endif
|
||||
# The library
|
||||
|
||||
# If the directory contains the per profile include file, generate list file.
|
||||
PROFILE_sources := $(firstword $(if $(PROFILE_PLATFORM),$(wildcard $(PROFILE_PLATFORM)_$(PROFILE)_$(LIBRARY).sources)) $(wildcard $(PROFILE)_$(LIBRARY).sources) $(wildcard $(LIBRARY).sources))
|
||||
PROFILE_excludes = $(firstword $(if $(PROFILE_PLATFORM),$(wildcard $(PROFILE_PLATFORM)_$(PROFILE)_$(LIBRARY).exclude.sources)) $(wildcard $(PROFILE)_$(LIBRARY).exclude.sources))
|
||||
# TODO: depend on all *.sources for now and figure out how to list only needed files later
|
||||
PROFILE_sources = $(wildcard *.sources)
|
||||
|
||||
gensources = $(topdir)/build/gensources.exe
|
||||
$(gensources): $(topdir)/build/gensources.cs
|
||||
$(BOOTSTRAP_MCS) -noconfig -debug:portable -r:mscorlib.dll -r:System.dll -r:System.Core.dll -out:$(gensources) $(topdir)/build/gensources.cs
|
||||
|
||||
ifdef PROFILE_RUNTIME
|
||||
GENSOURCES_RUNTIME = $(PROFILE_RUNTIME)
|
||||
ifneq "x" "x$(PROFILE_RUNTIME)"
|
||||
GENSOURCES_RUNTIME=$(PROFILE_RUNTIME)
|
||||
else
|
||||
GENSOURCES_RUNTIME = MONO_PATH="$(topdir)/class/lib/$(BUILD_TOOLS_PROFILE)$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(RUNTIME)
|
||||
GENSOURCES_RUNTIME=MONO_PATH="$(GENSOURCES_LIBDIR)$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(RUNTIME)
|
||||
endif
|
||||
|
||||
sourcefile = $(depsdir)/$(PROFILE_PLATFORM)_$(PROFILE)_$(LIBRARY_SUBDIR)_$(LIBRARY).sources
|
||||
$(sourcefile): $(PROFILE_sources) $(PROFILE_excludes) $(depsdir)/.stamp $(gensources)
|
||||
$(GENSOURCES_RUNTIME) --debug $(gensources) "$@" "$(LIBRARY)" "$(PROFILE_PLATFORM)" "$(PROFILE)"
|
||||
$(sourcefile): $(PROFILE_sources) $(PROFILE_excludes) $(depsdir)/.stamp $(GENSOURCES_CS)
|
||||
$(GENSOURCES_RUNTIME) --debug $(GENSOURCES_EXE) --strict "$@" "$(LIBRARY)" "$(PROFILE_PLATFORM)" "$(PROFILE)"
|
||||
|
||||
library_CLEAN_FILES += $(sourcefile)
|
||||
|
||||
|
@@ -34,3 +34,5 @@ platform-check:
|
||||
# echo "*** You need to build MCS with GNU make. Try \`gmake'" ; \
|
||||
# exit 1 ; \
|
||||
# fi
|
||||
|
||||
PLATFORM_MACOS=1
|
36
mcs/build/platforms/unix.make
Normal file
36
mcs/build/platforms/unix.make
Normal file
@@ -0,0 +1,36 @@
|
||||
# -*- makefile -*-
|
||||
#
|
||||
# Platform-specific makefile rules. This one's for any unix (FreeBSD, OpenBSD, etc.)
|
||||
#
|
||||
|
||||
PLATFORM_MCS_FLAGS =
|
||||
PLATFORM_RUNTIME = $(RUNTIME)
|
||||
PLATFORM_CORLIB = mscorlib.dll
|
||||
PLATFORM_TEST_HARNESS_EXCLUDES =
|
||||
|
||||
EXTERNAL_MCS = mcs
|
||||
EXTERNAL_MBAS = mbas
|
||||
EXTERNAL_RUNTIME = mono
|
||||
#ILDISASM = monodis
|
||||
ILDISASM = false
|
||||
|
||||
PLATFORM_PATH_SEPARATOR = :
|
||||
|
||||
# Define this if this ever will work on Unix
|
||||
# PLATFORM_MAKE_CORLIB_CMP = yes
|
||||
|
||||
# This is for changing / to \ on windows
|
||||
PLATFORM_CHANGE_SEPARATOR_CMD = cat
|
||||
|
||||
hidden_prefix = .
|
||||
hidden_suffix =
|
||||
|
||||
platform-check:
|
||||
@:
|
||||
# I tried this but apparently Make's version strings aren't that
|
||||
# ... consistent between releases. Whatever.
|
||||
#
|
||||
# @if ! $(MAKE) --version |grep '^GNU Make version 3' 1>/dev/null 2>&1 ; then \
|
||||
# echo "*** You need to build MCS with GNU make. Try \`gmake'" ; \
|
||||
# exit 1 ; \
|
||||
# fi
|
@@ -29,6 +29,9 @@ endif
|
||||
ILASM = $(PROFILE_RUNTIME) $(RUNTIME_FLAGS) $(topdir)/class/lib/$(BUILD_TOOLS_PROFILE)/ilasm.exe
|
||||
STRING_REPLACER = $(PROFILE_RUNTIME) $(RUNTIME_FLAGS) $(topdir)/class/lib/$(BUILD_TOOLS_PROFILE)/tmp/cil-stringreplacer.exe
|
||||
MCS = $(BOOTSTRAP_MCS)
|
||||
GENSOURCES_CS = $(topdir)/build/gensources.cs
|
||||
GENSOURCES_DIR = $(topdir)/build
|
||||
GENSOURCES_EXE = $(GENSOURCES_DIR)/gensources.exe
|
||||
|
||||
DEFAULT_REFERENCES = mscorlib
|
||||
|
||||
@@ -113,9 +116,14 @@ do-profile-check-monolite: $(depsdir)/.stamp
|
||||
|
||||
endif
|
||||
|
||||
$(PROFILE_EXE): $(topdir)/build/common/basic-profile-check.cs
|
||||
$(PROFILE_EXE): $(topdir)/build/common/basic-profile-check.cs $(GENSOURCES_CS)
|
||||
$(MAKE) $(MAKE_Q) -C $(topdir)/packages
|
||||
$(BOOTSTRAP_MCS) /warn:0 /noconfig /langversion:latest /r:System.dll /r:mscorlib.dll /out:$@ $<
|
||||
$(BOOTSTRAP_MCS) /warn:0 /noconfig /langversion:latest /r:System.dll /r:mscorlib.dll /out:$@.tmp $<
|
||||
$(BOOTSTRAP_MCS) /noconfig /langversion:latest /r:mscorlib.dll /r:System.dll /r:System.Core.dll /out:$(GENSOURCES_EXE).tmp $(GENSOURCES_CS)
|
||||
- rm $(GENSOURCES_EXE)
|
||||
mv $(GENSOURCES_EXE).tmp $(GENSOURCES_EXE)
|
||||
- rm $@
|
||||
mv $@.tmp $@
|
||||
|
||||
$(PROFILE_OUT): $(PROFILE_EXE)
|
||||
$(PROFILE_RUNTIME) $< > $@ 2>&1
|
||||
|
@@ -6,7 +6,7 @@ BUILD_TOOLS_PROFILE = basic
|
||||
BOOTSTRAP_MCS = MONO_PATH="$(topdir)/class/lib/$(BOOTSTRAP_PROFILE)$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(INTERNAL_CSC)
|
||||
MCS = $(BOOTSTRAP_MCS)
|
||||
|
||||
PLATFORMS = darwin linux win32
|
||||
PLATFORMS = macos linux win32 unix
|
||||
|
||||
# nuttzing!
|
||||
|
||||
@@ -22,5 +22,4 @@ NO_TEST = yes
|
||||
NO_INSTALL = yes
|
||||
|
||||
FRAMEWORK_VERSION = 4.5
|
||||
MONO_FEATURE_APPLETLS=1
|
||||
|
||||
|
@@ -5,7 +5,7 @@ BOOTSTRAP_PROFILE = build
|
||||
BOOTSTRAP_MCS = MONO_PATH="$(topdir)/class/lib/$(BOOTSTRAP_PROFILE)$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(INTERNAL_CSC)
|
||||
MCS = $(BOOTSTRAP_MCS)
|
||||
|
||||
PLATFORMS = darwin linux win32
|
||||
PLATFORMS = macos linux win32 unix
|
||||
|
||||
# nuttzing!
|
||||
|
||||
@@ -18,6 +18,9 @@ API_BIN_PROFILE = v4.7.1
|
||||
|
||||
FRAMEWORK_VERSION = 4.5
|
||||
XBUILD_VERSION = 4.0
|
||||
MONO_FEATURE_APPLETLS=1
|
||||
|
||||
ENFORCE_LIBRARY_WARN_AS_ERROR = yes
|
||||
|
||||
ifdef PLATFORM_MACOS
|
||||
MONO_FEATURE_APPLETLS=1
|
||||
endif
|
||||
|
@@ -56,7 +56,9 @@ INTERNAL_CSC = CSC_SDK_PATH_DISABLED= $(RUNTIME) $(RUNTIME_FLAGS) $(CSC_RUNTIME_
|
||||
RESGEN = MONO_PATH="$(topdir)/class/lib/$(BUILD_TOOLS_PROFILE)$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(RUNTIME) $(RUNTIME_FLAGS) $(topdir)/class/lib/$(BUILD_TOOLS_PROFILE)/resgen.exe
|
||||
STRING_REPLACER = MONO_PATH="$(topdir)/class/lib/$(BUILD_TOOLS_PROFILE)$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(RUNTIME) $(RUNTIME_FLAGS) $(topdir)/class/lib/$(BUILD_TOOLS_PROFILE)/cil-stringreplacer.exe
|
||||
ILASM = MONO_PATH="$(topdir)/class/lib/$(BUILD_TOOLS_PROFILE)$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(RUNTIME) $(RUNTIME_FLAGS) $(topdir)/class/lib/$(BUILD_TOOLS_PROFILE)/ilasm.exe
|
||||
|
||||
GENSOURCES_LIBDIR = $(topdir)/class/lib/$(BUILD_TOOLS_PROFILE)
|
||||
GENSOURCES_CS = $(topdir)/build/gensources.cs
|
||||
GENSOURCES_EXE = $(topdir)/build/gensources.exe
|
||||
|
||||
depsdir = $(topdir)/build/deps
|
||||
|
||||
@@ -72,6 +74,9 @@ export MKINSTALLDIRS
|
||||
export BOOTSTRAP_MCS
|
||||
export DESTDIR
|
||||
export RESGEN
|
||||
export GENSOURCES_LIBDIR
|
||||
export GENSOURCES_CS
|
||||
export GENSOURCES_EXE
|
||||
|
||||
# Get this so the platform.make platform-check rule doesn't become the
|
||||
# default target
|
||||
|
@@ -19,13 +19,22 @@ TEST_RUNTIME_WRAPPERS_PATH = $(shell dirname $(RUNTIME))/_tmpinst/bin
|
||||
## Unit test support
|
||||
ifndef NO_TEST
|
||||
|
||||
test_lib_dir = $(topdir)/class/lib/$(PROFILE)/tests
|
||||
|
||||
test_nunit_lib = nunitlite.dll
|
||||
xunit_core := xunit.core xunit.execution.desktop xunit.abstractions xunit.assert Xunit.NetCore.Extensions
|
||||
xunit_deps := System.Runtime
|
||||
xunit_core := xunit.core xunit.execution.dotnet xunit.abstractions xunit.assert Xunit.NetCore.Extensions
|
||||
xunit_deps := netstandard System.Runtime
|
||||
xunit_src := $(patsubst %,$(topdir)/../external/xunit-binaries/%,BenchmarkAttribute.cs BenchmarkDiscover.cs) $(topdir)/../mcs/class/test-helpers/PlatformDetection.cs
|
||||
|
||||
ifeq ($(USE_XTEST_REMOTE_EXECUTOR), YES)
|
||||
XTEST_REMOTE_EXECUTOR = $(topdir)/class/lib/$(PROFILE)/RemoteExecutorConsoleApp.exe
|
||||
XTEST_REMOTE_EXECUTOR = $(test_lib_dir)/RemoteExecutorConsoleApp.exe
|
||||
|
||||
ifeq ($(BUILD_PLATFORM), win32)
|
||||
XTEST_REMOTE_EXECUTOR_ABSPATH = $(shell cygpath -w $(abspath $(XTEST_REMOTE_EXECUTOR)))
|
||||
else
|
||||
XTEST_REMOTE_EXECUTOR_ABSPATH = $(abspath $(XTEST_REMOTE_EXECUTOR))
|
||||
endif
|
||||
|
||||
xunit_src += $(topdir)/../mcs/class/test-helpers/AdminHelper.cs \
|
||||
$(topdir)/../external/corefx/src/CoreFx.Private.TestUtilities/src/System/IO/FileCleanupTestBase.cs \
|
||||
$(topdir)/../external/corefx/src/CoreFx.Private.TestUtilities/src/System/Diagnostics/RemoteExecutorTestBase.cs \
|
||||
@@ -62,6 +71,7 @@ test_sourcefile = $(ASSEMBLY:$(ASSEMBLY_EXT)=_test.dll.sources)
|
||||
endif
|
||||
|
||||
test_lib = $(PROFILE)_$(ASSEMBLY:$(ASSEMBLY_EXT)=_test.dll)
|
||||
test_lib_output = $(test_lib_dir)/$(test_lib)
|
||||
|
||||
test_sourcefile_excludes = $(test_lib).exclude.sources
|
||||
|
||||
@@ -73,12 +83,13 @@ ifndef NO_BUILD
|
||||
test_flags += -r:$(the_assembly)
|
||||
test_assembly_dep = $(the_assembly)
|
||||
endif
|
||||
tests_CLEAN_FILES += $(ASSEMBLY:$(ASSEMBLY_EXT)=_test*.dll) $(ASSEMBLY:$(ASSEMBLY_EXT)=_test*.pdb) $(test_response) $(test_makefrag)
|
||||
tests_CLEAN_FILES += $(test_lib_output) $(test_lib_output:$(ASSEMBLY_EXT)=.pdb) $(test_response) $(test_makefrag)
|
||||
|
||||
xtest_sourcefile = $(PROFILE)_$(ASSEMBLY:$(ASSEMBLY_EXT)=_xtest.dll.sources)
|
||||
xtest_sourcefile_excludes = $(PROFILE)_$(ASSEMBLY:$(ASSEMBLY_EXT)=_xtest.dll.exclude.sources)
|
||||
|
||||
xunit_test_lib = $(PROFILE)_$(ASSEMBLY:$(ASSEMBLY_EXT)=_xunit-test.dll)
|
||||
xtest_lib_output = $(test_lib_dir)/$(xunit_test_lib)
|
||||
|
||||
xtest_response = $(depsdir)/$(xunit_test_lib).response
|
||||
xtest_makefrag = $(depsdir)/$(xunit_test_lib).makefrag
|
||||
@@ -86,7 +97,7 @@ xtest_flags = -r:$(the_assembly) $(xunit_libs_ref) $(XTEST_MCS_FLAGS) $(XTEST_LI
|
||||
|
||||
ifeq ($(wildcard $(xtest_sourcefile)),)
|
||||
xtest_sourcefile = $(ASSEMBLY:$(ASSEMBLY_EXT)=_xtest.dll.sources)
|
||||
tests_CLEAN_FILES += $(xunit_test_lib) $(xtest_response) $(xtest_makefrag)
|
||||
tests_CLEAN_FILES += $(xtest_lib_output) $(xtest_response) $(xtest_makefrag)
|
||||
endif
|
||||
|
||||
ifndef HAVE_CS_TESTS
|
||||
@@ -113,10 +124,6 @@ endif
|
||||
|
||||
test_assemblies :=
|
||||
|
||||
test_lib_dir = $(topdir)/class/lib/$(PROFILE)/tests
|
||||
|
||||
test_lib_output = $(topdir)/class/lib/$(PROFILE)/tests/$(test_lib)
|
||||
|
||||
ifdef HAVE_CS_TESTS
|
||||
test_assemblies += $(test_lib_output)
|
||||
|
||||
@@ -247,10 +254,20 @@ $(test_lib_output): $(test_assembly_dep) $(test_response) $(test_nunit_dep) $(te
|
||||
|
||||
test_response_preprocessed = $(test_response)_preprocessed
|
||||
|
||||
ifneq "x" "x$(PROFILE_RUNTIME)"
|
||||
GENSOURCES_RUNTIME=$(PROFILE_RUNTIME)
|
||||
else
|
||||
ifneq "x" "x$(TEST_RUNTIME)"
|
||||
GENSOURCES_RUNTIME=$(TEST_RUNTIME)
|
||||
else
|
||||
GENSOURCES_RUNTIME=MONO_PATH="$(GENSOURCES_LIBDIR)$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(RUNTIME)
|
||||
endif
|
||||
endif
|
||||
|
||||
# This handles .excludes/.sources pairs, as well as resolving the
|
||||
# includes that occur in .sources files
|
||||
$(test_response_preprocessed): $(test_sourcefile) $(wildcard $(test_sourcefile_excludes))
|
||||
$(SHELL) $(topdir)/build/gensources.sh $@ '$(test_sourcefile)' '$(test_sourcefile_excludes)'
|
||||
$(test_response_preprocessed): $(test_sourcefile) $(wildcard $(test_sourcefile_excludes)) $(GENSOURCES_CS)
|
||||
$(GENSOURCES_RUNTIME) --debug $(GENSOURCES_EXE) --basedir:./Test --strict "$@" "$(test_sourcefile)" "$(test_sourcefile_excludes)"
|
||||
|
||||
$(test_response): $(test_response_preprocessed)
|
||||
# @echo Creating $@ ...
|
||||
@@ -272,7 +289,8 @@ ifdef HAVE_CS_XTESTS
|
||||
|
||||
XTEST_HARNESS_PATH := $(topdir)/../external/xunit-binaries
|
||||
XTEST_HARNESS = $(XTEST_HARNESS_PATH)/xunit.console.exe
|
||||
XTEST_HARNESS_FLAGS := -noappdomain -noshadow -parallel none -nunit TestResult-$(PROFILE)-xunit.xml
|
||||
XTEST_RESULT_FILE := TestResult-$(PROFILE)-xunit.xml
|
||||
XTEST_HARNESS_FLAGS := -noappdomain -noshadow -parallel none -nunit $(XTEST_RESULT_FILE)
|
||||
XTEST_TRAIT := -notrait category=failing -notrait category=nonmonotests -notrait Benchmark=true -notrait category=outerloop
|
||||
# The logic is double inverted so this actually excludes tests not intented for current platform
|
||||
# best to search for `property name="category"` in the xml output to see what's going on
|
||||
@@ -294,34 +312,35 @@ XTEST_COVERAGE_FLAGS = -O=-aot --profile=coverage:output=$(topdir)/class/lib/$(P
|
||||
endif
|
||||
|
||||
check: run-xunit-test-local
|
||||
xunit-test-local: $(xunit_test_lib)
|
||||
xunit-test-local: $(xtest_lib_output)
|
||||
run-xunit-test-local: run-xunit-test-lib
|
||||
|
||||
# cp -rf is a HACK for xunit runner to require xunit.execution.desktop.dll file in local folder on .net only
|
||||
run-xunit-test-lib: xunit-test-local $(XTEST_REMOTE_EXECUTOR)
|
||||
@cp -rf $(XTEST_HARNESS_PATH)/xunit.execution.desktop.dll xunit.execution.desktop.dll
|
||||
# cp -rf is a HACK for xunit runner to require xunit.execution.dOTNET.dll file in local folder on .net only
|
||||
run-xunit-test-lib: xunit-test-local
|
||||
@cp -rf $(XTEST_HARNESS_PATH)/xunit.execution.dotnet.dll $(test_lib_dir)/xunit.execution.dotnet.dll
|
||||
ok=:; \
|
||||
PATH="$(TEST_RUNTIME_WRAPPERS_PATH):$(PATH)" REMOTE_EXECUTOR=$(XTEST_REMOTE_EXECUTOR) $(TEST_RUNTIME) $(TEST_RUNTIME_FLAGS) $(XTEST_COVERAGE_FLAGS) $(AOT_RUN_FLAGS) $(XTEST_HARNESS) $(xunit_test_lib) $(XTEST_HARNESS_FLAGS) $(XTEST_TRAIT) $(XTEST_TRAIT_PLATFORM) || ok=false; \
|
||||
PATH="$(TEST_RUNTIME_WRAPPERS_PATH):$(PATH)" REMOTE_EXECUTOR="$(XTEST_REMOTE_EXECUTOR_ABSPATH)" $(TEST_RUNTIME) $(TEST_RUNTIME_FLAGS) $(XTEST_COVERAGE_FLAGS) $(AOT_RUN_FLAGS) $(XTEST_HARNESS) $(xtest_lib_output) $(XTEST_HARNESS_FLAGS) $(XTEST_TRAIT) $(XTEST_TRAIT_PLATFORM) || ok=false; \
|
||||
if [ -n "$$MONO_BABYSITTER_NUNIT_XML_LIST_FILE" ]; then echo "$(abspath $(XTEST_RESULT_FILE))" >> "$$MONO_BABYSITTER_NUNIT_XML_LIST_FILE"; fi; \
|
||||
$$ok
|
||||
@rm -f xunit.execution.desktop.dll
|
||||
@rm -f $(test_lib_dir)/xunit.execution.dotnet.dll
|
||||
|
||||
# Some xunit tests want to be executed in a separate process (see RemoteExecutorTestBase)
|
||||
$(XTEST_REMOTE_EXECUTOR): $(topdir)/../external/corefx/src/Common/tests/System/Diagnostics/RemoteExecutorConsoleApp/RemoteExecutorConsoleApp.cs
|
||||
$(TEST_COMPILE) -r:$(topdir)/class/lib/$(PROFILE)/mscorlib.dll $< -out:$@
|
||||
|
||||
$(xunit_test_lib): $(the_assembly) $(xtest_response) $(xunit_libs_dep) $(xunit_src)
|
||||
$(xtest_lib_output): $(the_assembly) $(xtest_response) $(xunit_libs_dep) $(xunit_src) $(test_lib_dir) $(XTEST_REMOTE_EXECUTOR)
|
||||
$(TEST_COMPILE) $(LIBRARY_FLAGS) $(XTEST_LIB_FLAGS) -target:library -out:$@ $(xtest_flags) @$(xtest_response) $(xunit_src)
|
||||
|
||||
xtest_response_preprocessed = $(xtest_response)_preprocessed
|
||||
|
||||
# This handles .excludes/.sources pairs, as well as resolving the
|
||||
# includes that occur in .sources files
|
||||
$(xtest_response): $(xtest_sourcefile) $(wildcard $(xtest_sourcefile_excludes))
|
||||
$(SHELL) $(topdir)/build/gensources.sh $@ '$(xtest_sourcefile)' '$(xtest_sourcefile_excludes)'
|
||||
$(xtest_response): $(xtest_sourcefile) $(wildcard $(xtest_sourcefile_excludes)) $(GENSOURCES_CS)
|
||||
$(GENSOURCES_RUNTIME) --debug $(GENSOURCES_EXE) --strict "$@" "$(xtest_sourcefile)" "$(xtest_sourcefile_excludes)"
|
||||
|
||||
$(xtest_makefrag): $(xtest_response)
|
||||
@echo Creating $@ ...
|
||||
@sed 's,^,$(xunit_test_lib): ,' $< >$@
|
||||
@sed 's,^,$(xtest_lib_output): ,' $< >$@
|
||||
|
||||
-include $(xtest_makefrag)
|
||||
|
||||
|
@@ -20,6 +20,11 @@ LIB_MCS_FLAGS = $(SIGN_FLAGS) $(EXTRA_LIB_MCS_FLAGS)
|
||||
# TODO: find a better solution.
|
||||
EMBEDDED_DRAWING_DEP := $(filter xammac_net_4_5 testing_aot_full testing_aot_hybrid, $(PROFILE))
|
||||
|
||||
ifeq ($(PROFILE),monodroid)
|
||||
# XA implements System.Drawing API inside Mono.Android
|
||||
API_BIN_REFS := Mono.Android
|
||||
else
|
||||
|
||||
ifndef EMBEDDED_DRAWING_DEP
|
||||
|
||||
# profiles which build a System.Drawing.dll in the repo
|
||||
@@ -29,12 +34,12 @@ ifdef REPO_DRAWING_DEP
|
||||
LIB_REFS += System.Drawing
|
||||
else
|
||||
# When System.Drawing.dll is not built in the Mono repo but in
|
||||
# the product repo like in the XI/XA case we need to pass in a reference
|
||||
# the product repo like in the XI case we need to pass in a reference
|
||||
# to the assembly containing drawing types like Rectangle etc. from there.
|
||||
# This needs to be passed in via EXTERNAL_FACADE_DRAWING_REFERENCE.
|
||||
LIB_MCS_FLAGS += /r:$(EXTERNAL_FACADE_DRAWING_REFERENCE)
|
||||
endif
|
||||
|
||||
endif
|
||||
endif
|
||||
|
||||
PLATFORM_DEBUG_FLAGS =
|
||||
|
@@ -28,6 +28,11 @@ else
|
||||
LIB_REFS += System.Web
|
||||
endif
|
||||
|
||||
ifeq ($(PROFILE),monodroid)
|
||||
# XA implements System.Drawing API inside Mono.Android
|
||||
API_BIN_REFS := Mono.Android
|
||||
else
|
||||
|
||||
# profiles which build a System.Drawing.dll in the repo
|
||||
REPO_DRAWING_DEP := $(filter net_4_x orbis winaot unreal wasm, $(PROFILE))
|
||||
|
||||
@@ -51,7 +56,7 @@ else
|
||||
# This needs to be passed in via EXTERNAL_FACADE_DRAWING_REFERENCE.
|
||||
LIB_MCS_FLAGS += /r:$(EXTERNAL_FACADE_DRAWING_REFERENCE)
|
||||
endif
|
||||
|
||||
endif
|
||||
endif
|
||||
|
||||
PLATFORM_DEBUG_FLAGS =
|
||||
|
@@ -40,6 +40,9 @@ netstandard_drawing_SUBDIRS = System.Drawing.Primitives netstandard
|
||||
monotouch_SUBDIRS = $(common_DEPS_SUBDIRS) $(mobile_only_DEPS_SUBDIRS)
|
||||
monotouch_PARALLEL_SUBDIRS = $(common_SUBDIRS) $(mobile_only_SUBDIRS)
|
||||
|
||||
monodroid_SUBDIRS = $(monotouch_SUBDIRS) $(netstandard_drawing_SUBDIRS)
|
||||
monodroid_PARALLEL_SUBDIRS = $(monotouch_PARALLEL_SUBDIRS)
|
||||
|
||||
# We don't build netstandard/System.Drawing.Primitives on monotouch etc. profiles by default,
|
||||
# except when EXTERNAL_FACADE_DRAWING_REFERENCE is defined which allows us to build it in Mono CI
|
||||
# (since the dependent drawing types are normally built in the product repos).
|
||||
@@ -63,9 +66,6 @@ System.Text.Encoding.CodePages
|
||||
|
||||
build_PARALLEL_SUBDIRS = $(basic_PARALLEL_SUBDIRS) System.Text.RegularExpressions System.Diagnostics.Contracts
|
||||
|
||||
monodroid_SUBDIRS = $(monotouch_SUBDIRS)
|
||||
monodroid_PARALLEL_SUBDIRS = $(monotouch_PARALLEL_SUBDIRS)
|
||||
|
||||
xammac_SUBDIRS = $(monotouch_SUBDIRS)
|
||||
xammac_PARALLEL_SUBDIRS = $(monotouch_PARALLEL_SUBDIRS)
|
||||
|
||||
|
569
mcs/class/I18N/EncodingTestBase.cs
Normal file
569
mcs/class/I18N/EncodingTestBase.cs
Normal file
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user