1
+ # swift-atomics
2
+
3
+ pool :
4
+ vmImage : windows-latest
5
+
6
+ resources :
7
+ repositories :
8
+ - repository : apple/swift-atomics
9
+ type : github
10
+ name : apple/swift-atomics
11
+ endpoint : GitHub
12
+
13
+ pr :
14
+ paths :
15
+ include :
16
+ - .ci/swift-atomics.yml
17
+
18
+ trigger :
19
+ branches :
20
+ include :
21
+ - master
22
+
23
+ variables :
24
+ toolchain.directory : $(Pipeline.Workspace)/Library/Developer/Toolchains/unknown-Asserts-development.xctoolchain
25
+ sdk.directory : $(Pipeline.Workspace)/Library/Developer/Platforms/Windows.platform/Developer/SDKs/Windows.sdk
26
+ developer.directory : $(Pipeline.Workspace)/Library/Developer/Platforms/Windows.platform/Developer/Library
27
+
28
+ steps :
29
+ - script : |
30
+ git config --global --add core.autocrlf false
31
+ git config --global --add core.symlinks true
32
+ displayName: configure git
33
+
34
+ - checkout : apple/swift-atomics
35
+ displayName : checkout apple/swift-atomics
36
+
37
+ - script : |
38
+ git config --global user.name builder
39
+ git config --global user.email [email protected]
40
+
41
+ call :ApplyPatches "%SWIFT_ATOMICS_PR%" .
42
+ goto :eof
43
+
44
+ :ApplyPatches
45
+ setlocal
46
+ set list=%~1
47
+ set repository=%~2
48
+ for /F "tokens=1*" %%P in ("%list%") do (
49
+ git -C %repository% fetch origin pull/%%P/merge
50
+ git -C %repository% merge FETCH_HEAD
51
+ if not "%%Q" == "" call :ApplyPatches "%%Q" %repository%
52
+ )
53
+ displayName: apply patches
54
+
55
+ - task : DownloadPipelineArtifact@2
56
+ inputs :
57
+ buildType : ' specific'
58
+ project : ' 3133d6ab-80a8-4996-ac4f-03df25cd3224'
59
+ definition : ' 7'
60
+ buildVersionToDownload : ' latest'
61
+ allowPartiallySucceededBuilds : true
62
+ artifactName : ' toolchain-windows-x64'
63
+ targetPath : ' $(Pipeline.Workspace)'
64
+
65
+ - task : DownloadPipelineArtifact@2
66
+ inputs :
67
+ buildType : ' specific'
68
+ project : ' 3133d6ab-80a8-4996-ac4f-03df25cd3224'
69
+ definition : ' 7'
70
+ buildVersionToDownload : ' latest'
71
+ allowPartiallySucceededBuilds : true
72
+ artifactName : ' sdk-windows-x64'
73
+ targetPath : ' $(Pipeline.Workspace)'
74
+
75
+ - task : BatchScript@1
76
+ displayName : VsDevCmd
77
+ inputs :
78
+ filename : C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/Common7/Tools/VsDevCmd.bat
79
+ arguments : -no_logo -arch=x64 -host_arch=x64
80
+ modifyEnvironment : true
81
+
82
+ - script : |
83
+ curl -L "https://raw.githubusercontent.com/apple/swift/main/stdlib/public/Platform/ucrt.modulemap" -o "%UniversalCRTSdkDir%\Include\%UCRTVersion%\ucrt\module.modulemap"
84
+ curl -L "https://raw.githubusercontent.com/apple/swift/main/stdlib/public/Platform/visualc.modulemap" -o "%VCToolsInstallDir%\include\module.modulemap"
85
+ curl -L "https://raw.githubusercontent.com/apple/swift/main/stdlib/public/Platform/visualc.apinotes" -o "%VCToolsInstallDir%\include\visualc.apinotes"
86
+ curl -L "https://raw.githubusercontent.com/apple/swift/main/stdlib/public/Platform/winsdk.modulemap" -o "%UniversalCRTSdkDir%\Include\%UCRTVersion%\um\module.modulemap"
87
+ displayName: Configure SDK
88
+
89
+ - script : |
90
+ echo ##vso[task.prependpath]$(toolchain.directory)/usr/bin
91
+ displayName: Update PATH
92
+
93
+ - task : CMake@1
94
+ displayName : configure swift-atomics
95
+ inputs :
96
+ cmakeArgs :
97
+ -B $(Build.BinariesDirectory)/swift-atomics
98
+ -D BUILD_SHARED_LIBS=YES
99
+ -D CMAKE_BUILD_TYPE=Release
100
+ -D CMAKE_INSTALL_PREFIX=$(Build.StagingDirectory)/swift-atomics-windows-x64/Library/swift-atomics/usr
101
+ -D CMake_Swift_FLAGS="-sdk $(sdk.directory) -resource-dir $(sdk.directory)/usr/lib/swift -I$(sdk.directory)/usr/lib/swift -L$(sdk.directory)/usr/lib/swift/windows -I$(developer.directory)/XCTest-development/usr/lib/swift/windows/x86_64 -L$(developer.directory)/XCTest-development/usr/lib/swift/windows"
102
+ -G Ninja
103
+ -S $(Build.SourcesDirectory)
104
+
105
+ - task : CMake@1
106
+ displayName : build swift-atomics
107
+ inputs :
108
+ cmakeArgs : --build $(Build.BinariesDirectory)/swift-atomics
109
+
110
+ - task : CMake@1
111
+ displayName : install swift-atomics
112
+ inputs :
113
+ cmakeArgs : --build $(Build.BinariesDirectory)/swift-atomics --target install
114
+
115
+ - publish : $(Build.StagingDirectory)/swift-atomics-windows-x64
116
+ artifact : swift-atomics-windows-x64
0 commit comments