3d123952f35168d771fbe222f1d111cc5efd1757
[mono.git] / packaging / MacSDK / msbuild.py
1 import fileinput
2
3
4 class MSBuild (GitHubPackage):
5
6     def __init__(self):
7         GitHubPackage.__init__(self, 'mono', 'msbuild', '15.0',
8                                git_branch='xplat-master')
9
10     def build(self):
11         self.sh('./cibuild.sh --scope Compile --target Mono --host Mono')
12
13     def install(self):
14         # adjusted from 'install-mono-prefix.sh'
15
16         build_output = 'bin/Debug-MONO/OSX_Deployment'
17         new_location = os.path.join(
18             self.staged_prefix,
19             'lib/mono/msbuild/%s/bin' %
20             self.version)
21         bindir = os.path.join(self.staged_prefix, 'bin')
22
23         os.makedirs(new_location)
24         self.sh('cp -R %s/* %s' % (build_output, new_location))
25
26         os.makedirs(bindir)
27
28         self.sh('cp msbuild-mono-deploy.in %s/msbuild' % bindir)
29
30         xbuild_dir = os.path.join(self.staged_prefix, 'lib/mono/xbuild')
31         new_xbuild_tv_dir = os.path.join(xbuild_dir, self.version)
32         os.makedirs(new_xbuild_tv_dir)
33
34         self.sh('mv %s/Microsoft.Common.props %s' %
35                 (new_location, new_xbuild_tv_dir))
36         self.sh('cp -R nuget-support/tv/ %s' % new_xbuild_tv_dir)
37         self.sh('cp -R nuget-support/tasks-targets/ %s/' % xbuild_dir)
38         for dep in glob.glob("%s/Microsoft/NuGet/*" % xbuild_dir):
39             self.sh('ln -s %s %s' % (dep, xbuild_dir))
40
41         for line in fileinput.input('%s/msbuild' % bindir, inplace=True):
42             line = line.replace('@bindir@', '%s/bin' % self.staged_prefix)
43             line = line.replace(
44                 '@mono_instdir@',
45                 '%s/lib/mono' %
46                 self.staged_prefix)
47             print line
48
49         patterns = ["*UnitTests*", "*xunit*", "NuGet*", "System.Runtime.InteropServices.RuntimeInformation.dll",
50                     "Roslyn/csc.exe*"]
51
52         for pattern in patterns:
53             for excluded in glob.glob("%s/%s" % (new_location, pattern)):
54                 self.rm(excluded)
55
56
57 MSBuild()