-
Notifications
You must be signed in to change notification settings - Fork 32
/
Copy pathUpdateRemoteAndOmniSims.msbuild
155 lines (119 loc) · 8.1 KB
/
UpdateRemoteAndOmniSims.msbuild
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- Required Import to use MSBuild Community Tasks -->
<Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets"/>
<PropertyGroup>
<!-- Set OmniSim properties -->
<OmniSimRepositorytBranch>main</OmniSimRepositorytBranch>
<OmniSimBuildConfiguration>release</OmniSimBuildConfiguration>
<OmniSimGitRepositoryURL>https://github.com/ASCOMInitiative/ASCOM.Alpaca.Simulators.git</OmniSimGitRepositoryURL>
<OmniSimDirectory>$(MSBuildStartupDirectory)\OmniSimulators</OmniSimDirectory>
<OmniSimVSSolution>$(OmniSimDirectory)\ASCOM.Alpaca.Simulators.sln</OmniSimVSSolution>
<!-- Set ASCOM Remote properties -->
<AscomRemoteRepositorytBranch>develop</AscomRemoteRepositorytBranch>
<AscomRemoteBuildConfiguration>release</AscomRemoteBuildConfiguration>
<AscomRemoteGitRepositoryURL>https://github.com/ASCOMInitiative/ASCOMRemote.git</AscomRemoteGitRepositoryURL>
<AscomRemoteDirectory>$(MSBuildStartupDirectory)\AscomRemote</AscomRemoteDirectory>
<AscomRemoteVSProject>$(AscomRemoteDirectory)\Remote Server\Remote Server.csproj</AscomRemoteVSProject>
<SetNetworkPermissionsVSProject>$(AscomRemoteDirectory)\SetNetworkPermissions\SetNetworkPermissions.csproj</SetNetworkPermissionsVSProject>
<!-- Set ASCOM Library properties -->
<AscomLibraryRepositorytBranch>platform7</AscomLibraryRepositorytBranch>
<AscomLibraryBuildConfiguration>debug</AscomLibraryBuildConfiguration>
<AscomLibraryGitRepositoryURL>https://github.com/ASCOMInitiative/ASCOMLibrary.git</AscomLibraryGitRepositoryURL>
<AscomLibraryDirectory>$(MSBuildStartupDirectory)\AscomLibrary</AscomLibraryDirectory>
<AscomLibraryVSProject>$(AscomLibraryDirectory)\ASCOMLibrary.sln</AscomLibraryVSProject>
<AscomLibraryHelpDirectory>$(AscomLibraryDirectory)\Help</AscomLibraryHelpDirectory>
<AscomLibraryHelpVSSolution>ASCOMLibraryHelp.sln</AscomLibraryHelpVSSolution>
<!-- Code signing tool command line bases for SHA1 and SHA256 signing -->
<SignToolBase256>signtool sign /v /tr http://timestamp.sectigo.com /td sha256 /fd sha256 /n "Peter Simpson"</SignToolBase256>
</PropertyGroup>
<!-- Main build target for this build -->
<Target Name="Build">
<!-- ASCOM LIBRARY -->
<!-- Remove the checkout directory to ensure a clean build, wait until the directory actually goes becasue the command can complete before the contents are actually gone! -->
<RemoveDir Directories="$(AscomLibraryDirectory)" ContinueOnError="true" />
<Sleep Milliseconds="1000" Condition="'$(MSBuildLastTaskResult)' == 'False'" />
<!-- Stop the build with an error if we can't clear the directory by this point -->
<RemoveDir Directories="$(AscomLibraryDirectory)" ContinueOnError="false" />
<!-- Create the export directory ready for cloning -->
<MakeDir Directories="$(AscomLibraryDirectory)"/>
<!-- Clone a fresh copy of the OmniSim Git repository -->
<GitClient Command="clone" LocalPath="$(AscomLibraryDirectory)" Arguments="-b $(AscomLibraryRepositorytBranch) $(AscomLibraryGitRepositoryURL) $(AscomLibraryDirectory)"/>
<!-- Buhld the library -->
<Exec Command="dotnet build $(AscomLibraryVSProject) --property:Configuration=$(AscomLibraryBuildConfiguration);Platform="Any CPU""
ConsoleToMSBuild="true"
WorkingDirectory="$(AscomLibraryDirectory)" />
<MSBuild Projects="$(AscomLibraryHelpDirectory)\$(AscomLibraryHelpVSSolution)" Targets="Clean;Restore;Build" Properties="Configuration=$(AscomLibraryBuildConfiguration);Platform=Any CPU" />
<!-- ASCOM REMOTE -->
<!-- Remove the checkout directory to ensure a clean build, wait until the directory actually goes becasue the command can complete before the contents are actually gone! -->
<RemoveDir Directories="$(AscomRemoteDirectory)" ContinueOnError="true" />
<Sleep Milliseconds="1000" Condition="'$(MSBuildLastTaskResult)' == 'False'" />
<!-- Stop the build with an error if we can't clear the directory by this point -->
<RemoveDir Directories="$(AscomRemoteDirectory)" ContinueOnError="false" />
<!-- Create the export directory ready for cloning -->
<MakeDir Directories="$(AscomRemoteDirectory)"/>
<!-- Clone a fresh copy of the ASCOM Remote Git repository -->
<GitClient Command="clone" LocalPath="$(AscomRemoteDirectory)" Arguments="-b $(AscomRemoteRepositorytBranch) $(AscomRemoteGitRepositoryURL) $(AscomRemoteDirectory)"/>
<!-- Publish 32bit ASCOM Remote -->
<MSBuild Projects="$(AscomRemoteVSProject)"
Targets="restore;rebuild;publish"
Properties="Configuration=$(AscomRemoteBuildConfiguration);
DefineConstants=PLATFORM_BUILD;
Platform=AnyCPU;
OutputDir=builds\Ascomremote\x86\;
RuntimeIdentifier=win-x86;
SelfContained=true;
PublishDir=..\publish\AscomRemote\x86\;
DebugType=embedded" />
<Message Text="Completed building ASCOM Remote x86." />
<!-- Remove obj and bin folders from previous build to get a new clean compile -->
<RemoveDir Directories="$(AscomRemoteDirectory)\Remote Server\obj" ContinueOnError="False" />
<RemoveDir Directories="$(AscomRemoteDirectory)\Remote Server\bin" ContinueOnError="False" />
<!-- Publish 64bit ASCOM Remote -->
<MSBuild Projects="$(AscomRemoteVSProject)"
Targets="clean;restore;rebuild;publish"
Properties="Configuration=$(AscomRemoteBuildConfiguration);
DefineConstants=PLATFORM_BUILD;
Platform=Any CPU;
OutputDir=builds\AscomRemote\x64\;
RuntimeIdentifier=win-x64;
SelfContained=true;
PublishDir=..\publish\AscomRemote\x64\;
DebugType=embedded" />
<Message Text="Completed building ASCOM Remote x64." />
<!-- Publish SetNetworkPermissions x86 -->
<MSBuild Projects="$(SetNetworkPermissionsVSProject)"
Targets="restore;rebuild;publish"
Properties="Configuration=$(AscomRemoteBuildConfiguration);
Platform=AnyCPU;
OutputDir=builds\x86\;
RuntimeIdentifier=win-x86;
SelfContained=true;
PublishDir=..\publish\SetNetworkPermissions\x86\;
DebugType=embedded" />
<!-- OMNISIMS -->
<!-- Remove the checkout directory to ensure a clean build, wait until the directory actually goes becasue the command can complete before the contents are actually gone! -->
<RemoveDir Directories="$(OmniSimDirectory)" ContinueOnError="true" />
<Sleep Milliseconds="1000" Condition="'$(MSBuildLastTaskResult)' == 'False'" />
<!-- Stop the build with an error if we can't clear the directory by this point -->
<RemoveDir Directories="$(OmniSimDirectory)" ContinueOnError="false" />
<!-- Create the export directory ready for cloning -->
<MakeDir Directories="$(OmniSimDirectory)"/>
<!-- Clone a fresh copy of the OmniSim Git repository -->
<GitClient Command="clone" LocalPath="$(OmniSimDirectory)" Arguments="-b $(OmniSimRepositorytBranch) $(OmniSimGitRepositoryURL) $(OmniSimDirectory)"/>
<MSBuild Projects="$(OmniSimVSSolution)" Targets="Clean" Properties="Configuration=Release;Platform=Any CPU;DefineConstants=ASCOM_COM" />
<Message Text="***** Cleaned the Omni-Simulators." />
<MSBuild Projects="$(OmniSimVSSolution)" Targets="Restore" Properties="Configuration=Release;Platform=Any CPU;DefineConstants=ASCOM_COM" />
<Message Text="***** Restored the Omni-Simulators." />
<MSBuild Projects="$(OmniSimVSSolution)" Targets="Build" Properties="Configuration=Release;Platform=Any CPU;DefineConstants=ASCOM_COM" />
<Message Text="***** Completed building the Omni-Simulators." />
<!-- Publish a 32bit OmniSim executable DefineConstants=ASCOM_COM;ASCOM_7_PREVIEW; TrimMode=full; -->
<Exec Command="dotnet publish -c Release -r win-x86 --self-contained true /p:PublishTrimmed=true -p DefineConstants=ASCOM_COM -o ..\publish\x86"
ConsoleToMSBuild="true"
WorkingDirectory="$(OmniSimDirectory)\ASCOM.Alpaca.Simulators" />
<!-- Publish a 64bit OmniSim executable DefineConstants=ASCOM_COM;ASCOM_7_PREVIEW; -->
<Exec Command="dotnet publish -c Release -r win-x64 --self-contained true /p:PublishTrimmed=true -p DefineConstants=ASCOM_COM -o ..\publish\x64"
ConsoleToMSBuild="true"
WorkingDirectory="$(OmniSimDirectory)\ASCOM.Alpaca.Simulators" />
<Message Text="Completed publishing the Omni-Simulators." />
</Target>
</Project>