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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user