blob: 83a819830722a8a8396d96a17cd0aea38d870410 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
#!/bin/bash
#
# Low brow build script for Mono 2.0.
# Uses metadata available in VS2005 project files.
#
# Replace with Mono's new XBuild when details are fully released.
# Note: XBuild is a clone of MSBuild.
#
#MCS_FLAGS="-debug+"
MCS_FLAGS="-optimize"
outDir=$PWD/build/mono
FindExternalReferences()
{
assembly=$1
grep HintPath $assembly.csproj | sed -e 's-.*<HintPath>\(.*\)</HintPath>-\1-' -e 's-\\-/-g' |
while read ref; do
echo $PWD/$ref
done
}
Build()
{
assembly=$1; shift
echo "===================================================="
echo Building $assembly
references=$(grep '<ProjectReference' $assembly/$assembly.csproj | sed -e 's-.*"\(.*\)".*-\1-' -e 's-\\-/-g' |
while read file; do
echo $(basename $file .csproj);
done)
references=$(echo $references)
echo "Projects referenced = [$references]"
(
regularRefs=""
for ref in $references; do
regularRefs="$regularRefs $outDir/$ref.dll"
done
cd $assembly
find . -name \*.cs >tmp.build.sources
externalReferences=$(FindExternalReferences $assembly)
# Strip Control-M characters from external references...
externalReferences=$(echo $externalReferences | sed 's/\r//g')
echo "externalReferences = [$externalReferences]"
echo "regularRefs = [$regularRefs]"
echo PWD=$PWD
# construct "-r" argument.
fullrefs=""
for ref in $regularRefs $externalReferences; do
if [[ -z $fullrefs ]]; then
fullrefs="-r:$ref"
else
fullrefs="$fullrefs,$ref"
fi
done
echo "fullrefs = [$fullrefs]"
# Copy external references to output directory.
for ref in $externalReferences; do
cp $ref $outDir
done
# Strip Control-M character here too. Not sure how they get there...
echo $fullrefs >tmp.references
mcs $MCS_FLAGS -out:$outDir/$assembly.dll -target:library @tmp.references @tmp.build.sources
)
}
mkdir -p $outDir
# Tried to magically get projects from Qpid.NET.sln but wrong order for building..
#for project in $(grep ^Project Qpid.NET.sln | sed 's/.*\\\(.*\).csproj.*/\1/'); do
# Build $project
#done
Build Qpid.Messaging &&
Build Qpid.Buffer &&
Build Qpid.Codec &&
Build Qpid.Common &&
Build Qpid.Common.Tests &&
Build Qpid.Client &&
Build Qpid.Client.Transport.Socket.Blocking &&
Build Qpid.Client.Tests
|